aws-sdk-ecs 1.212.0 → 1.213.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.
@@ -1021,6 +1021,243 @@ module Aws::ECS
1021
1021
  req.send_request(options)
1022
1022
  end
1023
1023
 
1024
+ # Creates an Express service that simplifies deploying containerized web
1025
+ # applications on Amazon ECS with managed Amazon Web Services
1026
+ # infrastructure. This operation provisions and configures Application
1027
+ # Load Balancers, target groups, security groups, and auto-scaling
1028
+ # policies automatically.
1029
+ #
1030
+ # Specify a primary container configuration with your application image
1031
+ # and basic settings. Amazon ECS creates the necessary Amazon Web
1032
+ # Services resources for traffic distribution, health monitoring,
1033
+ # network access control, and capacity management.
1034
+ #
1035
+ # Provide an execution role for task operations and an infrastructure
1036
+ # role for managing Amazon Web Services resources on your behalf.
1037
+ #
1038
+ # @option params [required, String] :execution_role_arn
1039
+ # The Amazon Resource Name (ARN) of the task execution role that grants
1040
+ # the Amazon ECS container agent permission to make Amazon Web Services
1041
+ # API calls on your behalf. This role is required for Amazon ECS to pull
1042
+ # container images from Amazon ECR, send container logs to Amazon
1043
+ # CloudWatch Logs, and retrieve sensitive data from Amazon Web Services
1044
+ # Systems Manager Parameter Store or Amazon Web Services Secrets
1045
+ # Manager.
1046
+ #
1047
+ # The execution role must include the `AmazonECSTaskExecutionRolePolicy`
1048
+ # managed policy or equivalent permissions. For Express services, this
1049
+ # role is used during task startup and runtime for container management
1050
+ # operations.
1051
+ #
1052
+ # @option params [required, String] :infrastructure_role_arn
1053
+ # The Amazon Resource Name (ARN) of the infrastructure role that grants
1054
+ # Amazon ECS permission to create and manage Amazon Web Services
1055
+ # resources on your behalf for the Express service. This role is used to
1056
+ # provision and manage Application Load Balancers, target groups,
1057
+ # security groups, auto-scaling policies, and other Amazon Web Services
1058
+ # infrastructure components.
1059
+ #
1060
+ # The infrastructure role must include permissions for Elastic Load
1061
+ # Balancing, Application Auto Scaling, Amazon EC2 (for security groups),
1062
+ # and other services required for managed infrastructure. This role is
1063
+ # only used during Express service creation, updates, and deletion
1064
+ # operations.
1065
+ #
1066
+ # @option params [String] :service_name
1067
+ # The name of the Express service. This name must be unique within the
1068
+ # specified cluster and can contain up to 255 letters (uppercase and
1069
+ # lowercase), numbers, underscores, and hyphens. The name is used to
1070
+ # identify the service in the Amazon ECS console and API operations.
1071
+ #
1072
+ # If you don't specify a service name, Amazon ECS generates a unique
1073
+ # name for the service. The service name becomes part of the service ARN
1074
+ # and cannot be changed after the service is created.
1075
+ #
1076
+ # @option params [String] :cluster
1077
+ # The short name or full Amazon Resource Name (ARN) of the cluster on
1078
+ # which to create the Express service. If you do not specify a cluster,
1079
+ # the `default` cluster is assumed.
1080
+ #
1081
+ # @option params [String] :health_check_path
1082
+ # The path on the container that the Application Load Balancer uses for
1083
+ # health checks. This should be a valid HTTP endpoint that returns a
1084
+ # successful response (HTTP 200) when the application is healthy.
1085
+ #
1086
+ # If not specified, the default health check path is `/ping`. The health
1087
+ # check path must start with a forward slash and can include query
1088
+ # parameters. Examples: `/health`, `/api/status`, `/ping?format=json`.
1089
+ #
1090
+ # @option params [required, Types::ExpressGatewayContainer] :primary_container
1091
+ # The primary container configuration for the Express service. This
1092
+ # defines the main application container that will receive traffic from
1093
+ # the Application Load Balancer.
1094
+ #
1095
+ # The primary container must specify at minimum a container image. You
1096
+ # can also configure the container port (defaults to 80), logging
1097
+ # configuration, environment variables, secrets, and startup commands.
1098
+ # The container image can be from Amazon ECR, Docker Hub, or any other
1099
+ # container registry accessible to your execution role.
1100
+ #
1101
+ # @option params [String] :task_role_arn
1102
+ # The Amazon Resource Name (ARN) of the IAM role that containers in this
1103
+ # task can assume. This role allows your application code to access
1104
+ # other Amazon Web Services services securely.
1105
+ #
1106
+ # The task role is different from the execution role. While the
1107
+ # execution role is used by the Amazon ECS agent to set up the task, the
1108
+ # task role is used by your application code running inside the
1109
+ # container to make Amazon Web Services API calls. If your application
1110
+ # doesn't need to access Amazon Web Services services, you can omit
1111
+ # this parameter.
1112
+ #
1113
+ # @option params [Types::ExpressGatewayServiceNetworkConfiguration] :network_configuration
1114
+ # The network configuration for the Express service tasks. This
1115
+ # specifies the VPC subnets and security groups for the tasks.
1116
+ #
1117
+ # For Express services, you can specify custom security groups and
1118
+ # subnets. If not provided, Amazon ECS will use the default VPC
1119
+ # configuration and create appropriate security groups automatically.
1120
+ # The network configuration determines how your service integrates with
1121
+ # your VPC and what network access it has.
1122
+ #
1123
+ # @option params [String] :cpu
1124
+ # The number of CPU units used by the task. This parameter determines
1125
+ # the CPU allocation for each task in the Express service. The default
1126
+ # value for an Express service is 256 (.25 vCPU).
1127
+ #
1128
+ # @option params [String] :memory
1129
+ # The amount of memory (in MiB) used by the task. This parameter
1130
+ # determines the memory allocation for each task in the Express service.
1131
+ # The default value for an express service is 512 MiB.
1132
+ #
1133
+ # @option params [Types::ExpressGatewayScalingTarget] :scaling_target
1134
+ # The auto-scaling configuration for the Express service. This defines
1135
+ # how the service automatically adjusts the number of running tasks
1136
+ # based on demand.
1137
+ #
1138
+ # You can specify the minimum and maximum number of tasks, the scaling
1139
+ # metric (CPU utilization, memory utilization, or request count per
1140
+ # target), and the target value for the metric. If not specified, the
1141
+ # default target value for an Express service is 60.
1142
+ #
1143
+ # @option params [Array<Types::Tag>] :tags
1144
+ # The metadata that you apply to the Express service to help categorize
1145
+ # and organize it. Each tag consists of a key and an optional value. You
1146
+ # can apply up to 50 tags to a service.
1147
+ #
1148
+ # @return [Types::CreateExpressGatewayServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1149
+ #
1150
+ # * {Types::CreateExpressGatewayServiceResponse#service #service} => Types::ECSExpressGatewayService
1151
+ #
1152
+ # @example Request syntax with placeholder values
1153
+ #
1154
+ # resp = client.create_express_gateway_service({
1155
+ # execution_role_arn: "String", # required
1156
+ # infrastructure_role_arn: "String", # required
1157
+ # service_name: "String",
1158
+ # cluster: "String",
1159
+ # health_check_path: "String",
1160
+ # primary_container: { # required
1161
+ # image: "String", # required
1162
+ # container_port: 1,
1163
+ # aws_logs_configuration: {
1164
+ # log_group: "String", # required
1165
+ # log_stream_prefix: "String", # required
1166
+ # },
1167
+ # repository_credentials: {
1168
+ # credentials_parameter: "String",
1169
+ # },
1170
+ # command: ["String"],
1171
+ # environment: [
1172
+ # {
1173
+ # name: "String",
1174
+ # value: "String",
1175
+ # },
1176
+ # ],
1177
+ # secrets: [
1178
+ # {
1179
+ # name: "String", # required
1180
+ # value_from: "String", # required
1181
+ # },
1182
+ # ],
1183
+ # },
1184
+ # task_role_arn: "String",
1185
+ # network_configuration: {
1186
+ # security_groups: ["String"],
1187
+ # subnets: ["String"],
1188
+ # },
1189
+ # cpu: "String",
1190
+ # memory: "String",
1191
+ # scaling_target: {
1192
+ # min_task_count: 1,
1193
+ # max_task_count: 1,
1194
+ # auto_scaling_metric: "AVERAGE_CPU", # accepts AVERAGE_CPU, AVERAGE_MEMORY, REQUEST_COUNT_PER_TARGET
1195
+ # auto_scaling_target_value: 1,
1196
+ # },
1197
+ # tags: [
1198
+ # {
1199
+ # key: "TagKey",
1200
+ # value: "TagValue",
1201
+ # },
1202
+ # ],
1203
+ # })
1204
+ #
1205
+ # @example Response structure
1206
+ #
1207
+ # resp.service.cluster #=> String
1208
+ # resp.service.service_name #=> String
1209
+ # resp.service.service_arn #=> String
1210
+ # resp.service.infrastructure_role_arn #=> String
1211
+ # resp.service.status.status_code #=> String, one of "ACTIVE", "DRAINING", "INACTIVE"
1212
+ # resp.service.status.status_reason #=> String
1213
+ # resp.service.current_deployment #=> String
1214
+ # resp.service.active_configurations #=> Array
1215
+ # resp.service.active_configurations[0].service_revision_arn #=> String
1216
+ # resp.service.active_configurations[0].execution_role_arn #=> String
1217
+ # resp.service.active_configurations[0].task_role_arn #=> String
1218
+ # resp.service.active_configurations[0].cpu #=> String
1219
+ # resp.service.active_configurations[0].memory #=> String
1220
+ # resp.service.active_configurations[0].network_configuration.security_groups #=> Array
1221
+ # resp.service.active_configurations[0].network_configuration.security_groups[0] #=> String
1222
+ # resp.service.active_configurations[0].network_configuration.subnets #=> Array
1223
+ # resp.service.active_configurations[0].network_configuration.subnets[0] #=> String
1224
+ # resp.service.active_configurations[0].health_check_path #=> String
1225
+ # resp.service.active_configurations[0].primary_container.image #=> String
1226
+ # resp.service.active_configurations[0].primary_container.container_port #=> Integer
1227
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_group #=> String
1228
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_stream_prefix #=> String
1229
+ # resp.service.active_configurations[0].primary_container.repository_credentials.credentials_parameter #=> String
1230
+ # resp.service.active_configurations[0].primary_container.command #=> Array
1231
+ # resp.service.active_configurations[0].primary_container.command[0] #=> String
1232
+ # resp.service.active_configurations[0].primary_container.environment #=> Array
1233
+ # resp.service.active_configurations[0].primary_container.environment[0].name #=> String
1234
+ # resp.service.active_configurations[0].primary_container.environment[0].value #=> String
1235
+ # resp.service.active_configurations[0].primary_container.secrets #=> Array
1236
+ # resp.service.active_configurations[0].primary_container.secrets[0].name #=> String
1237
+ # resp.service.active_configurations[0].primary_container.secrets[0].value_from #=> String
1238
+ # resp.service.active_configurations[0].scaling_target.min_task_count #=> Integer
1239
+ # resp.service.active_configurations[0].scaling_target.max_task_count #=> Integer
1240
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_metric #=> String, one of "AVERAGE_CPU", "AVERAGE_MEMORY", "REQUEST_COUNT_PER_TARGET"
1241
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_target_value #=> Integer
1242
+ # resp.service.active_configurations[0].ingress_paths #=> Array
1243
+ # resp.service.active_configurations[0].ingress_paths[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
1244
+ # resp.service.active_configurations[0].ingress_paths[0].endpoint #=> String
1245
+ # resp.service.active_configurations[0].created_at #=> Time
1246
+ # resp.service.tags #=> Array
1247
+ # resp.service.tags[0].key #=> String
1248
+ # resp.service.tags[0].value #=> String
1249
+ # resp.service.created_at #=> Time
1250
+ # resp.service.updated_at #=> Time
1251
+ #
1252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateExpressGatewayService AWS API Documentation
1253
+ #
1254
+ # @overload create_express_gateway_service(params = {})
1255
+ # @param [Hash] params ({})
1256
+ def create_express_gateway_service(params = {}, options = {})
1257
+ req = build_request(:create_express_gateway_service, params)
1258
+ req.send_request(options)
1259
+ end
1260
+
1024
1261
  # Runs and maintains your desired number of tasks from a specified task
