aws-sdk-ecs 1.230.0 → 1.231.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: 5c90cc570dc81a8be2fe1cd024150a4669527a9826affb5a12cb6a83c2362d85
4
- data.tar.gz: e5f9a4459598c70fb67b0a5167cd87756eb04ec21cd1c25925e218756fbf670f
3
+ metadata.gz: 89d20050dc7f08573f0a742496ce6d83303498604b750b8546a484cefe714bf3
4
+ data.tar.gz: d6b9e4194a88259d77c09709ce18159dc2817135e064ff07273c32ebf451cc54
5
5
  SHA512:
6
- metadata.gz: 929d509e6b12cd17f0b395a2c1e1189438065e4195e62d7eb05105b3b5e9c6551afbdcf1b5ab66795d589513e74a350d3c813d981d818134f90a5d343a6655af
7
- data.tar.gz: df032863827e7cefb08e0623886d05a299ceb8acc4ba2ac914970dd8ec1ce9612811d289ae18824f0f9667195afbf240a30f6a5b58ff9c8b7d32d86fed312c00
6
+ metadata.gz: 55f39c11cc51a9603cfc34ba7b2cee65c835d5fee8b2ac52b31eebb506f0f9499df57350413f5aef26c879f9856fd0bba29ef97b2555ca8136181ae58a121c2b
7
+ data.tar.gz: d44fa039e019406ed6ecacb889154b029fd2acefe6ca2371770e1beb03fa4a0be70796c866dbe96bab5140d927af40cf955bb00fc4466702cdf1f2e7ee4a7360
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.231.0 (2026-05-18)
5
+ ------------------
6
+
7
+ * Feature - Amazon ECS now supports Pause lifecycle hooks for service deployments, allowing customers to automatically pause deployments at specified stages and use the new ContinueServiceDeployment API to continue or roll back with confidence.
8
+
4
9
  1.230.0 (2026-05-13)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.230.0
1
+ 1.231.0
@@ -483,6 +483,102 @@ module Aws::ECS
483
483
 
484
484
  # @!group API Operations
485
485
 
486
+ # Continues or rolls back an Amazon ECS service deployment that is
487
+ # paused at a lifecycle hook.
488
+ #
489
+ # When a service deployment reaches a lifecycle stage that has a `PAUSE`
490
+ # hook configured, the deployment pauses and waits for an explicit
491
+ # action. Use this API to either continue the deployment to the next
492
+ # stage or roll back to the previous service revision.
493
+ #
494
+ # To find the `hookId` of the paused hook, call
495
+ # [DescribeServiceDeployments][1] and inspect the `lifecycleHookDetails`
496
+ # field.
497
+ #
498
+ #
499
+ #
500
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
501
+ #
502
+ # @option params [required, String] :service_deployment_arn
503
+ # The ARN of the service deployment to continue or roll back.
504
+ #
505
+ # @option params [required, String] :hook_id
506
+ # The ID of the paused lifecycle hook to act on. You can find the
507
+ # `hookId` by calling [DescribeServiceDeployments][1] and inspecting the
508
+ # `lifecycleHookDetails` field of the service deployment.
509
+ #
510
+ #
511
+ #
512
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
513
+ #
514
+ # @option params [String] :action
515
+ # The action to take on the paused lifecycle hook. Valid values are:
516
+ #
517
+ # * `CONTINUE` - Proceeds the deployment to the next lifecycle stage.
518
+ #
519
+ # * `ROLLBACK` - Rolls back the deployment to the previous service
520
+ # revision.
521
+ #
522
+ # If no value is specified, the default action is `CONTINUE`.
523
+ #
524
+ # @return [Types::ContinueServiceDeploymentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
525
+ #
526
+ # * {Types::ContinueServiceDeploymentResponse#service_deployment_arn #service_deployment_arn} => String
527
+ #
528
+ #
529
+ # @example Example: To continue a paused service deployment
530
+ #
531
+ # # This example continues a service deployment that is paused at a lifecycle hook, using the CONTINUE action to proceed to
532
+ # # the next deployment stage.
533
+ #
534
+ # resp = client.continue_service_deployment({
535
+ # action: "CONTINUE",
536
+ # hook_id: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
537
+ # service_deployment_arn: "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
538
+ # })
539
+ #
540
+ # resp.to_h outputs the following:
541
+ # {
542
+ # service_deployment_arn: "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
543
+ # }
544
+ #
545
+ # @example Example: To roll back a paused service deployment
546
+ #
547
+ # # This example rolls back a service deployment that is paused at a lifecycle hook, using the ROLLBACK action to revert to
548
+ # # the previous service revision.
549
+ #
550
+ # resp = client.continue_service_deployment({
551
+ # action: "ROLLBACK",
552
+ # hook_id: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
553
+ # service_deployment_arn: "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
554
+ # })
555
+ #
556
+ # resp.to_h outputs the following:
557
+ # {
558
+ # service_deployment_arn: "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
559
+ # }
560
+ #
561
+ # @example Request syntax with placeholder values
562
+ #
563
+ # resp = client.continue_service_deployment({
564
+ # service_deployment_arn: "String", # required
565
+ # hook_id: "String", # required
566
+ # action: "ROLLBACK", # accepts ROLLBACK, CONTINUE
567
+ # })
568
+ #
569
+ # @example Response structure
570
+ #
571
+ # resp.service_deployment_arn #=> String
572
+ #
573
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContinueServiceDeployment AWS API Documentation
574
+ #
575
+ # @overload continue_service_deployment(params = {})
576
+ # @param [Hash] params ({})
577
+ def continue_service_deployment(params = {}, options = {})
578
+ req = build_request(:continue_service_deployment, params)
579
+ req.send_request(options)
580
+ end
581
+
486
582
  # Creates a capacity provider. Capacity providers are associated with a
487
583
  # cluster and are used in capacity provider strategies to facilitate
488
584
  # cluster auto scaling. You can create capacity providers for Amazon ECS
@@ -2178,6 +2274,81 @@ module Aws::ECS
2178
2274
  # },
2179
2275
  # }
2180
2276
  #
