aws-sdk-ecs 1.103.0 → 1.105.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6c8edd6cb14ad1f63d54fd3a1fbb64098588a38ef492c7dbb6340e7dd10087c
4
- data.tar.gz: 4ff2dd8d3ef897787523c3e9ac93d7e01050d5c165649afbf180749332651ee7
3
+ metadata.gz: 789d2a119deed80004f66d84bc3c5425758742b1b0070ab60f0c8993525c6837
4
+ data.tar.gz: 3adc2267e9be935901ef6184fca3fe15e350978a51bf0b9a94aa4df0798f66bd
5
5
  SHA512:
6
- metadata.gz: b31e39e4ed3de881670b831715b3d213b800c5e364dc44f40376fe51e7372f69b44f03d987a8001b052fab8bc7279e2d961b687fa9b36ff071ba451e3efdcc31
7
- data.tar.gz: ed953e544b1ac65a7145a5f3162cde328ae683e567057393b4131746a9f6212d7e940c63e7722e4c7d41bb5217dede73619743a2bbce5e966348b5a942a69269
6
+ metadata.gz: 586f1fae25026a2076ab9855bd6b5b77b412c1c8695254660535faa674b417c5220e9fbba04c1e07a6f1bfdf5e6ab3e56e0f01a769b3ca54f26d60943f27e26d
7
+ data.tar.gz: a348d4a49a77edc12f0659706f29c97349d87be7fb76de6e188c8888f37870d61556fad1c77bcd2b24fb877c6a9af6463ca251d3f8766cf73e5f636975f569f7
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.105.0 (2022-11-10)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for task scale-in protection with updateTaskProtection and getTaskProtection APIs. UpdateTaskProtection API can be used to protect a service managed task from being terminated by scale-in events and getTaskProtection API to get the scale-in protection status of a task.
8
+
9
+ 1.104.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.103.0 (2022-10-13)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.103.0
1
+ 1.105.0
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:ecs)
@@ -79,8 +79,9 @@ module Aws::ECS
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
84
+ add_plugin(Aws::ECS::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::ECS
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::ECS
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::ECS::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::ECS::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -3906,6 +3923,72 @@ module Aws::ECS
3906
3923
  req.send_request(options)
3907
3924
  end
3908
3925
 
3926
+ # Retrieves the protection status of tasks in an Amazon ECS service.
3927
+ #
3928
+ # @option params [required, String] :cluster
3929
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
3930
+ # hosts the service that the task sets exist in.
3931
+ #
3932
+ # @option params [Array<String>] :tasks
3933
+ # A list of up to 100 task IDs or full ARN entries.
3934
+ #
3935
+ # @return [Types::GetTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3936
+ #
3937
+ # * {Types::GetTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
3938
+ # * {Types::GetTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
3939
+ #
3940
+ #
3941
+ # @example Example: To get the protection status of a task
3942
+ #
3943
+ # # In this example, we get the protection status for a single task.
3944
+ #
3945
+ # resp = client.get_task_protection({
3946
+ # cluster: "test-task-protection",
3947
+ # tasks: [
3948
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
3949
+ # ],
3950
+ # })
3951
+ #
3952
+ # resp.to_h outputs the following:
3953
+ # {
3954
+ # failures: [
3955
+ # ],
3956
+ # protected_tasks: [
3957
+ # {
3958
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
3959
+ # protection_enabled: true,
3960
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
3961
+ # },
3962
+ # ],
3963
+ # }
3964
+ #
3965
+ # @example Request syntax with placeholder values
3966
+ #
3967
+ # resp = client.get_task_protection({
3968
+ # cluster: "String", # required
3969
+ # tasks: ["String"],
3970
+ # })
3971
+ #
3972
+ # @example Response structure
3973
+ #
3974
+ # resp.protected_tasks #=> Array
3975
+ # resp.protected_tasks[0].task_arn #=> String
3976
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
3977
+ # resp.protected_tasks[0].expiration_date #=> Time
3978
+ # resp.failures #=> Array
3979
+ # resp.failures[0].arn #=> String
3980
+ # resp.failures[0].reason #=> String
3981
+ # resp.failures[0].detail #=> String
3982
+ #
3983
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/GetTaskProtection AWS API Documentation
3984
+ #
3985
+ # @overload get_task_protection(params = {})
3986
+ # @param [Hash] params ({})
3987
+ def get_task_protection(params = {}, options = {})
3988
+ req = build_request(:get_task_protection, params)
3989
+ req.send_request(options)
3990
+ end
3991
+
3909
3992
  # Lists the account settings for a specified principal.
3910
3993
  #
3911
3994
  # @option params [String] :name
@@ -8662,6 +8745,178 @@ module Aws::ECS
8662
8745
  req.send_request(options)
8663
8746
  end
8664
8747
 
8748
+ # Updates the protection status of a task. You can set
8749
+ # `protectionEnabled` to `true` to protect your task from termination
8750
+ # during scale-in events from [Service Autoscaling][1] or
8751
+ # [deployments][2].
8752
+ #
8753
+ # Task-protection, by default, expires after 2 hours at which point
8754
+ # Amazon ECS unsets the `protectionEnabled` property making the task
8755
+ # eligible for termination by a subsequent scale-in event.
8756
+ #
8757
+ # You can specify a custom expiration period for task protection from 1
8758
+ # minute to up to 2,880 minutes (48 hours). To specify the custom
8759
+ # expiration period, set the `expiresInMinutes` property. The
8760
+ # `expiresInMinutes` property is always reset when you invoke this
8761
+ # operation for a task that already has `protectionEnabled` set to
8762
+ # `true`. You can keep extending the protection expiration period of a
8763
+ # task by invoking this operation repeatedly.
8764
+ #
8765
+ # To learn more about Amazon ECS task protection, see [Task scale-in
8766
+ # protection][3] in the *Amazon Elastic Container Service Developer
8767
+ # Guide*.
8768
+ #
8769
+ # <note markdown="1"> This operation is only supported for tasks belonging to an Amazon ECS
8770
+ # service. Invoking this operation for a standalone task will result in
8771
+ # an `TASK_NOT_VALID` failure. For more information, see [API failure
8772
+ # reasons][4].
8773
+ #
8774
+ # </note>
8775
+ #
8776
+ # If you prefer to set task protection from within the container, we
8777
+ # recommend using the [Amazon ECS container agent endpoint][5].
8778
+ #
8779
+ #
8780
+ #
8781
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html
8782
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
8783
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html
8784
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html.html
8785
+ # [5]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-endpoint.html
8786
+ #
8787
+ # @option params [required, String] :cluster
8788
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
8789
+ # hosts the service that the task sets exist in.
8790
+ #
8791
+ # @option params [required, Array<String>] :tasks
8792
+ # A list of up to 10 task IDs or full ARN entries.
8793
+ #
8794
+ # @option params [required, Boolean] :protection_enabled
8795
+ # Specify `true` to mark a task for protection and `false` to unset
8796
+ # protection, making it eligible for termination.
8797
+ #
8798
+ # @option params [Integer] :expires_in_minutes
8799
+ # If you set `protectionEnabled` to `true`, you can specify the duration
8800
+ # for task protection in minutes. You can specify a value from 1 minute
8801
+ # to up to 2,880 minutes (48 hours). During this time, your task will
8802
+ # not be terminated by scale-in events from Service Auto Scaling or
8803
+ # deployments. After this time period lapses, `protectionEnabled` will
8804
+ # be reset to `false`.
8805
+ #
8806
+ # If you don’t specify the time, then the task is automatically
8807
+ # protected for 120 minutes (2 hours).
8808
+ #
8809
+ # @return [Types::UpdateTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8810
+ #
8811
+ # * {Types::UpdateTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
8812
+ # * {Types::UpdateTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
8813
+ #
8814
+ #
8815
+ # @example Example: To set task scale-in protection for a task for 60 minutes
8816
+ #
8817
+ # # This example enables scale-in protection for a task for 60 minutes.
8818
+ #
8819
+ # resp = client.update_task_protection({
8820
+ # cluster: "test-task-protection",
8821
+ # expires_in_minutes: 60,
8822
+ # protection_enabled: true,
8823
+ # tasks: [
8824
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
8825
+ # ],
8826
+ # })
8827
+ #
8828
+ # resp.to_h outputs the following:
8829
+ # {
8830
+ # failures: [
8831
+ # ],
8832
+ # protected_tasks: [
8833
+ # {
8834
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
8835
+ # protection_enabled: true,
8836
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
8837
+ # },
8838
+ # ],
8839
+ # }
8840
+ #
8841
+ # @example Example: To set task scale-in protection for the default time period in minutes
8842
+ #
8843
+ # # This example enables task scale-in protection for a task, without specifying the expiresInMinutes parameter, for the
8844
+ # # default protection period of 120 minutes.
8845
+ #
8846
+ # resp = client.update_task_protection({
8847
+ # cluster: "test-task-protection",
8848
+ # protection_enabled: true,
8849
+ # tasks: [
8850
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
8851
+ # ],
8852
+ # })
8853
+ #
8854
+ # resp.to_h outputs the following:
8855
+ # {
8856
+ # failures: [
8857
+ # ],
8858
+ # protected_tasks: [
8859
+ # {
8860
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
8861
+ # protection_enabled: true,
8862
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
8863
+ # },
8864
+ # ],
8865
+ # }
8866
+ #
8867
+ # @example Example: To remove task scale-in protection
8868
+ #
8869
+ # # This example removes scale-in protection for a task.
8870
+ #
8871
+ # resp = client.update_task_protection({
8872
+ # cluster: "test-task-protection",
8873
+ # protection_enabled: false,
8874
+ # tasks: [
8875
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
8876
+ # ],
8877
+ # })
8878
+ #
8879
+ # resp.to_h outputs the following:
8880
+ # {
8881
+ # failures: [
8882
+ # ],
8883
+ # protected_tasks: [
8884
+ # {
8885
+ # protection_enabled: false,
8886
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
8887
+ # },
8888
+ # ],
8889
+ # }
8890
+ #
8891
+ # @example Request syntax with placeholder values
8892
+ #
8893
+ # resp = client.update_task_protection({
8894
+ # cluster: "String", # required
8895
+ # tasks: ["String"], # required
8896
+ # protection_enabled: false, # required
8897
+ # expires_in_minutes: 1,
8898
+ # })
8899
+ #
8900
+ # @example Response structure
8901
+ #
8902
+ # resp.protected_tasks #=> Array
8903
+ # resp.protected_tasks[0].task_arn #=> String
8904
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
8905
+ # resp.protected_tasks[0].expiration_date #=> Time
8906
+ # resp.failures #=> Array
8907
+ # resp.failures[0].arn #=> String
8908
+ # resp.failures[0].reason #=> String
8909
+ # resp.failures[0].detail #=> String
8910
+ #
8911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskProtection AWS API Documentation
8912
+ #
8913
+ # @overload update_task_protection(params = {})
8914
+ # @param [Hash] params ({})
8915
+ def update_task_protection(params = {}, options = {})
8916
+ req = build_request(:update_task_protection, params)
8917
+ req.send_request(options)
8918
+ end
8919
+
8665
8920
  # Modifies a task set. This is used when a service uses the `EXTERNAL`
8666
8921
  # deployment controller type. For more information, see [Amazon ECS
8667
8922
  # Deployment Types][1] in the *Amazon Elastic Container Service
@@ -8770,7 +9025,7 @@ module Aws::ECS
8770
9025
  params: params,
8771
9026
  config: config)