1025
1262
  # definition. If the number of tasks running in a service drops below
1026
1263
  # the `desiredCount`, Amazon ECS runs another copy of the task in the
@@ -2118,6 +2355,12 @@ module Aws::ECS
2118
2355
  # resp.service.events[0].created_at #=> Time
2119
2356
  # resp.service.events[0].message #=> String
2120
2357
  # resp.service.created_at #=> Time
2358
+ # resp.service.current_service_deployment #=> String
2359
+ # resp.service.current_service_revisions #=> Array
2360
+ # resp.service.current_service_revisions[0].arn #=> String
2361
+ # resp.service.current_service_revisions[0].requested_task_count #=> Integer
2362
+ # resp.service.current_service_revisions[0].running_task_count #=> Integer
2363
+ # resp.service.current_service_revisions[0].pending_task_count #=> Integer
2121
2364
  # resp.service.placement_constraints #=> Array
2122
2365
  # resp.service.placement_constraints[0].type #=> String, one of "distinctInstance", "memberOf"
2123
2366
  # resp.service.placement_constraints[0].expression #=> String
@@ -2140,6 +2383,7 @@ module Aws::ECS
2140
2383
  # resp.service.propagate_tags #=> String, one of "TASK_DEFINITION", "SERVICE", "NONE"