2277
+ # @example Example: To create a service with a pause lifecycle hook
2278
+ #
2279
+ # # This example creates a service with a blue/green deployment strategy that includes a pause lifecycle hook at the
2280
+ # # POST_PRODUCTION_TRAFFIC_SHIFT stage. The deployment will pause at that stage until you explicitly continue or roll back
2281
+ # # using the ContinueServiceDeployment API, or until the 60-minute timeout expires and triggers a rollback.
2282
+ #
2283
+ # resp = client.create_service({
2284
+ # deployment_configuration: {
2285
+ # lifecycle_hooks: [
2286
+ # {
2287
+ # lifecycle_stages: [
2288
+ # "POST_PRODUCTION_TRAFFIC_SHIFT",
2289
+ # ],
2290
+ # target_type: "PAUSE",
2291
+ # timeout_configuration: {
2292
+ # action: "ROLLBACK",
2293
+ # timeout_in_minutes: 60,
2294
+ # },
2295
+ # },
2296
+ # ],
2297
+ # strategy: "BLUE_GREEN",
2298
+ # },
2299
+ # desired_count: 2,
2300
+ # service_name: "ecs-service-with-pause-hook",
2301
+ # task_definition: "ecs-demo",
2302
+ # })
2303
+ #
2304
+ # resp.to_h outputs the following:
2305
+ # {
2306
+ # service: {
2307
+ # cluster_arn: "arn:aws:ecs:us-east-1:012345678910:cluster/default",
2308
+ # created_at: Time.parse("2026-05-06T16:00:00.000Z"),
2309
+ # deployment_configuration: {
2310
+ # lifecycle_hooks: [
2311
+ # {
2312
+ # lifecycle_stages: [
2313
+ # "POST_PRODUCTION_TRAFFIC_SHIFT",
2314
+ # ],
2315
+ # target_type: "PAUSE",
2316
+ # timeout_configuration: {
2317
+ # action: "ROLLBACK",
2318
+ # timeout_in_minutes: 60,
2319
+ # },
2320
+ # },
2321
+ # ],
2322
+ # maximum_percent: 200,
2323
+ # minimum_healthy_percent: 100,
2324
+ # strategy: "BLUE_GREEN",
2325
+ # },
2326
+ # deployments: [
2327
+ # {
2328
+ # created_at: Time.parse("2026-05-06T16:00:00.000Z"),
2329
+ # desired_count: 2,
2330
+ # id: "ecs-svc/9223370564342348388",
2331
+ # pending_count: 0,
2332
+ # running_count: 0,
2333
+ # status: "PRIMARY",
2334
+ # task_definition: "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1",
2335
+ # updated_at: Time.parse("2026-05-06T16:00:00.000Z"),
2336
+ # },
2337
+ # ],
2338
+ # desired_count: 2,
2339
+ # events: [
2340
+ # ],
2341
+ # load_balancers: [
2342
+ # ],
2343
+ # pending_count: 0,
2344
+ # running_count: 0,
2345
+ # service_arn: "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-service-with-pause-hook",
2346
+ # service_name: "ecs-service-with-pause-hook",
2347
+ # status: "ACTIVE",
2348
+ # task_definition: "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1",
2349
+ # },
2350
+ # }
2351
+ #
2181
2352
  # @example Request syntax with placeholder values
2182
2353
  #
2183
2354
  # resp = client.create_service({
@@ -2235,11 +2406,16 @@ module Aws::ECS
2235
2406
  # bake_time_in_minutes: 1,
2236
2407
  # lifecycle_hooks: [
2237
2408
  # {
2409
+ # target_type: "AWS_LAMBDA", # accepts AWS_LAMBDA, PAUSE
2238
2410
  # hook_target_arn: "String",
2239
2411
  # role_arn: "IAMRoleArn",
2240
- # lifecycle_stages: ["RECONCILE_SERVICE"], # accepts RECONCILE_SERVICE, PRE_SCALE_UP, POST_SCALE_UP, TEST_TRAFFIC_SHIFT, POST_TEST_TRAFFIC_SHIFT, PRODUCTION_TRAFFIC_SHIFT, POST_PRODUCTION_TRAFFIC_SHIFT
2412
+ # lifecycle_stages: ["RECONCILE_SERVICE"], # accepts RECONCILE_SERVICE, PRE_SCALE_UP, POST_SCALE_UP, TEST_TRAFFIC_SHIFT, POST_TEST_TRAFFIC_SHIFT, PRE_PRODUCTION_TRAFFIC_SHIFT, PRODUCTION_TRAFFIC_SHIFT, POST_PRODUCTION_TRAFFIC_SHIFT
2241
2413
  # hook_details: {
2242
2414
  # },
2415
+ # timeout_configuration: {
2416
+ # timeout_in_minutes: 1,
2417
+ # action: "ROLLBACK", # accepts ROLLBACK, CONTINUE
2418
+ # },
2243
2419
  # },
2244
2420
  # ],
2245
2421
  # linear_configuration: {
@@ -2416,10 +2592,13 @@ module Aws::ECS
2416
2592
  # resp.service.deployment_configuration.strategy #=> String, one of "ROLLING", "BLUE_GREEN", "LINEAR", "CANARY"
2417
2593
  # resp.service.deployment_configuration.bake_time_in_minutes #=> Integer
2418
2594
  # resp.service.deployment_configuration.lifecycle_hooks #=> Array
2595
+ # resp.service.deployment_configuration.lifecycle_hooks[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
2419
2596
  # resp.service.deployment_configuration.lifecycle_hooks[0].hook_target_arn #=> String
2420
2597
  # resp.service.deployment_configuration.lifecycle_hooks[0].role_arn #=> String
2421
2598
  # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages #=> Array
2422
- # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
2599
+ # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
2600
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.timeout_in_minutes #=> Integer
2601
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.action #=> String, one of "ROLLBACK", "CONTINUE"
2423
2602
  # resp.service.deployment_configuration.linear_configuration.step_percent #=> Float
2424
2603
  # resp.service.deployment_configuration.linear_configuration.step_bake_time_in_minutes #=> Integer
2425
2604
  # resp.service.deployment_configuration.canary_configuration.canary_percent #=> Float
@@ -3651,10 +3830,13 @@ module Aws::ECS
3651
3830
  # resp.service.deployment_configuration.strategy #=> String, one of "ROLLING", "BLUE_GREEN", "LINEAR", "CANARY"
3652
3831
  # resp.service.deployment_configuration.bake_time_in_minutes #=> Integer
3653
3832
  # resp.service.deployment_configuration.lifecycle_hooks #=> Array
3833
+ # resp.service.deployment_configuration.lifecycle_hooks[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
3654
3834
  # resp.service.deployment_configuration.lifecycle_hooks[0].hook_target_arn #=> String
3655
3835
  # resp.service.deployment_configuration.lifecycle_hooks[0].role_arn #=> String
3656
3836
  # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages #=> Array
3657
- # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
3837
+ # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
3838
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.timeout_in_minutes #=> Integer
3839
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.action #=> String, one of "ROLLBACK", "CONTINUE"
3658
3840
  # resp.service.deployment_configuration.linear_configuration.step_percent #=> Float
3659
3841
  # resp.service.deployment_configuration.linear_configuration.step_bake_time_in_minutes #=> Integer
3660
3842
  # resp.service.deployment_configuration.canary_configuration.canary_percent #=> Float
@@ -5872,6 +6054,70 @@ module Aws::ECS
5872
6054
  # ],
5873
6055
  # }
5874
6056
  #