8772
9027
  context[:gem_name] = 'aws-sdk-ecs'
8773
- context[:gem_version] = '1.103.0'
9028
+ context[:gem_version] = '1.105.0'
8774
9029
  Seahorse::Client::Request.new(handlers, context)
8775
9030
  end
8776
9031
 
@@ -151,6 +151,8 @@ module Aws::ECS
151
151
  FirelensConfiguration = Shapes::StructureShape.new(name: 'FirelensConfiguration')
152
152
  FirelensConfigurationOptionsMap = Shapes::MapShape.new(name: 'FirelensConfigurationOptionsMap')
153
153
  FirelensConfigurationType = Shapes::StringShape.new(name: 'FirelensConfigurationType')
154
+ GetTaskProtectionRequest = Shapes::StructureShape.new(name: 'GetTaskProtectionRequest')
155
+ GetTaskProtectionResponse = Shapes::StructureShape.new(name: 'GetTaskProtectionResponse')
154
156
  GpuIds = Shapes::ListShape.new(name: 'GpuIds')
155
157
  HealthCheck = Shapes::StructureShape.new(name: 'HealthCheck')
156
158
  HealthStatus = Shapes::StringShape.new(name: 'HealthStatus')
@@ -234,6 +236,8 @@ module Aws::ECS
234
236
  PortMapping = Shapes::StructureShape.new(name: 'PortMapping')