2141
2384
  # resp.service.enable_execute_command #=> Boolean
2142
2385
  # resp.service.availability_zone_rebalancing #=> String, one of "ENABLED", "DISABLED"
2386
+ # resp.service.resource_management_type #=> String, one of "CUSTOMER", "ECS"
2143
2387
  #
2144
2388
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService AWS API Documentation
2145
2389
  #
@@ -2897,6 +3141,89 @@ module Aws::ECS
2897
3141
  req.send_request(options)
2898
3142
  end
2899
3143
 
3144
+ # Deletes an Express service and removes all associated Amazon Web
3145
+ # Services resources. This operation stops service tasks, removes the
3146
+ # Application Load Balancer, target groups, security groups,
3147
+ # auto-scaling policies, and other managed infrastructure components.
3148
+ #
3149
+ # The service enters a `DRAINING` state where existing tasks complete
3150
+ # current requests without starting new tasks. After all tasks stop, the
3151
+ # service and infrastructure are permanently removed.
3152
+ #
3153
+ # This operation cannot be reversed. Back up important data and verify
3154
+ # the service is no longer needed before deletion.
3155
+ #
3156
+ # @option params [required, String] :service_arn
3157
+ # The Amazon Resource Name (ARN) of the Express service to delete. The
3158
+ # ARN uniquely identifies the service within your Amazon Web Services
3159
+ # account and region.
3160
+ #
3161
+ # @return [Types::DeleteExpressGatewayServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3162
+ #
3163
+ # * {Types::DeleteExpressGatewayServiceResponse#service #service} => Types::ECSExpressGatewayService
3164
+ #
3165
+ # @example Request syntax with placeholder values
3166
+ #
3167
+ # resp = client.delete_express_gateway_service({
3168
+ # service_arn: "String", # required
3169
+ # })
3170
+ #
3171
+ # @example Response structure
3172
+ #
3173
+ # resp.service.cluster #=> String
3174
+ # resp.service.service_name #=> String
3175
+ # resp.service.service_arn #=> String
3176
+ # resp.service.infrastructure_role_arn #=> String
3177
+ # resp.service.status.status_code #=> String, one of "ACTIVE", "DRAINING", "INACTIVE"
3178
+ # resp.service.status.status_reason #=> String
3179
+ # resp.service.current_deployment #=> String
3180
+ # resp.service.active_configurations #=> Array
3181
+ # resp.service.active_configurations[0].service_revision_arn #=> String
3182
+ # resp.service.active_configurations[0].execution_role_arn #=> String
3183
+ # resp.service.active_configurations[0].task_role_arn #=> String
3184
+ # resp.service.active_configurations[0].cpu #=> String
3185
+ # resp.service.active_configurations[0].memory #=> String
3186
+ # resp.service.active_configurations[0].network_configuration.security_groups #=> Array
3187
+ # resp.service.active_configurations[0].network_configuration.security_groups[0] #=> String
3188
+ # resp.service.active_configurations[0].network_configuration.subnets #=> Array
3189
+ # resp.service.active_configurations[0].network_configuration.subnets[0] #=> String
3190
+ # resp.service.active_configurations[0].health_check_path #=> String
3191
+ # resp.service.active_configurations[0].primary_container.image #=> String
3192
+ # resp.service.active_configurations[0].primary_container.container_port #=> Integer
3193
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_group #=> String
3194
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_stream_prefix #=> String
3195
+ # resp.service.active_configurations[0].primary_container.repository_credentials.credentials_parameter #=> String
3196
+ # resp.service.active_configurations[0].primary_container.command #=> Array
3197
+ # resp.service.active_configurations[0].primary_container.command[0] #=> String
3198
+ # resp.service.active_configurations[0].primary_container.environment #=> Array
3199
+ # resp.service.active_configurations[0].primary_container.environment[0].name #=> String
3200
+ # resp.service.active_configurations[0].primary_container.environment[0].value #=> String
3201
+ # resp.service.active_configurations[0].primary_container.secrets #=> Array
3202
+ # resp.service.active_configurations[0].primary_container.secrets[0].name #=> String
3203
+ # resp.service.active_configurations[0].primary_container.secrets[0].value_from #=> String
3204
+ # resp.service.active_configurations[0].scaling_target.min_task_count #=> Integer
3205
+ # resp.service.active_configurations[0].scaling_target.max_task_count #=> Integer
3206
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_metric #=> String, one of "AVERAGE_CPU", "AVERAGE_MEMORY", "REQUEST_COUNT_PER_TARGET"
3207
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_target_value #=> Integer
3208
+ # resp.service.active_configurations[0].ingress_paths #=> Array
3209
+ # resp.service.active_configurations[0].ingress_paths[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
3210
+ # resp.service.active_configurations[0].ingress_paths[0].endpoint #=> String
3211
+ # resp.service.active_configurations[0].created_at #=> Time
3212
+ # resp.service.tags #=> Array
3213
+ # resp.service.tags[0].key #=> String
3214
+ # resp.service.tags[0].value #=> String
3215
+ # resp.service.created_at #=> Time
3216
+ # resp.service.updated_at #=> Time
3217
+ #
3218
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteExpressGatewayService AWS API Documentation
3219
+ #
3220
+ # @overload delete_express_gateway_service(params = {})
3221
+ # @param [Hash] params ({})
3222
+ def delete_express_gateway_service(params = {}, options = {})
3223
+ req = build_request(:delete_express_gateway_service, params)
3224
+ req.send_request(options)
3225
+ end
3226
+
2900
3227
  # Deletes a specified service within a cluster. You can delete a service