6057
+ # @example Example: To describe a service deployment with a paused lifecycle hook
6058
+ #
6059
+ # # This example describes a service deployment that is currently paused at a lifecycle hook. The lifecycleHookDetails field
6060
+ # # shows the status of the pause hook, including when it will expire and what action will be taken if the timeout is
6061
+ # # reached.
6062
+ #
6063
+ # resp = client.describe_service_deployments({
6064
+ # service_deployment_arns: [
6065
+ # "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
6066
+ # ],
6067
+ # })
6068
+ #
6069
+ # resp.to_h outputs the following:
6070
+ # {
6071
+ # failures: [
6072
+ # ],
6073
+ # service_deployments: [
6074
+ # {
6075
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
6076
+ # deployment_configuration: {
6077
+ # deployment_circuit_breaker: {
6078
+ # enable: false,
6079
+ # rollback: false,
6080
+ # },
6081
+ # lifecycle_hooks: [
6082
+ # {
6083
+ # lifecycle_stages: [
6084
+ # "POST_PRODUCTION_TRAFFIC_SHIFT",
6085
+ # ],
6086
+ # target_type: "PAUSE",
6087
+ # timeout_configuration: {
6088
+ # action: "ROLLBACK",
6089
+ # timeout_in_minutes: 60,
6090
+ # },
6091
+ # },
6092
+ # ],
6093
+ # maximum_percent: 200,
6094
+ # minimum_healthy_percent: 100,
6095
+ # strategy: "BLUE_GREEN",
6096
+ # },
6097
+ # lifecycle_hook_details: [
6098
+ # {
6099
+ # expires_at: Time.parse("2026-05-06T17:00:00.000Z"),
6100
+ # hook_id: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
6101
+ # status: "AWAITING_ACTION",
6102
+ # target_type: "PAUSE",
6103
+ # timeout_action: "ROLLBACK",
6104
+ # },
6105
+ # ],
6106
+ # lifecycle_stage: "POST_PRODUCTION_TRAFFIC_SHIFT",
6107
+ # service_arn: "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService",
6108
+ # service_deployment_arn: "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r",
6109
+ # status: "IN_PROGRESS",
6110
+ # target_service_revision: {
6111
+ # arn: "arn:aws:ecs:us-east-1:123456789012:service-revision/MyCluster/MyService/1234567890123456789",
6112
+ # pending_task_count: 1,
6113
+ # requested_task_count: 2,
6114
+ # running_task_count: 1,
6115
+ # },
6116
+ # updated_at: Time.parse("2026-05-06T16:00:00.000Z"),
6117
+ # },
6118
+ # ],
6119
+ # }
6120
+ #
5875
6121
  # @example Request syntax with placeholder values
5876
6122
  #
5877
6123
  # resp = client.describe_service_deployments({
@@ -5905,6 +6151,13 @@ module Aws::ECS
5905
6151
  # resp.service_deployments[0].status #=> String, one of "PENDING", "SUCCESSFUL", "STOPPED", "STOP_REQUESTED", "IN_PROGRESS", "ROLLBACK_REQUESTED", "ROLLBACK_IN_PROGRESS", "ROLLBACK_SUCCESSFUL", "ROLLBACK_FAILED"
5906
6152
  # resp.service_deployments[0].status_reason #=> String
5907
6153
  # resp.service_deployments[0].lifecycle_stage #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT", "BAKE_TIME", "CLEAN_UP"
6154
+ # resp.service_deployments[0].lifecycle_hook_details #=> Array
6155
+ # resp.service_deployments[0].lifecycle_hook_details[0].hook_id #=> String
6156
+ # resp.service_deployments[0].lifecycle_hook_details[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
6157
+ # resp.service_deployments[0].lifecycle_hook_details[0].target_arn #=> String
6158
+ # resp.service_deployments[0].lifecycle_hook_details[0].status #=> String, one of "AWAITING_ACTION", "IN_PROGRESS", "SUCCEEDED", "FAILED", "TIMED_OUT"
6159
+ # resp.service_deployments[0].lifecycle_hook_details[0].expires_at #=> Time
6160
+ # resp.service_deployments[0].lifecycle_hook_details[0].timeout_action #=> String, one of "ROLLBACK", "CONTINUE"
5908
6161
  # resp.service_deployments[0].deployment_configuration.deployment_circuit_breaker.enable #=> Boolean
5909
6162
  # resp.service_deployments[0].deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
5910
6163
  # resp.service_deployments[0].deployment_configuration.maximum_percent #=> Integer
@@ -5916,10 +6169,13 @@ module Aws::ECS
5916
6169
  # resp.service_deployments[0].deployment_configuration.strategy #=> String, one of "ROLLING", "BLUE_GREEN", "LINEAR", "CANARY"
5917
6170
  # resp.service_deployments[0].deployment_configuration.bake_time_in_minutes #=> Integer
5918
6171
  # resp.service_deployments[0].deployment_configuration.lifecycle_hooks #=> Array
6172
+ # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
5919
6173
  # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].hook_target_arn #=> String
5920
6174
  # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].role_arn #=> String
5921
6175
  # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages #=> Array
5922
- # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
6176
+ # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
6177
+ # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].timeout_configuration.timeout_in_minutes #=> Integer
6178
+ # resp.service_deployments[0].deployment_configuration.lifecycle_hooks[0].timeout_configuration.action #=> String, one of "ROLLBACK", "CONTINUE"
5923
6179
  # resp.service_deployments[0].deployment_configuration.linear_configuration.step_percent #=> Float
5924
6180
  # resp.service_deployments[0].deployment_configuration.linear_configuration.step_bake_time_in_minutes #=> Integer
5925
6181
  # resp.service_deployments[0].deployment_configuration.canary_configuration.canary_percent #=> Float
@@ -6275,6 +6531,69 @@ module Aws::ECS
6275
6531
  # ],
6276
6532
  # }
6277
6533
  #
6534
+ # @example Example: To describe a service with a pause lifecycle hook
6535
+ #
6536
+ # # This example provides descriptive information about the service ``ecs-service-with-pause-hook``, which is configured
6537
+ # # with a pause lifecycle hook in its deployment configuration.
6538
+ #
6539
+ # resp = client.describe_services({
6540
+ # services: [
6541
+ # "ecs-service-with-pause-hook",
6542
+ # ],
6543
+ # })
6544
+ #
6545
+ # resp.to_h outputs the following:
6546
+ # {
6547
+ # failures: [
6548
+ # ],
6549
+ # services: [
6550
+ # {
6551
+ # cluster_arn: "arn:aws:ecs:us-east-1:012345678910:cluster/default",
6552
+ # created_at: Time.parse("2026-05-06T16:00:00.000Z"),
6553
+ # deployment_configuration: {
6554
+ # lifecycle_hooks: [
6555
+ # {
6556
+ # lifecycle_stages: [
6557
+ # "POST_PRODUCTION_TRAFFIC_SHIFT",
6558
+ # ],
6559
+ # target_type: "PAUSE",
6560
+ # timeout_configuration: {
6561
+ # action: "ROLLBACK",
6562
+ # timeout_in_minutes: 60,
6563
+ # },
6564
+ # },
6565
+ # ],
6566
+ # maximum_percent: 200,
6567
+ # minimum_healthy_percent: 100,
6568
+ # strategy: "BLUE_GREEN",
6569
+ # },
6570
+ # deployments: [
6571
+ # {
6572
+ # created_at: Time.parse("2026-05-06T16:00:00.000Z"),
6573
+ # desired_count: 2,
6574
+ # id: "ecs-svc/9223370564341623665",
6575
+ # pending_count: 0,
6576
+ # running_count: 2,
6577
+ # status: "PRIMARY",
6578
+ # task_definition: "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1",
6579
+ # updated_at: Time.parse("2026-05-06T16:00:00.000Z"),
6580
+ # },
6581
+ # ],
6582
+ # desired_count: 2,
6583
+ # events: [
6584
+ # ],
6585
+ # load_balancers: [
6586
+ # ],
6587
+ # pending_count: 0,
6588
+ # running_count: 2,
6589
+ # service_arn: "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-service-with-pause-hook",
6590
+ # service_name: "ecs-service-with-pause-hook",
6591
+ # status: "ACTIVE",
6592
+ # task_definition: "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1",
6593
+ # },
6594
+ # ],
6595
+ # }
6596
+ #
6278
6597
  # @example Request syntax with placeholder values