235
237
  PortMappingList = Shapes::ListShape.new(name: 'PortMappingList')
236
238
  PropagateTags = Shapes::StringShape.new(name: 'PropagateTags')
239
+ ProtectedTask = Shapes::StructureShape.new(name: 'ProtectedTask')
240
+ ProtectedTasks = Shapes::ListShape.new(name: 'ProtectedTasks')
237
241
  ProxyConfiguration = Shapes::StructureShape.new(name: 'ProxyConfiguration')
238
242
  ProxyConfigurationProperties = Shapes::ListShape.new(name: 'ProxyConfigurationProperties')
239
243
  ProxyConfigurationType = Shapes::StringShape.new(name: 'ProxyConfigurationType')
@@ -355,6 +359,8 @@ module Aws::ECS
355
359
  UpdateServicePrimaryTaskSetResponse = Shapes::StructureShape.new(name: 'UpdateServicePrimaryTaskSetResponse')
356
360
  UpdateServiceRequest = Shapes::StructureShape.new(name: 'UpdateServiceRequest')
357
361
  UpdateServiceResponse = Shapes::StructureShape.new(name: 'UpdateServiceResponse')
362
+ UpdateTaskProtectionRequest = Shapes::StructureShape.new(name: 'UpdateTaskProtectionRequest')
363
+ UpdateTaskProtectionResponse = Shapes::StructureShape.new(name: 'UpdateTaskProtectionResponse')
358
364
  UpdateTaskSetRequest = Shapes::StructureShape.new(name: 'UpdateTaskSetRequest')