2901
3228
  # if you have no running tasks in it and the desired task count is zero.
2902
3229
  # If the service is actively maintaining tasks, you can't delete it,
@@ -3144,6 +3471,12 @@ module Aws::ECS
3144
3471
  # resp.service.events[0].created_at #=> Time
3145
3472
  # resp.service.events[0].message #=> String
3146
3473
  # resp.service.created_at #=> Time
3474
+ # resp.service.current_service_deployment #=> String
3475
+ # resp.service.current_service_revisions #=> Array
3476
+ # resp.service.current_service_revisions[0].arn #=> String
3477
+ # resp.service.current_service_revisions[0].requested_task_count #=> Integer
3478
+ # resp.service.current_service_revisions[0].running_task_count #=> Integer
3479
+ # resp.service.current_service_revisions[0].pending_task_count #=> Integer
3147
3480
  # resp.service.placement_constraints #=> Array
3148
3481
  # resp.service.placement_constraints[0].type #=> String, one of "distinctInstance", "memberOf"
3149
3482
  # resp.service.placement_constraints[0].expression #=> String
@@ -3166,6 +3499,7 @@ module Aws::ECS
3166
3499
  # resp.service.propagate_tags #=> String, one of "TASK_DEFINITION", "SERVICE", "NONE"
3167
3500
  # resp.service.enable_execute_command #=> Boolean
3168
3501
  # resp.service.availability_zone_rebalancing #=> String, one of "ENABLED", "DISABLED"
3502
+ # resp.service.resource_management_type #=> String, one of "CUSTOMER", "ECS"
3169
3503
  #
3170
3504
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService AWS API Documentation
3171
3505
  #
@@ -4559,6 +4893,94 @@ module Aws::ECS
4559
4893
  req.send_request(options)
4560
4894
  end
4561
4895
 