6279
6598
  #
6280
6599
  # resp = client.describe_services({
@@ -6326,10 +6645,13 @@ module Aws::ECS
6326
6645
  # resp.services[0].deployment_configuration.strategy #=> String, one of "ROLLING", "BLUE_GREEN", "LINEAR", "CANARY"
6327
6646
  # resp.services[0].deployment_configuration.bake_time_in_minutes #=> Integer
6328
6647
  # resp.services[0].deployment_configuration.lifecycle_hooks #=> Array
6648
+ # resp.services[0].deployment_configuration.lifecycle_hooks[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
6329
6649
  # resp.services[0].deployment_configuration.lifecycle_hooks[0].hook_target_arn #=> String
6330
6650
  # resp.services[0].deployment_configuration.lifecycle_hooks[0].role_arn #=> String
6331
6651
  # resp.services[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages #=> Array
6332
- # resp.services[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
6652
+ # resp.services[0].deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
6653
+ # resp.services[0].deployment_configuration.lifecycle_hooks[0].timeout_configuration.timeout_in_minutes #=> Integer
6654
+ # resp.services[0].deployment_configuration.lifecycle_hooks[0].timeout_configuration.action #=> String, one of "ROLLBACK", "CONTINUE"
6333
6655
  # resp.services[0].deployment_configuration.linear_configuration.step_percent #=> Float
6334
6656
  # resp.services[0].deployment_configuration.linear_configuration.step_bake_time_in_minutes #=> Integer
6335
6657
  # resp.services[0].deployment_configuration.canary_configuration.canary_percent #=> Float
@@ -14757,6 +15079,35 @@ module Aws::ECS
14757
15079
  # {
14758
15080
  # }
14759
15081
  #
15082
+ # @example Example: To update a service to add a pause lifecycle hook
15083
+ #
15084
+ # # This example updates the my-blue-green-service service to add a pause lifecycle hook at the
15085
+ # # POST_PRODUCTION_TRAFFIC_SHIFT stage. The deployment will pause at that stage until you explicitly continue or roll back
15086
+ # # using the ContinueServiceDeployment API, or until the 30-minute timeout expires and triggers a continue.
15087
+ #
15088
+ # resp = client.update_service({
15089
+ # deployment_configuration: {
15090
+ # lifecycle_hooks: [
15091
+ # {
15092
+ # lifecycle_stages: [
15093
+ # "POST_PRODUCTION_TRAFFIC_SHIFT",
15094
+ # ],
15095
+ # target_type: "PAUSE",
15096
+ # timeout_configuration: {
15097
+ # action: "CONTINUE",
15098
+ # timeout_in_minutes: 30,
15099
+ # },
15100
+ # },
15101
+ # ],
15102
+ # strategy: "BLUE_GREEN",
15103
+ # },
15104
+ # service: "my-blue-green-service",
15105
+ # })
15106
+ #
15107
+ # resp.to_h outputs the following:
15108
+ # {
15109
+ # }
15110
+ #
14760
15111
  # @example Request syntax with placeholder values
14761
15112
  #
14762
15113
  # resp = client.update_service({
@@ -14787,11 +15138,16 @@ module Aws::ECS
14787
15138
  # bake_time_in_minutes: 1,
14788
15139
  # lifecycle_hooks: [
14789
15140
  # {
15141
+ # target_type: "AWS_LAMBDA", # accepts AWS_LAMBDA, PAUSE
14790
15142
  # hook_target_arn: "String",
14791
15143
  # role_arn: "IAMRoleArn",
14792
- # lifecycle_stages: ["RECONCILE_SERVICE"], # accepts RECONCILE_SERVICE, PRE_SCALE_UP, POST_SCALE_UP, TEST_TRAFFIC_SHIFT, POST_TEST_TRAFFIC_SHIFT, PRODUCTION_TRAFFIC_SHIFT, POST_PRODUCTION_TRAFFIC_SHIFT
15144
+ # lifecycle_stages: ["RECONCILE_SERVICE"], # accepts RECONCILE_SERVICE, PRE_SCALE_UP, POST_SCALE_UP, TEST_TRAFFIC_SHIFT, POST_TEST_TRAFFIC_SHIFT, PRE_PRODUCTION_TRAFFIC_SHIFT, PRODUCTION_TRAFFIC_SHIFT, POST_PRODUCTION_TRAFFIC_SHIFT
14793
15145
  # hook_details: {
14794
15146
  # },
15147
+ # timeout_configuration: {
15148
+ # timeout_in_minutes: 1,
15149
+ # action: "ROLLBACK", # accepts ROLLBACK, CONTINUE
15150
+ # },
14795
15151
  # },
14796
15152
  # ],
14797
15153
  # linear_configuration: {
@@ -14986,10 +15342,13 @@ module Aws::ECS
14986
15342
  # resp.service.deployment_configuration.strategy #=> String, one of "ROLLING", "BLUE_GREEN", "LINEAR", "CANARY"
14987
15343
  # resp.service.deployment_configuration.bake_time_in_minutes #=> Integer
14988
15344
  # resp.service.deployment_configuration.lifecycle_hooks #=> Array
15345
+ # resp.service.deployment_configuration.lifecycle_hooks[0].target_type #=> String, one of "AWS_LAMBDA", "PAUSE"
14989
15346
  # resp.service.deployment_configuration.lifecycle_hooks[0].hook_target_arn #=> String
14990
15347
  # resp.service.deployment_configuration.lifecycle_hooks[0].role_arn #=> String
14991
15348
  # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages #=> Array
14992
- # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
15349
+ # resp.service.deployment_configuration.lifecycle_hooks[0].lifecycle_stages[0] #=> String, one of "RECONCILE_SERVICE", "PRE_SCALE_UP", "POST_SCALE_UP", "TEST_TRAFFIC_SHIFT", "POST_TEST_TRAFFIC_SHIFT", "PRE_PRODUCTION_TRAFFIC_SHIFT", "PRODUCTION_TRAFFIC_SHIFT", "POST_PRODUCTION_TRAFFIC_SHIFT"
15350
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.timeout_in_minutes #=> Integer
15351
+ # resp.service.deployment_configuration.lifecycle_hooks[0].timeout_configuration.action #=> String, one of "ROLLBACK", "CONTINUE"
14993
15352
  # resp.service.deployment_configuration.linear_configuration.step_percent #=> Float