359
365
  UpdateTaskSetResponse = Shapes::StructureShape.new(name: 'UpdateTaskSetResponse')
360
366
  VersionInfo = Shapes::StructureShape.new(name: 'VersionInfo')
@@ -907,6 +913,14 @@ module Aws::ECS
907
913
  FirelensConfigurationOptionsMap.key = Shapes::ShapeRef.new(shape: String)
908
914
  FirelensConfigurationOptionsMap.value = Shapes::ShapeRef.new(shape: String)
909
915
 
916
+ GetTaskProtectionRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, required: true, location_name: "cluster"))
917
+ GetTaskProtectionRequest.add_member(:tasks, Shapes::ShapeRef.new(shape: StringList, location_name: "tasks"))
918
+ GetTaskProtectionRequest.struct_class = Types::GetTaskProtectionRequest
919
+
920
+ GetTaskProtectionResponse.add_member(:protected_tasks, Shapes::ShapeRef.new(shape: ProtectedTasks, location_name: "protectedTasks"))
921
+ GetTaskProtectionResponse.add_member(:failures, Shapes::ShapeRef.new(shape: Failures, location_name: "failures"))
922
+ GetTaskProtectionResponse.struct_class = Types::GetTaskProtectionResponse
923
+
910
924
  GpuIds.member = Shapes::ShapeRef.new(shape: String)
911
925
 
912
926
  HealthCheck.add_member(:command, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "command"))
@@ -1159,6 +1173,13 @@ module Aws::ECS
1159
1173
 
1160
1174
  PortMappingList.member = Shapes::ShapeRef.new(shape: PortMapping)
1161
1175
 
1176
+ ProtectedTask.add_member(:task_arn, Shapes::ShapeRef.new(shape: String, location_name: "taskArn"))
1177
+ ProtectedTask.add_member(:protection_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "protectionEnabled"))
1178
+ ProtectedTask.add_member(:expiration_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "expirationDate"))
1179
+ ProtectedTask.struct_class = Types::ProtectedTask
1180
+
1181
+ ProtectedTasks.member = Shapes::ShapeRef.new(shape: ProtectedTask)
1182
+
1162
1183
  ProxyConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: ProxyConfigurationType, location_name: "type"))
1163
1184
  ProxyConfiguration.add_member(:container_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "containerName"))
1164
1185
  ProxyConfiguration.add_member(:properties, Shapes::ShapeRef.new(shape: ProxyConfigurationProperties, location_name: "properties"))
@@ -1667,6 +1688,16 @@ module Aws::ECS
1667
1688
  UpdateServiceResponse.add_member(:service, Shapes::ShapeRef.new(shape: Service, location_name: "service"))
1668
1689
  UpdateServiceResponse.struct_class = Types::UpdateServiceResponse
1669
1690
 
1691
+ UpdateTaskProtectionRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, required: true, location_name: "cluster"))
1692
+ UpdateTaskProtectionRequest.add_member(:tasks, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "tasks"))
1693
+ UpdateTaskProtectionRequest.add_member(:protection_enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "protectionEnabled"))
1694
+ UpdateTaskProtectionRequest.add_member(:expires_in_minutes, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "expiresInMinutes"))
1695
+ UpdateTaskProtectionRequest.struct_class = Types::UpdateTaskProtectionRequest
1696
+
1697
+ UpdateTaskProtectionResponse.add_member(:protected_tasks, Shapes::ShapeRef.new(shape: ProtectedTasks, location_name: "protectedTasks"))
1698
+ UpdateTaskProtectionResponse.add_member(:failures, Shapes::ShapeRef.new(shape: Failures, location_name: "failures"))
1699
+ UpdateTaskProtectionResponse.struct_class = Types::UpdateTaskProtectionResponse
1700
+
1670
1701
  UpdateTaskSetRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, required: true, location_name: "cluster"))