4896
+ # Retrieves detailed information about an Express service, including
4897
+ # current status, configuration, managed infrastructure, and service
4898
+ # revisions.
4899
+ #
4900
+ # Returns comprehensive service details, active service revisions,
4901
+ # ingress paths with endpoints, and managed Amazon Web Services resource
4902
+ # status including load balancers and auto-scaling policies.
4903
+ #
4904
+ # Use the `include` parameter to retrieve additional information such as
4905
+ # resource tags.
4906
+ #
4907
+ # @option params [required, String] :service_arn
4908
+ # The Amazon Resource Name (ARN) of the Express service to describe. The
4909
+ # ARN uniquely identifies the service within your Amazon Web Services
4910
+ # account and region.
4911
+ #
4912
+ # @option params [Array<String>] :include
4913
+ # Specifies additional information to include in the response. Valid
4914
+ # values are `TAGS` to include resource tags associated with the Express
4915
+ # service.
4916
+ #
4917
+ # @return [Types::DescribeExpressGatewayServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4918
+ #
4919
+ # * {Types::DescribeExpressGatewayServiceResponse#service #service} => Types::ECSExpressGatewayService
4920
+ #
4921
+ # @example Request syntax with placeholder values
4922
+ #
4923
+ # resp = client.describe_express_gateway_service({
4924
+ # service_arn: "String", # required
4925
+ # include: ["TAGS"], # accepts TAGS
4926
+ # })
4927
+ #
4928
+ # @example Response structure
4929
+ #
4930
+ # resp.service.cluster #=> String
4931
+ # resp.service.service_name #=> String
4932
+ # resp.service.service_arn #=> String
4933
+ # resp.service.infrastructure_role_arn #=> String
4934
+ # resp.service.status.status_code #=> String, one of "ACTIVE", "DRAINING", "INACTIVE"
4935
+ # resp.service.status.status_reason #=> String
4936
+ # resp.service.current_deployment #=> String
4937
+ # resp.service.active_configurations #=> Array
4938
+ # resp.service.active_configurations[0].service_revision_arn #=> String
4939
+ # resp.service.active_configurations[0].execution_role_arn #=> String
4940
+ # resp.service.active_configurations[0].task_role_arn #=> String
4941
+ # resp.service.active_configurations[0].cpu #=> String
4942
+ # resp.service.active_configurations[0].memory #=> String
4943
+ # resp.service.active_configurations[0].network_configuration.security_groups #=> Array
4944
+ # resp.service.active_configurations[0].network_configuration.security_groups[0] #=> String
4945
+ # resp.service.active_configurations[0].network_configuration.subnets #=> Array
4946
+ # resp.service.active_configurations[0].network_configuration.subnets[0] #=> String
4947
+ # resp.service.active_configurations[0].health_check_path #=> String
4948
+ # resp.service.active_configurations[0].primary_container.image #=> String
4949
+ # resp.service.active_configurations[0].primary_container.container_port #=> Integer
4950
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_group #=> String
4951
+ # resp.service.active_configurations[0].primary_container.aws_logs_configuration.log_stream_prefix #=> String
4952
+ # resp.service.active_configurations[0].primary_container.repository_credentials.credentials_parameter #=> String
4953
+ # resp.service.active_configurations[0].primary_container.command #=> Array
4954
+ # resp.service.active_configurations[0].primary_container.command[0] #=> String
4955
+ # resp.service.active_configurations[0].primary_container.environment #=> Array
4956
+ # resp.service.active_configurations[0].primary_container.environment[0].name #=> String
4957
+ # resp.service.active_configurations[0].primary_container.environment[0].value #=> String
4958
+ # resp.service.active_configurations[0].primary_container.secrets #=> Array
4959
+ # resp.service.active_configurations[0].primary_container.secrets[0].name #=> String
4960
+ # resp.service.active_configurations[0].primary_container.secrets[0].value_from #=> String
4961
+ # resp.service.active_configurations[0].scaling_target.min_task_count #=> Integer
4962
+ # resp.service.active_configurations[0].scaling_target.max_task_count #=> Integer
4963
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_metric #=> String, one of "AVERAGE_CPU", "AVERAGE_MEMORY", "REQUEST_COUNT_PER_TARGET"
4964
+ # resp.service.active_configurations[0].scaling_target.auto_scaling_target_value #=> Integer
4965
+ # resp.service.active_configurations[0].ingress_paths #=> Array
4966
+ # resp.service.active_configurations[0].ingress_paths[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
4967
+ # resp.service.active_configurations[0].ingress_paths[0].endpoint #=> String
4968
+ # resp.service.active_configurations[0].created_at #=> Time
4969
+ # resp.service.tags #=> Array
4970
+ # resp.service.tags[0].key #=> String
4971
+ # resp.service.tags[0].value #=> String
4972
+ # resp.service.created_at #=> Time
4973
+ # resp.service.updated_at #=> Time
4974
+ #
4975
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeExpressGatewayService AWS API Documentation
4976
+ #
4977
+ # @overload describe_express_gateway_service(params = {})
4978
+ # @param [Hash] params ({})
4979
+ def describe_express_gateway_service(params = {}, options = {})
4980
+ req = build_request(:describe_express_gateway_service, params)
4981
+ req.send_request(options)
4982
+ end
4983
+
4562
4984
  # Describes one or more of your service deployments.
4563
4985
  #
4564
4986
  # A service deployment happens when you release a software update for
@@ -4862,6 +5284,74 @@ module Aws::ECS
4862
5284
  # resp.service_revisions[0].resolved_configuration.load_balancers #=> Array
4863
5285
  # resp.service_revisions[0].resolved_configuration.load_balancers[0].target_group_arn #=> String
4864
5286
  # resp.service_revisions[0].resolved_configuration.load_balancers[0].production_listener_rule #=> String