14994
15353
  # resp.service.deployment_configuration.linear_configuration.step_bake_time_in_minutes #=> Integer
14995
15354
  # resp.service.deployment_configuration.canary_configuration.canary_percent #=> Float
@@ -15645,7 +16004,7 @@ module Aws::ECS
15645
16004
  tracer: tracer
15646
16005
  )
15647
16006
  context[:gem_name] = 'aws-sdk-ecs'
15648
- context[:gem_version] = '1.230.0'
16007
+ context[:gem_version] = '1.231.0'
15649
16008
  Seahorse::Client::Request.new(handlers, context)
15650
16009
  end
15651
16010
 
@@ -108,6 +108,8 @@ module Aws::ECS
108
108
  ContainerStateChange = Shapes::StructureShape.new(name: 'ContainerStateChange')
109
109
  ContainerStateChanges = Shapes::ListShape.new(name: 'ContainerStateChanges')
110
110
  Containers = Shapes::ListShape.new(name: 'Containers')
111
+ ContinueServiceDeploymentRequest = Shapes::StructureShape.new(name: 'ContinueServiceDeploymentRequest')
112
+ ContinueServiceDeploymentResponse = Shapes::StructureShape.new(name: 'ContinueServiceDeploymentResponse')
111
113
  CpuManufacturer = Shapes::StringShape.new(name: 'CpuManufacturer')
112
114
  CpuManufacturerSet = Shapes::ListShape.new(name: 'CpuManufacturerSet')
113
115
  CreateCapacityProviderRequest = Shapes::StructureShape.new(name: 'CreateCapacityProviderRequest')
@@ -195,9 +197,16 @@ module Aws::ECS
195
197
  DeploymentControllerType = Shapes::StringShape.new(name: 'DeploymentControllerType')
196
198
  DeploymentEphemeralStorage = Shapes::StructureShape.new(name: 'DeploymentEphemeralStorage')
197
199
  DeploymentLifecycleHook = Shapes::StructureShape.new(name: 'DeploymentLifecycleHook')
200
+ DeploymentLifecycleHookAction = Shapes::StringShape.new(name: 'DeploymentLifecycleHookAction')
201
+ DeploymentLifecycleHookDetail = Shapes::StructureShape.new(name: 'DeploymentLifecycleHookDetail')
202
+ DeploymentLifecycleHookDetailList = Shapes::ListShape.new(name: 'DeploymentLifecycleHookDetailList')
203
+ DeploymentLifecycleHookDuration = Shapes::IntegerShape.new(name: 'DeploymentLifecycleHookDuration')
198
204
  DeploymentLifecycleHookList = Shapes::ListShape.new(name: 'DeploymentLifecycleHookList')
199
205
  DeploymentLifecycleHookStage = Shapes::StringShape.new(name: 'DeploymentLifecycleHookStage')
200
206
  DeploymentLifecycleHookStageList = Shapes::ListShape.new(name: 'DeploymentLifecycleHookStageList')
207
+ DeploymentLifecycleHookStatus = Shapes::StringShape.new(name: 'DeploymentLifecycleHookStatus')
208
+ DeploymentLifecycleHookTargetType = Shapes::StringShape.new(name: 'DeploymentLifecycleHookTargetType')
209
+ DeploymentLifecycleHookTimeoutConfiguration = Shapes::StructureShape.new(name: 'DeploymentLifecycleHookTimeoutConfiguration')
201
210
  DeploymentRolloutState = Shapes::StringShape.new(name: 'DeploymentRolloutState')
202
211
  DeploymentStrategy = Shapes::StringShape.new(name: 'DeploymentStrategy')
203
212
  Deployments = Shapes::ListShape.new(name: 'Deployments')
@@ -939,6 +948,14 @@ module Aws::ECS
939
948
 
940
949
  Containers.member = Shapes::ShapeRef.new(shape: Container)
941
950
 
951
+ ContinueServiceDeploymentRequest.add_member(:service_deployment_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceDeploymentArn"))
952
+ ContinueServiceDeploymentRequest.add_member(:hook_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "hookId"))
953
+ ContinueServiceDeploymentRequest.add_member(:action, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookAction, location_name: "action"))
954
+ ContinueServiceDeploymentRequest.struct_class = Types::ContinueServiceDeploymentRequest
955
+
956
+ ContinueServiceDeploymentResponse.add_member(:service_deployment_arn, Shapes::ShapeRef.new(shape: String, location_name: "serviceDeploymentArn"))
957
+ ContinueServiceDeploymentResponse.struct_class = Types::ContinueServiceDeploymentResponse
958
+
942
959
  CpuManufacturerSet.member = Shapes::ShapeRef.new(shape: CpuManufacturer)
943
960
 
944
961
  CreateCapacityProviderRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
@@ -1379,16 +1396,32 @@ module Aws::ECS
1379
1396
  DeploymentEphemeralStorage.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "kmsKeyId"))
1380
1397
  DeploymentEphemeralStorage.struct_class = Types::DeploymentEphemeralStorage
1381
1398
 
1399
+ DeploymentLifecycleHook.add_member(:target_type, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookTargetType, location_name: "targetType"))
1382
1400
  DeploymentLifecycleHook.add_member(:hook_target_arn, Shapes::ShapeRef.new(shape: String, location_name: "hookTargetArn"))
1383
1401
  DeploymentLifecycleHook.add_member(:role_arn, Shapes::ShapeRef.new(shape: IAMRoleArn, location_name: "roleArn"))
1384
1402
  DeploymentLifecycleHook.add_member(:lifecycle_stages, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookStageList, location_name: "lifecycleStages"))
1385
1403
  DeploymentLifecycleHook.add_member(:hook_details, Shapes::ShapeRef.new(shape: HookDetails, location_name: "hookDetails"))
1404
+ DeploymentLifecycleHook.add_member(:timeout_configuration, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookTimeoutConfiguration, location_name: "timeoutConfiguration"))
1386
1405
  DeploymentLifecycleHook.struct_class = Types::DeploymentLifecycleHook
1387
1406
 
1407
+ DeploymentLifecycleHookDetail.add_member(:hook_id, Shapes::ShapeRef.new(shape: String, location_name: "hookId"))
1408
+ DeploymentLifecycleHookDetail.add_member(:target_type, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookTargetType, location_name: "targetType"))
1409
+ DeploymentLifecycleHookDetail.add_member(:target_arn, Shapes::ShapeRef.new(shape: String, location_name: "targetArn"))
1410
+ DeploymentLifecycleHookDetail.add_member(:status, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookStatus, location_name: "status"))
1411
+ DeploymentLifecycleHookDetail.add_member(:expires_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "expiresAt"))
1412
+ DeploymentLifecycleHookDetail.add_member(:timeout_action, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookAction, location_name: "timeoutAction"))
1413
+ DeploymentLifecycleHookDetail.struct_class = Types::DeploymentLifecycleHookDetail
1414
+
1415
+ DeploymentLifecycleHookDetailList.member = Shapes::ShapeRef.new(shape: DeploymentLifecycleHookDetail)
1416
+
1388
1417
  DeploymentLifecycleHookList.member = Shapes::ShapeRef.new(shape: DeploymentLifecycleHook)