1671
1702
  UpdateTaskSetRequest.add_member(:service, Shapes::ShapeRef.new(shape: String, required: true, location_name: "service"))
1672
1703
  UpdateTaskSetRequest.add_member(:task_set, Shapes::ShapeRef.new(shape: String, required: true, location_name: "taskSet"))
@@ -1984,6 +2015,21 @@ module Aws::ECS
1984
2015
  o.errors << Shapes::ShapeRef.new(shape: TargetNotConnectedException)
1985
2016
  end)
1986
2017
 
2018
+ api.add_operation(:get_task_protection, Seahorse::Model::Operation.new.tap do |o|
2019
+ o.name = "GetTaskProtection"
2020
+ o.http_method = "POST"
2021
+ o.http_request_uri = "/"
2022
+ o.input = Shapes::ShapeRef.new(shape: GetTaskProtectionRequest)
2023
+ o.output = Shapes::ShapeRef.new(shape: GetTaskProtectionResponse)
2024
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2025
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
2026
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundException)
2027
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2028
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2029
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
2030
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedFeatureException)
2031
+ end)
2032
+
1987
2033
  api.add_operation(:list_account_settings, Seahorse::Model::Operation.new.tap do |o|
1988
2034
  o.name = "ListAccountSettings"
1989
2035
  o.http_method = "POST"
@@ -2403,6 +2449,21 @@ module Aws::ECS
2403
2449
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2404
2450
  end)
2405
2451
 
2452
+ api.add_operation(:update_task_protection, Seahorse::Model::Operation.new.tap do |o|
2453
+ o.name = "UpdateTaskProtection"
2454
+ o.http_method = "POST"
2455
+ o.http_request_uri = "/"
2456
+ o.input = Shapes::ShapeRef.new(shape: UpdateTaskProtectionRequest)
2457
+ o.output = Shapes::ShapeRef.new(shape: UpdateTaskProtectionResponse)
2458
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2459
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
2460
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundException)
2461
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2462
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2463
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
2464
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedFeatureException)
2465
+ end)
2466
+
2406
2467
  api.add_operation(:update_task_set, Seahorse::Model::Operation.new.tap do |o|
2407
2468
  o.name = "UpdateTaskSet"
2408
2469
  o.http_method = "POST"
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::ECS
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::ECS
11
+ class EndpointProvider
12
+ def initialize(rule_set = nil)
13
+ @@rule_set ||= begin
14
+ endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
+ Aws::Endpoints::RuleSet.new(
16
+ version: endpoint_rules['version'],
17
+ service_id: endpoint_rules['serviceId'],
18
+ parameters: endpoint_rules['parameters'],
19
+ rules: endpoint_rules['rules']
20
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ end
28
+
29
+ # @api private
30
+ RULES = <<-JSON
31
+ eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
+ dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
+ cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
+ dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
+ ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
+ ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
+ ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
+ aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
+ OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
+ UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
+ dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
+ UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
+ dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
+ ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
+ IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
+ aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
+ bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
+ ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
+ Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
+ cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
+ InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
+ aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
+ cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
+ InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
+ UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
+ SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
+ eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
+ InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
+ ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
+ b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
+ RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
+ ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
+ ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
+ ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
+ dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
+ dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
+ Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
+ In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
+ YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
+ YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
+ cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
+ dCI6eyJ1cmwiOiJodHRwczovL2Vjcy1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9lY3MtZmlwcy57UmVn
89
+ aW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
90
+ Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJj
91
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRo
92
+ aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJl
93
+ cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
94
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBl
95
+ IjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
96
+ YW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3Yi
97
+ Olt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFj
98
+ ayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
99
+ W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZWNzLntSZWdpb259LntQ
100
+ YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
101
+ ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
102
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBi
103
+ dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2si
104
+ LCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50
105
+ Ijp7InVybCI6Imh0dHBzOi8vZWNzLntSZWdpb259LntQYXJ0aXRpb25SZXN1
106
+ bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
107
+ InR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
108
+
109
+ JSON
110
+ end
111
+ end