5287
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths #=> Array
5288
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
5289
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].endpoint #=> String
5290
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.arn #=> String
5291
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5292
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.status_reason #=> String
5293
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.updated_at #=> Time
5294
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.scheme #=> String
5295
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.subnet_ids #=> Array
5296
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.subnet_ids[0] #=> String
5297
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.security_group_ids #=> Array
5298
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer.security_group_ids[0] #=> String
5299
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer_security_groups #=> Array
5300
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer_security_groups[0].arn #=> String
5301
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer_security_groups[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5302
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer_security_groups[0].status_reason #=> String
5303
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].load_balancer_security_groups[0].updated_at #=> Time
5304
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].certificate.arn #=> String
5305
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].certificate.status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5306
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].certificate.status_reason #=> String
5307
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].certificate.updated_at #=> Time
5308
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].certificate.domain_name #=> String
5309
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].listener.arn #=> String
5310
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].listener.status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5311
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].listener.status_reason #=> String
5312
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].listener.updated_at #=> Time
5313
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].rule.arn #=> String
5314
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].rule.status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5315
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].rule.status_reason #=> String
5316
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].rule.updated_at #=> Time
5317
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups #=> Array
5318
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].arn #=> String
5319
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5320
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].status_reason #=> String
5321
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].updated_at #=> Time
5322
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].health_check_path #=> String
5323
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].health_check_port #=> Integer
5324
+ # resp.service_revisions[0].ecs_managed_resources.ingress_paths[0].target_groups[0].port #=> Integer
5325
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.arn #=> String
5326
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5327
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.status_reason #=> String
5328
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.updated_at #=> Time
5329
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.min_capacity #=> Integer
5330
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.scalable_target.max_capacity #=> Integer
5331
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies #=> Array
5332
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].arn #=> String
5333
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5334
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].status_reason #=> String
5335
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].updated_at #=> Time
5336
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].policy_type #=> String
5337
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].target_value #=> Float
5338
+ # resp.service_revisions[0].ecs_managed_resources.auto_scaling.application_auto_scaling_policies[0].metric #=> String
5339
+ # resp.service_revisions[0].ecs_managed_resources.metric_alarms #=> Array
5340
+ # resp.service_revisions[0].ecs_managed_resources.metric_alarms[0].arn #=> String
5341
+ # resp.service_revisions[0].ecs_managed_resources.metric_alarms[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5342
+ # resp.service_revisions[0].ecs_managed_resources.metric_alarms[0].status_reason #=> String
5343
+ # resp.service_revisions[0].ecs_managed_resources.metric_alarms[0].updated_at #=> Time
5344
+ # resp.service_revisions[0].ecs_managed_resources.service_security_groups #=> Array
5345
+ # resp.service_revisions[0].ecs_managed_resources.service_security_groups[0].arn #=> String
5346
+ # resp.service_revisions[0].ecs_managed_resources.service_security_groups[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5347
+ # resp.service_revisions[0].ecs_managed_resources.service_security_groups[0].status_reason #=> String
5348
+ # resp.service_revisions[0].ecs_managed_resources.service_security_groups[0].updated_at #=> Time
5349
+ # resp.service_revisions[0].ecs_managed_resources.log_groups #=> Array
5350
+ # resp.service_revisions[0].ecs_managed_resources.log_groups[0].arn #=> String
5351
+ # resp.service_revisions[0].ecs_managed_resources.log_groups[0].status #=> String, one of "PROVISIONING", "ACTIVE", "DEPROVISIONING", "DELETED", "FAILED"
5352
+ # resp.service_revisions[0].ecs_managed_resources.log_groups[0].status_reason #=> String
5353
+ # resp.service_revisions[0].ecs_managed_resources.log_groups[0].updated_at #=> Time
5354
+ # resp.service_revisions[0].ecs_managed_resources.log_groups[0].log_group_name #=> String
4865
5355
  # resp.failures #=> Array
4866
5356
  # resp.failures[0].arn #=> String
4867
5357
  # resp.failures[0].reason #=> String
@@ -5141,6 +5631,12 @@ module Aws::ECS
5141
5631
  # resp.services[0].events[0].created_at #=> Time
5142
5632
  # resp.services[0].events[0].message #=> String
5143
5633
  # resp.services[0].created_at #=> Time
5634
+ # resp.services[0].current_service_deployment #=> String
5635
+ # resp.services[0].current_service_revisions #=> Array
5636
+ # resp.services[0].current_service_revisions[0].arn #=> String
5637
+ # resp.services[0].current_service_revisions[0].requested_task_count #=> Integer
5638
+ # resp.services[0].current_service_revisions[0].running_task_count #=> Integer
5639
+ # resp.services[0].current_service_revisions[0].pending_task_count #=> Integer
5144
5640
  # resp.services[0].placement_constraints #=> Array
5145
5641
  # resp.services[0].placement_constraints[0].type #=> String, one of "distinctInstance", "memberOf"
5146
5642
  # resp.services[0].placement_constraints[0].expression #=> String
@@ -5163,6 +5659,7 @@ module Aws::ECS
5163
5659
  # resp.services[0].propagate_tags #=> String, one of "TASK_DEFINITION", "SERVICE", "NONE"
5164
5660
  # resp.services[0].enable_execute_command #=> Boolean
5165
5661
  # resp.services[0].availability_zone_rebalancing #=> String, one of "ENABLED", "DISABLED"