1389
1418
 
1390
1419
  DeploymentLifecycleHookStageList.member = Shapes::ShapeRef.new(shape: DeploymentLifecycleHookStage)
1391
1420
 
1421
+ DeploymentLifecycleHookTimeoutConfiguration.add_member(:timeout_in_minutes, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookDuration, location_name: "timeoutInMinutes"))
1422
+ DeploymentLifecycleHookTimeoutConfiguration.add_member(:action, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookAction, location_name: "action"))
1423
+ DeploymentLifecycleHookTimeoutConfiguration.struct_class = Types::DeploymentLifecycleHookTimeoutConfiguration
1424
+
1392
1425
  Deployments.member = Shapes::ShapeRef.new(shape: Deployment)
1393
1426
 
1394
1427
  DeregisterContainerInstanceRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, location_name: "cluster"))
@@ -2518,6 +2551,7 @@ module Aws::ECS
2518
2551
  ServiceDeployment.add_member(:status, Shapes::ShapeRef.new(shape: ServiceDeploymentStatus, location_name: "status"))
2519
2552
  ServiceDeployment.add_member(:status_reason, Shapes::ShapeRef.new(shape: String, location_name: "statusReason"))
2520
2553
  ServiceDeployment.add_member(:lifecycle_stage, Shapes::ShapeRef.new(shape: ServiceDeploymentLifecycleStage, location_name: "lifecycleStage"))
2554
+ ServiceDeployment.add_member(:lifecycle_hook_details, Shapes::ShapeRef.new(shape: DeploymentLifecycleHookDetailList, location_name: "lifecycleHookDetails"))
2521
2555
  ServiceDeployment.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
2522
2556
  ServiceDeployment.add_member(:rollback, Shapes::ShapeRef.new(shape: Rollback, location_name: "rollback"))
2523
2557
  ServiceDeployment.add_member(:deployment_circuit_breaker, Shapes::ShapeRef.new(shape: ServiceDeploymentCircuitBreaker, location_name: "deploymentCircuitBreaker"))
@@ -3134,6 +3168,20 @@ module Aws::ECS
3134
3168
  "uid" => "ecs-2014-11-13",
3135
3169
  }
3136
3170
 