5662
+ # resp.services[0].resource_management_type #=> String, one of "CUSTOMER", "ECS"
5166
5663
  # resp.failures #=> Array
5167
5664
  # resp.failures[0].arn #=> String
5168
5665
  # resp.failures[0].reason #=> String
@@ -6638,6 +7135,10 @@ module Aws::ECS
6638
7135
  # The scheduling strategy to use when filtering the `ListServices`
6639
7136
  # results.
6640
7137
  #
7138
+ # @option params [String] :resource_management_type
7139
+ # The resourceManagementType type to use when filtering the
7140
+ # `ListServices` results.
7141
+ #
6641
7142
  # @return [Types::ListServicesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6642
7143
  #
6643
7144
  # * {Types::ListServicesResponse#service_arns #service_arns} => Array&lt;String&gt;
@@ -6668,6 +7169,7 @@ module Aws::ECS
6668
7169
  # max_results: 1,
6669
7170
  # launch_type: "EC2", # accepts EC2, FARGATE, EXTERNAL, MANAGED_INSTANCES
6670
7171
  # scheduling_strategy: "REPLICA", # accepts REPLICA, DAEMON
7172
+ # resource_management_type: "CUSTOMER", # accepts CUSTOMER, ECS
6671
7173
  # })
6672
7174
  #
6673
7175
  # @example Response structure
@@ -11989,6 +12491,147 @@ module Aws::ECS
11989
12491
  req.send_request(options)
11990
12492
  end
11991
12493
 
12494
+ # Updates an existing Express service configuration. Modifies container
12495
+ # settings, resource allocation, auto-scaling configuration, and other
12496
+ # service parameters without recreating the service.
12497
+ #
12498
+ # Amazon ECS creates a new service revision with updated configuration
12499
+ # and performs a rolling deployment to replace existing tasks. The
12500
+ # service remains available during updates, ensuring zero-downtime
12501
+ # deployments.
12502
+ #
12503
+ # Some parameters like the infrastructure role cannot be modified after
12504
+ # service creation and require creating a new service.
12505
+ #
12506
+ # @option params [required, String] :service_arn
12507
+ # The Amazon Resource Name (ARN) of the Express service to update.
12508
+ #
12509
+ # @option params [String] :execution_role_arn
12510
+ # The Amazon Resource Name (ARN) of the task execution role for the
12511
+ # Express service.
12512
+ #
12513
+ # @option params [String] :health_check_path
12514
+ # The path on the container for Application Load Balancer health checks.
12515
+ #
12516
+ # @option params [Types::ExpressGatewayContainer] :primary_container
12517
+ # The primary container configuration for the Express service.
12518
+ #
12519
+ # @option params [String] :task_role_arn
12520
+ # The Amazon Resource Name (ARN) of the IAM role for containers in this
12521
+ # task.
12522
+ #
12523
+ # @option params [Types::ExpressGatewayServiceNetworkConfiguration] :network_configuration
12524
+ # The network configuration for the Express service tasks. By default,
12525
+ # the network configuration for an Express service uses the default VPC.
12526
+ #
12527
+ # @option params [String] :cpu
12528
+ # The number of CPU units used by the task.
12529
+ #
12530
+ # @option params [String] :memory
12531
+ # The amount of memory (in MiB) used by the task.
12532
+ #
12533
+ # @option params [Types::ExpressGatewayScalingTarget] :scaling_target
12534
+ # The auto-scaling configuration for the Express service.
12535
+ #
12536
+ # @return [Types::UpdateExpressGatewayServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
12537
+ #
12538
+ # * {Types::UpdateExpressGatewayServiceResponse#service #service} => Types::UpdatedExpressGatewayService
12539
+ #
12540
+ # @example Request syntax with placeholder values
12541
+ #
12542
+ # resp = client.update_express_gateway_service({
12543
+ # service_arn: "String", # required
12544
+ # execution_role_arn: "String",
12545
+ # health_check_path: "String",
12546
+ # primary_container: {
12547
+ # image: "String", # required
12548
+ # container_port: 1,
12549
+ # aws_logs_configuration: {
12550
+ # log_group: "String", # required
12551
+ # log_stream_prefix: "String", # required
12552
+ # },
12553
+ # repository_credentials: {
12554
+ # credentials_parameter: "String",
12555
+ # },
12556
+ # command: ["String"],
12557
+ # environment: [
12558
+ # {
12559
+ # name: "String",
12560
+ # value: "String",
12561
+ # },
12562
+ # ],
12563
+ # secrets: [
12564
+ # {
12565
+ # name: "String", # required
12566
+ # value_from: "String", # required
12567
+ # },
12568
+ # ],
12569
+ # },
12570
+ # task_role_arn: "String",
12571
+ # network_configuration: {
12572
+ # security_groups: ["String"],
12573
+ # subnets: ["String"],
12574
+ # },
12575
+ # cpu: "String",
12576
+ # memory: "String",
12577
+ # scaling_target: {
12578
+ # min_task_count: 1,
12579
+ # max_task_count: 1,
12580
+ # auto_scaling_metric: "AVERAGE_CPU", # accepts AVERAGE_CPU, AVERAGE_MEMORY, REQUEST_COUNT_PER_TARGET
12581
+ # auto_scaling_target_value: 1,
12582
+ # },
12583
+ # })
12584
+ #
12585
+ # @example Response structure
12586
+ #
12587
+ # resp.service.service_arn #=> String
12588
+ # resp.service.cluster #=> String
12589
+ # resp.service.service_name #=> String
12590
+ # resp.service.status.status_code #=> String, one of "ACTIVE", "DRAINING", "INACTIVE"
12591
+ # resp.service.status.status_reason #=> String
12592
+ # resp.service.target_configuration.service_revision_arn #=> String
12593
+ # resp.service.target_configuration.execution_role_arn #=> String
12594
+ # resp.service.target_configuration.task_role_arn #=> String
12595
+ # resp.service.target_configuration.cpu #=> String
12596
+ # resp.service.target_configuration.memory #=> String
12597
+ # resp.service.target_configuration.network_configuration.security_groups #=> Array
12598
+ # resp.service.target_configuration.network_configuration.security_groups[0] #=> String
12599
+ # resp.service.target_configuration.network_configuration.subnets #=> Array
12600
+ # resp.service.target_configuration.network_configuration.subnets[0] #=> String
12601
+ # resp.service.target_configuration.health_check_path #=> String
12602
+ # resp.service.target_configuration.primary_container.image #=> String
12603
+ # resp.service.target_configuration.primary_container.container_port #=> Integer
12604
+ # resp.service.target_configuration.primary_container.aws_logs_configuration.log_group #=> String
12605
+ # resp.service.target_configuration.primary_container.aws_logs_configuration.log_stream_prefix #=> String
12606
+ # resp.service.target_configuration.primary_container.repository_credentials.credentials_parameter #=> String
12607
+ # resp.service.target_configuration.primary_container.command #=> Array
12608
+ # resp.service.target_configuration.primary_container.command[0] #=> String
12609
+ # resp.service.target_configuration.primary_container.environment #=> Array
12610
+ # resp.service.target_configuration.primary_container.environment[0].name #=> String
12611
+ # resp.service.target_configuration.primary_container.environment[0].value #=> String
12612
+ # resp.service.target_configuration.primary_container.secrets #=> Array
12613
+ # resp.service.target_configuration.primary_container.secrets[0].name #=> String
12614
+ # resp.service.target_configuration.primary_container.secrets[0].value_from #=> String
12615
+ # resp.service.target_configuration.scaling_target.min_task_count #=> Integer
12616
+ # resp.service.target_configuration.scaling_target.max_task_count #=> Integer
12617
+ # resp.service.target_configuration.scaling_target.auto_scaling_metric #=> String, one of "AVERAGE_CPU", "AVERAGE_MEMORY", "REQUEST_COUNT_PER_TARGET"
12618
+ # resp.service.target_configuration.scaling_target.auto_scaling_target_value #=> Integer
12619
+ # resp.service.target_configuration.ingress_paths #=> Array
12620
+ # resp.service.target_configuration.ingress_paths[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
12621
+ # resp.service.target_configuration.ingress_paths[0].endpoint #=> String
12622
+ # resp.service.target_configuration.created_at #=> Time
12623
+ # resp.service.created_at #=> Time
12624
+ # resp.service.updated_at #=> Time
12625
+ #
12626
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateExpressGatewayService AWS API Documentation
12627
+ #
12628
+ # @overload update_express_gateway_service(params = {})
12629
+ # @param [Hash] params ({})
12630
+ def update_express_gateway_service(params = {}, options = {})
12631
+ req = build_request(:update_express_gateway_service, params)
12632
+ req.send_request(options)
12633
+ end
12634
+
11992
12635
  # Modifies the parameters of a service.