3171
+ api.add_operation(:continue_service_deployment, Seahorse::Model::Operation.new.tap do |o|
3172
+ o.name = "ContinueServiceDeployment"
3173
+ o.http_method = "POST"
3174
+ o.http_request_uri = "/"
3175
+ o.input = Shapes::ShapeRef.new(shape: ContinueServiceDeploymentRequest)
3176
+ o.output = Shapes::ShapeRef.new(shape: ContinueServiceDeploymentResponse)
3177
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3178
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
3179
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
3180
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
3181
+ o.errors << Shapes::ShapeRef.new(shape: ServiceDeploymentNotFoundException)
3182
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedFeatureException)
3183
+ end)
3184
+
3137
3185
  api.add_operation(:create_capacity_provider, Seahorse::Model::Operation.new.tap do |o|
3138
3186
  o.name = "CreateCapacityProvider"
3139
3187
  o.http_method = "POST"
@@ -2733,6 +2733,53 @@ module Aws::ECS
2733
2733
  include Aws::Structure
2734
2734
  end
2735
2735
 
2736
+ # @!attribute [rw] service_deployment_arn
2737
+ # The ARN of the service deployment to continue or roll back.
2738
+ # @return [String]
2739
+ #
2740
+ # @!attribute [rw] hook_id
2741
+ # The ID of the paused lifecycle hook to act on. You can find the
2742
+ # `hookId` by calling [DescribeServiceDeployments][1] and inspecting
2743
+ # the `lifecycleHookDetails` field of the service deployment.
2744
+ #
2745
+ #
2746
+ #
2747
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
2748
+ # @return [String]
2749
+ #
2750
+ # @!attribute [rw] action
2751
+ # The action to take on the paused lifecycle hook. Valid values are:
2752
+ #
2753
+ # * `CONTINUE` - Proceeds the deployment to the next lifecycle stage.
2754
+ #
2755
+ # * `ROLLBACK` - Rolls back the deployment to the previous service
2756
+ # revision.
2757
+ #
2758
+ # If no value is specified, the default action is `CONTINUE`.
2759
+ # @return [String]
2760
+ #
2761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContinueServiceDeploymentRequest AWS API Documentation
2762
+ #
2763
+ class ContinueServiceDeploymentRequest < Struct.new(
2764
+ :service_deployment_arn,
2765
+ :hook_id,
2766
+ :action)
2767
+ SENSITIVE = []
2768
+ include Aws::Structure
2769
+ end
2770
+
2771
+ # @!attribute [rw] service_deployment_arn
2772
+ # The ARN of the service deployment that was continued or rolled back.
2773
+ # @return [String]
2774
+ #
2775
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContinueServiceDeploymentResponse AWS API Documentation
2776
+ #
2777
+ class ContinueServiceDeploymentResponse < Struct.new(
2778
+ :service_deployment_arn)
2779
+ SENSITIVE = []
2780
+ include Aws::Structure
2781
+ end
2782
+
2736
2783
  # @!attribute [rw] name
2737
2784
  # The name of the capacity provider. Up to 255 characters are allowed.
2738
2785
  # They include letters (both upper and lowercase letters), numbers,
@@ -3813,6 +3860,15 @@ module Aws::ECS
3813
3860
  # `deploymentController`, `taskSets` and `deployments` parameters will
3814
3861
  # be returned, however the `deployments` parameter will be an empty
3815
3862
  # list.
3863
+ #
3864
+ # The response includes a `lifecycleHookDetails` field, which is an
3865
+ # empty array when the service is created or updated. The values are
3866
+ # populated when a lifecycle hook executes and are available as part
3867
+ # of the service deployment details ([DescribeServiceDeployments][1]).
3868
+ #
3869
+ #
3870
+ #
3871
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
3816
3872
  # @return [Types::Service]
3817
3873
  #
3818
3874
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceResponse AWS API Documentation
@@ -6002,6 +6058,20 @@ module Aws::ECS
6002
6058
  #
6003
6059
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-lifecycle-hooks.html
6004
6060
  #
6061
+ # @!attribute [rw] target_type
6062
+ # The type of action the lifecycle hook performs. Valid values are:
6063
+ #
6064
+ # * `AWS_LAMBDA` - Invokes a Lambda function at the specified
6065
+ # lifecycle stage. This is the default value.
6066
+ #
6067
+ # * `PAUSE` - Pauses the deployment at the specified lifecycle stage
6068
+ # until you call `ContinueServiceDeployment` to continue or roll
6069
+ # back.
6070
+ #
6071
+ # This field is optional. If not specified, the default value is
6072
+ # `AWS_LAMBDA`.
6073
+ # @return [String]
6074
+ #
6005
6075
  # @!attribute [rw] hook_target_arn
6006
6076
  # The Amazon Resource Name (ARN) of the hook target. Currently, only
6007
6077
  # Lambda function ARNs are supported.
@@ -6089,13 +6159,110 @@ module Aws::ECS
6089
6159
  # pass to your hook target invocations (such as a Lambda function).
6090
6160
  # @return [Hash,Array,String,Numeric,Boolean]
6091
6161
  #
6162
+ # @!attribute [rw] timeout_configuration
6163
+ # The timeout configuration for the lifecycle hook. This specifies how
6164
+ # long Amazon ECS waits before taking the timeout action if the hook
6165
+ # is not resolved.
6166
+ # @return [Types::DeploymentLifecycleHookTimeoutConfiguration]
6167
+ #
6092
6168
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeploymentLifecycleHook AWS API Documentation
6093
6169
  #
6094
6170
  class DeploymentLifecycleHook < Struct.new(
6171
+ :target_type,
6095
6172
  :hook_target_arn,
6096
6173
  :role_arn,
6097
6174
  :lifecycle_stages,
6098
- :hook_details)
6175
+ :hook_details,
6176
+ :timeout_configuration)
6177
+ SENSITIVE = []
6178
+ include Aws::Structure
6179
+ end
6180
+
6181
+ # The details of a deployment lifecycle hook that is active during a
6182
+ # service deployment.
6183
+ #
6184
+ # You can view lifecycle hook details by calling
6185
+ # [DescribeServiceDeployments][1].
6186
+ #
6187
+ #
6188
+ #
6189
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
6190
+ #
6191
+ # @!attribute [rw] hook_id
6192
+ # The ID of the lifecycle hook. Use this value when calling
6193
+ # `ContinueServiceDeployment` to continue or roll back a paused
6194
+ # deployment.
6195
+ # @return [String]
6196
+ #
6197
+ # @!attribute [rw] target_type
6198
+ # The type of action the lifecycle hook performs, such as `AWS_LAMBDA`
6199
+ # or `PAUSE`.
6200
+ # @return [String]
6201
+ #
6202
+ # @!attribute [rw] target_arn
6203
+ # The Amazon Resource Name (ARN) of the hook target. For `AWS_LAMBDA`
6204
+ # hooks, this is the Lambda function ARN. For `PAUSE` hooks, this
6205
+ # field is not set.
6206
+ # @return [String]
6207
+ #
6208
+ # @!attribute [rw] status
6209
+ # The status of the lifecycle hook. Valid values depend on the hook
6210
+ # type:
6211
+ #
6212
+ # * For `AWS_LAMBDA` hooks: `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, and
6213
+ # `TIMED_OUT`.
6214
+ #
6215
+ # * For `PAUSE` hooks: `AWAITING_ACTION`, `SUCCEEDED`, `FAILED`, and
6216
+ # `TIMED_OUT`.
6217
+ # @return [String]
6218
+ #
6219
+ # @!attribute [rw] expires_at
6220
+ # The time when the lifecycle hook times out. If the hook has not been
6221
+ # completed by this time, Amazon ECS takes the timeout action.
6222
+ # @return [Time]
6223
+ #
6224
+ # @!attribute [rw] timeout_action
6225
+ # The action Amazon ECS takes when the lifecycle hook times out. Valid
6226
+ # values are `CONTINUE` and `ROLLBACK`.
6227
+ # @return [String]
6228
+ #
6229
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeploymentLifecycleHookDetail AWS API Documentation
6230
+ #
6231
+ class DeploymentLifecycleHookDetail < Struct.new(
6232
+ :hook_id,
6233
+ :target_type,
6234
+ :target_arn,
6235
+ :status,
6236
+ :expires_at,
6237
+ :timeout_action)
6238
+ SENSITIVE = []
6239
+ include Aws::Structure
6240
+ end
6241
+
6242
+ # The timeout configuration for a deployment lifecycle hook. This
6243
+ # determines how long Amazon ECS waits for the hook to complete before
6244
+ # taking the specified timeout action.
6245
+ #
6246
+ # @!attribute [rw] timeout_in_minutes
6247
+ # The number of minutes Amazon ECS waits for the lifecycle hook to
6248
+ # complete before taking the timeout action.
6249
+ # @return [Integer]
6250
+ #
6251
+ # @!attribute [rw] action
6252
+ # The action Amazon ECS takes when the lifecycle hook times out. Valid
6253
+ # values are:
6254
+ #
6255
+ # * `CONTINUE` - Proceeds the deployment to the next lifecycle stage.
6256
+ #
6257
+ # * `ROLLBACK` - Rolls back the deployment to the previous service
6258
+ # revision.
6259
+ # @return [String]
6260
+ #
6261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeploymentLifecycleHookTimeoutConfiguration AWS API Documentation
6262
+ #
6263
+ class DeploymentLifecycleHookTimeoutConfiguration < Struct.new(
6264
+ :timeout_in_minutes,
6265
+ :action)
6099
6266
  SENSITIVE = []
6100
6267
  include Aws::Structure
6101
6268
  end
@@ -13783,8 +13950,8 @@ module Aws::ECS
13783
13950
  # volumes][1] in the *Amazon Elastic Container Service Developer Guide*.
13784
13951
  #
13785
13952
  # Your task definition must include a Task IAM Role. See [ IAM role for
13786
- # attaching your file system to AWS compute resources][2] for required
13787
- # permissions.
13953
+ # attaching your file system to Amazon Web Services compute
13954
+ # resources][2] for required permissions.
13788
13955
  #
13789
13956
  #
13790
13957
  #
@@ -14905,6 +15072,11 @@ module Aws::ECS
14905
15072
  # production service revision after this stage.
14906
15073
  # @return [String]
14907
15074
  #
15075
+ # @!attribute [rw] lifecycle_hook_details
15076
+ # The details of the lifecycle hooks for the current service
15077
+ # deployment.
15078
+ # @return [Array<Types::DeploymentLifecycleHookDetail>]
15079
+ #
14908
15080
  # @!attribute [rw] deployment_configuration
14909
15081
  # Optional deployment parameters that control how many tasks run
14910
15082
  # during a deployment and the ordering of stopping and starting tasks.
@@ -14941,6 +15113,7 @@ module Aws::ECS
14941
15113
  :status,
14942
15114
  :status_reason,
14943
15115
  :lifecycle_stage,
15116
+ :lifecycle_hook_details,
14944
15117
  :deployment_configuration,
14945
15118
  :rollback,
14946
15119
  :deployment_circuit_breaker,
@@ -18908,6 +19081,15 @@ module Aws::ECS
18908
19081
  #
18909
19082
  # @!attribute [rw] service
18910
19083
  # The full description of your service following the update call.
19084
+ #
19085
+ # The response includes a `lifecycleHookDetails` field, which is an
19086
+ # empty array when the service is created or updated. The values are
19087
+ # populated when a lifecycle hook executes and are available as part
19088
+ # of the service deployment details ([DescribeServiceDeployments][1]).
19089
+ #
19090
+ #
19091
+ #
19092
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html
18911
19093
  # @return [Types::Service]