11993
12636
  #
11994
12637
  # <note markdown="1"> On March 21, 2024, a change was made to resolve the task definition
@@ -12846,6 +13489,12 @@ module Aws::ECS
12846
13489
  # resp.service.events[0].created_at #=> Time
12847
13490
  # resp.service.events[0].message #=> String
12848
13491
  # resp.service.created_at #=> Time
13492
+ # resp.service.current_service_deployment #=> String
13493
+ # resp.service.current_service_revisions #=> Array
13494
+ # resp.service.current_service_revisions[0].arn #=> String
13495
+ # resp.service.current_service_revisions[0].requested_task_count #=> Integer
13496
+ # resp.service.current_service_revisions[0].running_task_count #=> Integer
13497
+ # resp.service.current_service_revisions[0].pending_task_count #=> Integer
12849
13498
  # resp.service.placement_constraints #=> Array
12850
13499
  # resp.service.placement_constraints[0].type #=> String, one of "distinctInstance", "memberOf"
12851
13500
  # resp.service.placement_constraints[0].expression #=> String
@@ -12868,6 +13517,7 @@ module Aws::ECS
12868
13517
  # resp.service.propagate_tags #=> String, one of "TASK_DEFINITION", "SERVICE", "NONE"
12869
13518
  # resp.service.enable_execute_command #=> Boolean
12870
13519
  # resp.service.availability_zone_rebalancing #=> String, one of "ENABLED", "DISABLED"
13520
+ # resp.service.resource_management_type #=> String, one of "CUSTOMER", "ECS"
12871
13521
  #
12872
13522
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService AWS API Documentation
12873
13523
  #
@@ -13362,7 +14012,7 @@ module Aws::ECS
13362
14012
  tracer: tracer
13363
14013
  )
13364
14014
  context[:gem_name] = 'aws-sdk-ecs'
13365
- context[:gem_version] = '1.212.0'
14015
+ context[:gem_version] = '1.213.0'
13366
14016
  Seahorse::Client::Request.new(handlers, context)
13367
14017
  end
13368
14018