18912
19094
  #
18913
19095
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceResponse AWS API Documentation
data/lib/aws-sdk-ecs.rb CHANGED
@@ -23,7 +23,7 @@ Aws::Plugins::GlobalConfiguration.add_identifier(:ecs)
23
23
  # structure.
24
24
  #
25
25
  # ecs = Aws::ECS::Client.new
26
- # resp = ecs.create_capacity_provider(params)
26
+ # resp = ecs.continue_service_deployment(params)
27
27
  #
28
28
  # See {Client} for more information.
29
29
  #
@@ -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.230.0'
58
+ GEM_VERSION = '1.231.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -79,6 +79,18 @@ module Aws
79
79
  | (?Hash[Symbol, untyped]) -> instance
80
80
 
81
81
 
82
+ interface _ContinueServiceDeploymentResponseSuccess
83
+ include ::Seahorse::Client::_ResponseSuccess[Types::ContinueServiceDeploymentResponse]
84
+ def service_deployment_arn: () -> ::String
85
+ end
86
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ECS/Client.html#continue_service_deployment-instance_method
87
+ def continue_service_deployment: (
88
+ service_deployment_arn: ::String,
89
+ hook_id: ::String,
90
+ ?action: ("ROLLBACK" | "CONTINUE")
91
+ ) -> _ContinueServiceDeploymentResponseSuccess
92
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ContinueServiceDeploymentResponseSuccess
93
+
82
94
  interface _CreateCapacityProviderResponseSuccess
83
95
  include ::Seahorse::Client::_ResponseSuccess[Types::CreateCapacityProviderResponse]
84
96
  def capacity_provider: () -> Types::CapacityProvider
@@ -393,10 +405,15 @@ module Aws
393
405
  bake_time_in_minutes: ::Integer?,
394
406
  lifecycle_hooks: Array[
395
407
  {
408
+ target_type: ("AWS_LAMBDA" | "PAUSE")?,
396
409
  hook_target_arn: ::String?,
397
410
  role_arn: ::String?,
398
- lifecycle_stages: Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]?,
411
+ lifecycle_stages: Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRE_PRODUCTION_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]?,
399
412
  hook_details: {
413
+ }?,
414
+ timeout_configuration: {
415
+ timeout_in_minutes: ::Integer?,
416
+ action: ("ROLLBACK" | "CONTINUE")?
400
417
  }?
401
418
  },
402
419
  ]?,
@@ -2323,10 +2340,15 @@ module Aws
2323
2340
  bake_time_in_minutes: ::Integer?,
2324
2341
  lifecycle_hooks: Array[
2325
2342
  {
2343
+ target_type: ("AWS_LAMBDA" | "PAUSE")?,
2326
2344
  hook_target_arn: ::String?,
2327
2345
  role_arn: ::String?,
2328
- lifecycle_stages: Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]?,
2346
+ lifecycle_stages: Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRE_PRODUCTION_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]?,
2329
2347
  hook_details: {
2348
+ }?,
2349
+ timeout_configuration: {
2350
+ timeout_in_minutes: ::Integer?,
2351
+ action: ("ROLLBACK" | "CONTINUE")?
2330
2352
  }?
2331
2353
  },
2332
2354
  ]?,
data/sig/types.rbs CHANGED
@@ -347,6 +347,18 @@ module Aws::ECS
347
347
  SENSITIVE: []
348
348
  end
349
349
 
350
+ class ContinueServiceDeploymentRequest
351
+ attr_accessor service_deployment_arn: ::String
352
+ attr_accessor hook_id: ::String
353
+ attr_accessor action: ("ROLLBACK" | "CONTINUE")
354
+ SENSITIVE: []
355
+ end
356
+
357
+ class ContinueServiceDeploymentResponse
358
+ attr_accessor service_deployment_arn: ::String
359
+ SENSITIVE: []
360
+ end
361
+
350
362
  class CreateCapacityProviderRequest
351
363
  attr_accessor name: ::String
352
364
  attr_accessor cluster: ::String
@@ -884,10 +896,28 @@ module Aws::ECS
884
896
  end
885
897
 
886
898
  class DeploymentLifecycleHook
899
+ attr_accessor target_type: ("AWS_LAMBDA" | "PAUSE")
887
900
  attr_accessor hook_target_arn: ::String
888
901
  attr_accessor role_arn: ::String
889
- attr_accessor lifecycle_stages: ::Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]
902
+ attr_accessor lifecycle_stages: ::Array[("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRE_PRODUCTION_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT")]
890
903
  attr_accessor hook_details: untyped
904
+ attr_accessor timeout_configuration: Types::DeploymentLifecycleHookTimeoutConfiguration
905
+ SENSITIVE: []
906
+ end
907
+
908
+ class DeploymentLifecycleHookDetail
909
+ attr_accessor hook_id: ::String
910
+ attr_accessor target_type: ("AWS_LAMBDA" | "PAUSE")
911
+ attr_accessor target_arn: ::String
912
+ attr_accessor status: ("AWAITING_ACTION" | "IN_PROGRESS" | "SUCCEEDED" | "FAILED" | "TIMED_OUT")
913
+ attr_accessor expires_at: ::Time
914
+ attr_accessor timeout_action: ("ROLLBACK" | "CONTINUE")
915
+ SENSITIVE: []
916
+ end
917
+
918
+ class DeploymentLifecycleHookTimeoutConfiguration
919
+ attr_accessor timeout_in_minutes: ::Integer
920
+ attr_accessor action: ("ROLLBACK" | "CONTINUE")
891
921
  SENSITIVE: []
892
922
  end
893
923
 
@@ -2292,6 +2322,7 @@ module Aws::ECS
2292
2322
  attr_accessor status: ("PENDING" | "SUCCESSFUL" | "STOPPED" | "STOP_REQUESTED" | "IN_PROGRESS" | "ROLLBACK_REQUESTED" | "ROLLBACK_IN_PROGRESS" | "ROLLBACK_SUCCESSFUL" | "ROLLBACK_FAILED")
2293
2323
  attr_accessor status_reason: ::String
2294
2324
  attr_accessor lifecycle_stage: ("RECONCILE_SERVICE" | "PRE_SCALE_UP" | "SCALE_UP" | "POST_SCALE_UP" | "TEST_TRAFFIC_SHIFT" | "POST_TEST_TRAFFIC_SHIFT" | "PRODUCTION_TRAFFIC_SHIFT" | "POST_PRODUCTION_TRAFFIC_SHIFT" | "BAKE_TIME" | "CLEAN_UP")
2325
+ attr_accessor lifecycle_hook_details: ::Array[Types::DeploymentLifecycleHookDetail]
2295
2326
  attr_accessor deployment_configuration: Types::DeploymentConfiguration
2296
2327
  attr_accessor rollback: Types::Rollback
2297
2328
  attr_accessor deployment_circuit_breaker: Types::ServiceDeploymentCircuitBreaker
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.230.0
4
+ version: 1.231.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services