aws-sdk-ecs 1.3.0 → 1.4.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.
@@ -12,9 +12,15 @@ module Aws::ECS
12
12
  include Seahorse::Model
13
13
 
14
14
  AgentUpdateStatus = Shapes::StringShape.new(name: 'AgentUpdateStatus')
15
+ Attachment = Shapes::StructureShape.new(name: 'Attachment')
16
+ AttachmentDetails = Shapes::ListShape.new(name: 'AttachmentDetails')
17
+ AttachmentStateChange = Shapes::StructureShape.new(name: 'AttachmentStateChange')
18
+ AttachmentStateChanges = Shapes::ListShape.new(name: 'AttachmentStateChanges')
19
+ Attachments = Shapes::ListShape.new(name: 'Attachments')
15
20
  Attribute = Shapes::StructureShape.new(name: 'Attribute')
16
21
  AttributeLimitExceededException = Shapes::StructureShape.new(name: 'AttributeLimitExceededException')
17
22
  Attributes = Shapes::ListShape.new(name: 'Attributes')
23
+ AwsVpcConfiguration = Shapes::StructureShape.new(name: 'AwsVpcConfiguration')
18
24
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
19
25
  BoxedBoolean = Shapes::BooleanShape.new(name: 'BoxedBoolean')
20
26
  BoxedInteger = Shapes::IntegerShape.new(name: 'BoxedInteger')
@@ -32,6 +38,8 @@ module Aws::ECS
32
38
  ContainerInstances = Shapes::ListShape.new(name: 'ContainerInstances')
33
39
  ContainerOverride = Shapes::StructureShape.new(name: 'ContainerOverride')
34
40
  ContainerOverrides = Shapes::ListShape.new(name: 'ContainerOverrides')
41
+ ContainerStateChange = Shapes::StructureShape.new(name: 'ContainerStateChange')
42
+ ContainerStateChanges = Shapes::ListShape.new(name: 'ContainerStateChanges')
35
43
  Containers = Shapes::ListShape.new(name: 'Containers')
36
44
  CreateClusterRequest = Shapes::StructureShape.new(name: 'CreateClusterRequest')
37
45
  CreateClusterResponse = Shapes::StructureShape.new(name: 'CreateClusterResponse')
@@ -105,6 +113,9 @@ module Aws::ECS
105
113
  MountPointList = Shapes::ListShape.new(name: 'MountPointList')
106
114
  NetworkBinding = Shapes::StructureShape.new(name: 'NetworkBinding')
107
115
  NetworkBindings = Shapes::ListShape.new(name: 'NetworkBindings')
116
+ NetworkConfiguration = Shapes::StructureShape.new(name: 'NetworkConfiguration')
117
+ NetworkInterface = Shapes::StructureShape.new(name: 'NetworkInterface')
118
+ NetworkInterfaces = Shapes::ListShape.new(name: 'NetworkInterfaces')
108
119
  NetworkMode = Shapes::StringShape.new(name: 'NetworkMode')
109
120
  NoUpdateAvailableException = Shapes::StructureShape.new(name: 'NoUpdateAvailableException')
110
121
  PlacementConstraint = Shapes::StructureShape.new(name: 'PlacementConstraint')
@@ -173,6 +184,22 @@ module Aws::ECS
173
184
  VolumeFromList = Shapes::ListShape.new(name: 'VolumeFromList')
174
185
  VolumeList = Shapes::ListShape.new(name: 'VolumeList')
175
186
 
187
+ Attachment.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
188
+ Attachment.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
189
+ Attachment.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
190
+ Attachment.add_member(:details, Shapes::ShapeRef.new(shape: AttachmentDetails, location_name: "details"))
191
+ Attachment.struct_class = Types::Attachment
192
+
193
+ AttachmentDetails.member = Shapes::ShapeRef.new(shape: KeyValuePair)
194
+
195
+ AttachmentStateChange.add_member(:attachment_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "attachmentArn"))
196
+ AttachmentStateChange.add_member(:status, Shapes::ShapeRef.new(shape: String, required: true, location_name: "status"))
197
+ AttachmentStateChange.struct_class = Types::AttachmentStateChange
198
+
199
+ AttachmentStateChanges.member = Shapes::ShapeRef.new(shape: AttachmentStateChange)
200
+
201
+ Attachments.member = Shapes::ShapeRef.new(shape: Attachment)
202
+
176
203
  Attribute.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
177
204
  Attribute.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
178
205
  Attribute.add_member(:target_type, Shapes::ShapeRef.new(shape: TargetType, location_name: "targetType"))
@@ -181,6 +208,10 @@ module Aws::ECS
181
208
 
182
209
  Attributes.member = Shapes::ShapeRef.new(shape: Attribute)
183
210
 
211
+ AwsVpcConfiguration.add_member(:subnets, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "subnets"))
212
+ AwsVpcConfiguration.add_member(:security_groups, Shapes::ShapeRef.new(shape: StringList, location_name: "securityGroups"))
213
+ AwsVpcConfiguration.struct_class = Types::AwsVpcConfiguration
214
+
184
215
  Cluster.add_member(:cluster_arn, Shapes::ShapeRef.new(shape: String, location_name: "clusterArn"))
185
216
  Cluster.add_member(:cluster_name, Shapes::ShapeRef.new(shape: String, location_name: "clusterName"))
186
217
  Cluster.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
@@ -199,6 +230,7 @@ module Aws::ECS
199
230
  Container.add_member(:exit_code, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "exitCode"))
200
231
  Container.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
201
232
  Container.add_member(:network_bindings, Shapes::ShapeRef.new(shape: NetworkBindings, location_name: "networkBindings"))
233
+ Container.add_member(:network_interfaces, Shapes::ShapeRef.new(shape: NetworkInterfaces, location_name: "networkInterfaces"))
202
234
  Container.struct_class = Types::Container
203
235
 
204
236
  ContainerDefinition.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
@@ -245,6 +277,7 @@ module Aws::ECS
245
277
  ContainerInstance.add_member(:agent_update_status, Shapes::ShapeRef.new(shape: AgentUpdateStatus, location_name: "agentUpdateStatus"))
246
278
  ContainerInstance.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "attributes"))
247
279
  ContainerInstance.add_member(:registered_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "registeredAt"))
280
+ ContainerInstance.add_member(:attachments, Shapes::ShapeRef.new(shape: Attachments, location_name: "attachments"))
248
281
  ContainerInstance.struct_class = Types::ContainerInstance
249
282
 
250
283
  ContainerInstances.member = Shapes::ShapeRef.new(shape: ContainerInstance)
@@ -259,6 +292,15 @@ module Aws::ECS
259
292
 
260
293
  ContainerOverrides.member = Shapes::ShapeRef.new(shape: ContainerOverride)
261
294
 
295
+ ContainerStateChange.add_member(:container_name, Shapes::ShapeRef.new(shape: String, location_name: "containerName"))
296
+ ContainerStateChange.add_member(:exit_code, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "exitCode"))
297
+ ContainerStateChange.add_member(:network_bindings, Shapes::ShapeRef.new(shape: NetworkBindings, location_name: "networkBindings"))
298
+ ContainerStateChange.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
299
+ ContainerStateChange.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
300
+ ContainerStateChange.struct_class = Types::ContainerStateChange
301
+
302
+ ContainerStateChanges.member = Shapes::ShapeRef.new(shape: ContainerStateChange)
303
+
262
304
  Containers.member = Shapes::ShapeRef.new(shape: Container)
263
305
 
264
306
  CreateClusterRequest.add_member(:cluster_name, Shapes::ShapeRef.new(shape: String, location_name: "clusterName"))
@@ -277,6 +319,7 @@ module Aws::ECS
277
319
  CreateServiceRequest.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
278
320
  CreateServiceRequest.add_member(:placement_constraints, Shapes::ShapeRef.new(shape: PlacementConstraints, location_name: "placementConstraints"))
279
321
  CreateServiceRequest.add_member(:placement_strategy, Shapes::ShapeRef.new(shape: PlacementStrategies, location_name: "placementStrategy"))
322
+ CreateServiceRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
280
323
  CreateServiceRequest.struct_class = Types::CreateServiceRequest
281
324
 
282
325
  CreateServiceResponse.add_member(:service, Shapes::ShapeRef.new(shape: Service, location_name: "service"))
@@ -310,6 +353,7 @@ module Aws::ECS
310
353
  Deployment.add_member(:running_count, Shapes::ShapeRef.new(shape: Integer, location_name: "runningCount"))
311
354
  Deployment.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "createdAt"))
312
355
  Deployment.add_member(:updated_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "updatedAt"))
356
+ Deployment.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
313
357
  Deployment.struct_class = Types::Deployment
314
358
 
315
359
  DeploymentConfiguration.add_member(:maximum_percent, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "maximumPercent"))
@@ -524,6 +568,16 @@ module Aws::ECS
524
568
 
525
569
  NetworkBindings.member = Shapes::ShapeRef.new(shape: NetworkBinding)
526
570
 
571
+ NetworkConfiguration.add_member(:awsvpc_configuration, Shapes::ShapeRef.new(shape: AwsVpcConfiguration, location_name: "awsvpcConfiguration"))
572
+ NetworkConfiguration.struct_class = Types::NetworkConfiguration
573
+
574
+ NetworkInterface.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
575
+ NetworkInterface.add_member(:private_ipv_4_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpv4Address"))
576
+ NetworkInterface.add_member(:ipv6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
577
+ NetworkInterface.struct_class = Types::NetworkInterface
578
+
579
+ NetworkInterfaces.member = Shapes::ShapeRef.new(shape: NetworkInterface)
580
+
527
581
  PlacementConstraint.add_member(:type, Shapes::ShapeRef.new(shape: PlacementConstraintType, location_name: "type"))
528
582
  PlacementConstraint.add_member(:expression, Shapes::ShapeRef.new(shape: String, location_name: "expression"))
529
583
  PlacementConstraint.struct_class = Types::PlacementConstraint
@@ -593,6 +647,7 @@ module Aws::ECS
593
647
  RunTaskRequest.add_member(:group, Shapes::ShapeRef.new(shape: String, location_name: "group"))
594
648
  RunTaskRequest.add_member(:placement_constraints, Shapes::ShapeRef.new(shape: PlacementConstraints, location_name: "placementConstraints"))
595
649
  RunTaskRequest.add_member(:placement_strategy, Shapes::ShapeRef.new(shape: PlacementStrategies, location_name: "placementStrategy"))
650
+ RunTaskRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
596
651
  RunTaskRequest.struct_class = Types::RunTaskRequest
597
652
 
598
653
  RunTaskResponse.add_member(:tasks, Shapes::ShapeRef.new(shape: Tasks, location_name: "tasks"))
@@ -615,6 +670,7 @@ module Aws::ECS
615
670
  Service.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "createdAt"))
616
671
  Service.add_member(:placement_constraints, Shapes::ShapeRef.new(shape: PlacementConstraints, location_name: "placementConstraints"))
617
672
  Service.add_member(:placement_strategy, Shapes::ShapeRef.new(shape: PlacementStrategies, location_name: "placementStrategy"))
673
+ Service.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
618
674
  Service.struct_class = Types::Service
619
675
 
620
676
  ServiceEvent.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
@@ -632,6 +688,7 @@ module Aws::ECS
632
688
  StartTaskRequest.add_member(:container_instances, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "containerInstances"))
633
689
  StartTaskRequest.add_member(:started_by, Shapes::ShapeRef.new(shape: String, location_name: "startedBy"))
634
690
  StartTaskRequest.add_member(:group, Shapes::ShapeRef.new(shape: String, location_name: "group"))
691
+ StartTaskRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
635
692
  StartTaskRequest.struct_class = Types::StartTaskRequest
636
693
 
637
694
  StartTaskResponse.add_member(:tasks, Shapes::ShapeRef.new(shape: Tasks, location_name: "tasks"))
@@ -664,6 +721,8 @@ module Aws::ECS
664
721
  SubmitTaskStateChangeRequest.add_member(:task, Shapes::ShapeRef.new(shape: String, location_name: "task"))
665
722
  SubmitTaskStateChangeRequest.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
666
723
  SubmitTaskStateChangeRequest.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
724
+ SubmitTaskStateChangeRequest.add_member(:containers, Shapes::ShapeRef.new(shape: ContainerStateChanges, location_name: "containers"))
725
+ SubmitTaskStateChangeRequest.add_member(:attachments, Shapes::ShapeRef.new(shape: AttachmentStateChanges, location_name: "attachments"))
667
726
  SubmitTaskStateChangeRequest.struct_class = Types::SubmitTaskStateChangeRequest
668
727
 
669
728
  SubmitTaskStateChangeResponse.add_member(:acknowledgment, Shapes::ShapeRef.new(shape: String, location_name: "acknowledgment"))
@@ -684,6 +743,7 @@ module Aws::ECS
684
743
  Task.add_member(:started_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startedAt"))
685
744
  Task.add_member(:stopped_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "stoppedAt"))
686
745
  Task.add_member(:group, Shapes::ShapeRef.new(shape: String, location_name: "group"))
746
+ Task.add_member(:attachments, Shapes::ShapeRef.new(shape: Attachments, location_name: "attachments"))
687
747
  Task.struct_class = Types::Task
688
748
 
689
749
  TaskDefinition.add_member(:task_definition_arn, Shapes::ShapeRef.new(shape: String, location_name: "taskDefinitionArn"))
@@ -738,6 +798,7 @@ module Aws::ECS
738
798
  UpdateServiceRequest.add_member(:desired_count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "desiredCount"))
739
799
  UpdateServiceRequest.add_member(:task_definition, Shapes::ShapeRef.new(shape: String, location_name: "taskDefinition"))
740
800
  UpdateServiceRequest.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
801
+ UpdateServiceRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
741
802
  UpdateServiceRequest.struct_class = Types::UpdateServiceRequest
742
803
 
743
804
  UpdateServiceResponse.add_member(:service, Shapes::ShapeRef.new(shape: Service, location_name: "service"))
@@ -8,6 +8,64 @@
8
8
  module Aws::ECS
9
9
  module Types
10
10
 
11
+ # An object representing a container instance or task attachment.
12
+ #
13
+ # @!attribute [rw] id
14
+ # The unique identifier for the attachment.
15
+ # @return [String]
16
+ #
17
+ # @!attribute [rw] type
18
+ # The type of the attachment, such as an `ElasticNetworkInterface`.
19
+ # @return [String]
20
+ #
21
+ # @!attribute [rw] status
22
+ # The status of the attachment. Valid values are `PRECREATED`,
23
+ # `CREATED`, `ATTACHING`, `ATTACHED`, `DETACHING`, `DETACHED`, and
24
+ # `DELETED`.
25
+ # @return [String]
26
+ #
27
+ # @!attribute [rw] details
28
+ # Details of the attachment. For Elastic Network Interfaces, this
29
+ # includes the network interface ID, the MAC address, the subnet ID,
30
+ # and the private IPv4 address.
31
+ # @return [Array<Types::KeyValuePair>]
32
+ #
33
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Attachment AWS API Documentation
34
+ #
35
+ class Attachment < Struct.new(
36
+ :id,
37
+ :type,
38
+ :status,
39
+ :details)
40
+ include Aws::Structure
41
+ end
42
+
43
+ # An object representing a change in state for a task attachment.
44
+ #
45
+ # @note When making an API call, you may pass AttachmentStateChange
46
+ # data as a hash:
47
+ #
48
+ # {
49
+ # attachment_arn: "String", # required
50
+ # status: "String", # required
51
+ # }
52
+ #
53
+ # @!attribute [rw] attachment_arn
54
+ # The Amazon Resource Name (ARN) of the attachment.
55
+ # @return [String]
56
+ #
57
+ # @!attribute [rw] status
58
+ # The status of the attachment.
59
+ # @return [String]
60
+ #
61
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AttachmentStateChange AWS API Documentation
62
+ #
63
+ class AttachmentStateChange < Struct.new(
64
+ :attachment_arn,
65
+ :status)
66
+ include Aws::Structure
67
+ end
68
+
11
69
  # An attribute is a name-value pair associated with an Amazon ECS
12
70
  # object. Attributes enable you to extend the Amazon ECS data model by
13
71
  # adding custom metadata to your resources. For more information, see
@@ -59,6 +117,35 @@ module Aws::ECS
59
117
  include Aws::Structure
60
118
  end
61
119
 
120
+ # An object representing the subnets and security groups for a task or
121
+ # service.
122
+ #
123
+ # @note When making an API call, you may pass AwsVpcConfiguration
124
+ # data as a hash:
125
+ #
126
+ # {
127
+ # subnets: ["String"], # required
128
+ # security_groups: ["String"],
129
+ # }
130
+ #
131
+ # @!attribute [rw] subnets
132
+ # The subnets associated with the task or service.
133
+ # @return [Array<String>]
134
+ #
135
+ # @!attribute [rw] security_groups
136
+ # The security groups associated with the task or service. If you do
137
+ # not specify a security group, the default security group for the VPC
138
+ # is used.
139
+ # @return [Array<String>]
140
+ #
141
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AwsVpcConfiguration AWS API Documentation
142
+ #
143
+ class AwsVpcConfiguration < Struct.new(
144
+ :subnets,
145
+ :security_groups)
146
+ include Aws::Structure
147
+ end
148
+
62
149
  # A regional grouping of one or more container instances on which you
63
150
  # can run task requests. Each account receives a default cluster the
64
151
  # first time you use the Amazon ECS service, but you may also create
@@ -145,6 +232,10 @@ module Aws::ECS
145
232
  # The network bindings associated with the container.
146
233
  # @return [Array<Types::NetworkBinding>]
147
234
  #
235
+ # @!attribute [rw] network_interfaces
236
+ # The network interfaces associated with the container.
237
+ # @return [Array<Types::NetworkInterface>]
238
+ #
148
239
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Container AWS API Documentation
149
240
  #
150
241
  class Container < Struct.new(
@@ -154,7 +245,8 @@ module Aws::ECS
154
245
  :last_status,
155
246
  :exit_code,
156
247
  :reason,
157
- :network_bindings)
248
+ :network_bindings,
249
+ :network_interfaces)
158
250
  include Aws::Structure
159
251
  end
160
252
 
@@ -904,6 +996,11 @@ module Aws::ECS
904
996
  # The Unix timestamp for when the container instance was registered.
905
997
  # @return [Time]
906
998
  #
999
+ # @!attribute [rw] attachments
1000
+ # The Elastic Network Interfaces associated with the container
1001
+ # instance.
1002
+ # @return [Array<Types::Attachment>]
1003
+ #
907
1004
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerInstance AWS API Documentation
908
1005
  #
909
1006
  class ContainerInstance < Struct.new(
@@ -919,7 +1016,8 @@ module Aws::ECS
919
1016
  :pending_tasks_count,
920
1017
  :agent_update_status,
921
1018
  :attributes,
922
- :registered_at)
1019
+ :registered_at,
1020
+ :attachments)
923
1021
  include Aws::Structure
924
1022
  end
925
1023
 
@@ -992,6 +1090,58 @@ module Aws::ECS
992
1090
  include Aws::Structure
993
1091
  end
994
1092
 
1093
+ # An object representing a change in state for a container.
1094
+ #
1095
+ # @note When making an API call, you may pass ContainerStateChange
1096
+ # data as a hash:
1097
+ #
1098
+ # {
1099
+ # container_name: "String",
1100
+ # exit_code: 1,
1101
+ # network_bindings: [
1102
+ # {
1103
+ # bind_ip: "String",
1104
+ # container_port: 1,
1105
+ # host_port: 1,
1106
+ # protocol: "tcp", # accepts tcp, udp
1107
+ # },
1108
+ # ],
1109
+ # reason: "String",
1110
+ # status: "String",
1111
+ # }
1112
+ #
1113
+ # @!attribute [rw] container_name
1114
+ # The name of the container.
1115
+ # @return [String]
1116
+ #
1117
+ # @!attribute [rw] exit_code
1118
+ # The exit code for the container, if the state change is a result of
1119
+ # the container exiting.
1120
+ # @return [Integer]
1121
+ #
1122
+ # @!attribute [rw] network_bindings
1123
+ # Any network bindings associated with the container.
1124
+ # @return [Array<Types::NetworkBinding>]
1125
+ #
1126
+ # @!attribute [rw] reason
1127
+ # The reason for the state change.
1128
+ # @return [String]
1129
+ #
1130
+ # @!attribute [rw] status
1131
+ # The status of the container.
1132
+ # @return [String]
1133
+ #
1134
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerStateChange AWS API Documentation
1135
+ #
1136
+ class ContainerStateChange < Struct.new(
1137
+ :container_name,
1138
+ :exit_code,
1139
+ :network_bindings,
1140
+ :reason,
1141
+ :status)
1142
+ include Aws::Structure
1143
+ end
1144
+
995
1145
  # @note When making an API call, you may pass CreateClusterRequest
996
1146
  # data as a hash:
997
1147
  #
@@ -1058,6 +1208,12 @@ module Aws::ECS
1058
1208
  # field: "String",
1059
1209
  # },
1060
1210
  # ],
1211
+ # network_configuration: {
1212
+ # awsvpc_configuration: {
1213
+ # subnets: ["String"], # required
1214
+ # security_groups: ["String"],
1215
+ # },
1216
+ # },
1061
1217
  # }
1062
1218
  #
1063
1219
  # @!attribute [rw] cluster
@@ -1117,21 +1273,31 @@ module Aws::ECS
1117
1273
  # @!attribute [rw] role
1118
1274
  # The name or full Amazon Resource Name (ARN) of the IAM role that
1119
1275
  # allows Amazon ECS to make calls to your load balancer on your
1120
- # behalf. This parameter is required if you are using a load balancer
1121
- # with your service. If you specify the `role` parameter, you must
1276
+ # behalf. This parameter is only permitted if you are using a load
1277
+ # balancer with your service and your task definition does not use the
1278
+ # `awsvpc` network mode. If you specify the `role` parameter, you must
1122
1279
  # also specify a load balancer object with the `loadBalancers`
1123
1280
  # parameter.
1124
1281
  #
1282
+ # If your account has already created the Amazon ECS service-linked
1283
+ # role, that role is used by default for your service unless you
1284
+ # specify a role here. The service-linked role is required if your
1285
+ # task definition uses the `awsvpc` network mode, in which case you
1286
+ # should not specify a role here. For more information, see [Using
1287
+ # Service-Linked Roles for Amazon ECS][1] in the *Amazon EC2 Container
1288
+ # Service Developer Guide*.
1289
+ #
1125
1290
  # If your specified role has a path other than `/`, then you must
1126
1291
  # either specify the full role ARN (this is recommended) or prefix the
1127
1292
  # role name with the path. For example, if a role with the name `bar`
1128
1293
  # has a path of `/foo/` then you would specify `/foo/bar` as the role
1129
- # name. For more information, see [Friendly Names and Paths][1] in the
1294
+ # name. For more information, see [Friendly Names and Paths][2] in the
1130
1295
  # *IAM User Guide*.
1131
1296
  #
1132
1297
  #
1133
1298
  #
1134
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names
1299
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguideusing-service-linked-roles.html
1300
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names
1135
1301
  # @return [String]
1136
1302
  #
1137
1303
  # @!attribute [rw] deployment_configuration
@@ -1152,6 +1318,19 @@ module Aws::ECS
1152
1318
  # can specify a maximum of 5 strategy rules per service.
1153
1319
  # @return [Array<Types::PlacementStrategy>]
1154
1320
  #
1321
+ # @!attribute [rw] network_configuration
1322
+ # The network configuration for the service. This parameter is
1323
+ # required for task definitions that use the `awsvpc` network mode to
1324
+ # receive their own Elastic Network Interface, and it is not supported
1325
+ # for other network modes. For more information, see [Task
1326
+ # Networking][1] in the *Amazon EC2 Container Service Developer
1327
+ # Guide*.
1328
+ #
1329
+ #
1330
+ #
1331
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguidetask-networking.html
1332
+ # @return [Types::NetworkConfiguration]
1333
+ #
1155
1334
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceRequest AWS API Documentation
1156
1335
  #
1157
1336
  class CreateServiceRequest < Struct.new(
@@ -1164,7 +1343,8 @@ module Aws::ECS
1164
1343
  :role,
1165
1344
  :deployment_configuration,
1166
1345
  :placement_constraints,
1167
- :placement_strategy)
1346
+ :placement_strategy,
1347
+ :network_configuration)
1168
1348
  include Aws::Structure
1169
1349
  end
1170
1350
 
@@ -1337,6 +1517,12 @@ module Aws::ECS
1337
1517
  # The Unix timestamp for when the service was last updated.
1338
1518
  # @return [Time]
1339
1519
  #
1520
+ # @!attribute [rw] network_configuration
1521
+ # The VPC subnet and security group configuration for tasks that
1522
+ # receive their own Elastic Network Interface by using the `awsvpc`
1523
+ # networking mode.
1524
+ # @return [Types::NetworkConfiguration]
1525
+ #
1340
1526
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Deployment AWS API Documentation
1341
1527
  #
1342
1528
  class Deployment < Struct.new(
@@ -1347,7 +1533,8 @@ module Aws::ECS
1347
1533
  :pending_count,
1348
1534
  :running_count,
1349
1535
  :created_at,
1350
- :updated_at)
1536
+ :updated_at,
1537
+ :network_configuration)
1351
1538
  include Aws::Structure
1352
1539
  end
1353
1540
 
@@ -2788,6 +2975,54 @@ module Aws::ECS
2788
2975
  include Aws::Structure
2789
2976
  end
2790
2977
 
2978
+ # An object representing the network configuration for a task or
2979
+ # service.
2980
+ #
2981
+ # @note When making an API call, you may pass NetworkConfiguration
2982
+ # data as a hash:
2983
+ #
2984
+ # {
2985
+ # awsvpc_configuration: {
2986
+ # subnets: ["String"], # required
2987
+ # security_groups: ["String"],
2988
+ # },
2989
+ # }
2990
+ #
2991
+ # @!attribute [rw] awsvpc_configuration
2992
+ # The VPC subnets and security groups associated with a task.
2993
+ # @return [Types::AwsVpcConfiguration]
2994
+ #
2995
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkConfiguration AWS API Documentation
2996
+ #
2997
+ class NetworkConfiguration < Struct.new(
2998
+ :awsvpc_configuration)
2999
+ include Aws::Structure
3000
+ end
3001
+
3002
+ # An object representing the Elastic Network Interface for tasks that
3003
+ # use the `awsvpc` network mode.
3004
+ #
3005
+ # @!attribute [rw] attachment_id
3006
+ # The attachment ID for the network interface.
3007
+ # @return [String]
3008
+ #
3009
+ # @!attribute [rw] private_ipv_4_address
3010
+ # The private IPv4 address for the network interface.
3011
+ # @return [String]
3012
+ #
3013
+ # @!attribute [rw] ipv6_address
3014
+ # The private IPv6 address for the network interface.
3015
+ # @return [String]
3016
+ #
3017
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkInterface AWS API Documentation
3018
+ #
3019
+ class NetworkInterface < Struct.new(
3020
+ :attachment_id,
3021
+ :private_ipv_4_address,
3022
+ :ipv6_address)
3023
+ include Aws::Structure
3024
+ end
3025
+
2791
3026
  # An object representing a constraint on task placement. For more
2792
3027
  # information, see [Task Placement Constraints][1] in the *Amazon EC2
2793
3028
  # Container Service Developer Guide*.
@@ -3098,7 +3333,7 @@ module Aws::ECS
3098
3333
  # {
3099
3334
  # family: "String", # required
3100
3335
  # task_role_arn: "String",
3101
- # network_mode: "bridge", # accepts bridge, host, none
3336
+ # network_mode: "bridge", # accepts bridge, host, awsvpc, none
3102
3337
  # container_definitions: [ # required
3103
3338
  # {
3104
3339
  # name: "String",
@@ -3221,25 +3456,37 @@ module Aws::ECS
3221
3456
  #
3222
3457
  # @!attribute [rw] network_mode
3223
3458
  # The Docker networking mode to use for the containers in the task.
3224
- # The valid values are `none`, `bridge`, and `host`.
3225
- #
3226
- # The default Docker network mode is `bridge`. If the network mode is
3227
- # set to `none`, you cannot specify port mappings in your container
3459
+ # The valid values are `none`, `bridge`, `awsvpc`, and `host`. The
3460
+ # default Docker network mode is `bridge`. If the network mode is set
3461
+ # to `none`, you cannot specify port mappings in your container
3228
3462
  # definitions, and the task's containers do not have external
3229
- # connectivity. The `host` network mode offers the highest networking
3230
- # performance for containers because they use the host network stack
3231
- # instead of the virtualized network stack provided by the `bridge`
3232
- # mode; however, exposed container ports are mapped directly to the
3233
- # corresponding host port, so you cannot take advantage of dynamic
3234
- # host port mappings or run multiple instantiations of the same task
3235
- # on a single container instance if port mappings are used.
3463
+ # connectivity. The `host` and `awsvpc` network modes offer the
3464
+ # highest networking performance for containers because they use the
3465
+ # EC2 network stack instead of the virtualized network stack provided
3466
+ # by the `bridge` mode.
3467
+ #
3468
+ # With the `host` and `awsvpc` network modes, exposed container ports
3469
+ # are mapped directly to the corresponding host port (for the `host`
3470
+ # network mode) or the attached ENI port (for the `awsvpc` network
3471
+ # mode), so you cannot take advantage of dynamic host port mappings.
3472
+ #
3473
+ # If the network mode is `awsvpc`, the task is allocated an Elastic
3474
+ # Network Interface, and you must specify a NetworkConfiguration when
3475
+ # you create a service or run a task with the task definition. For
3476
+ # more information, see [Task Networking][1] in the *Amazon EC2
3477
+ # Container Service Developer Guide*.
3236
3478
  #
3237
- # For more information, see [Network settings][1] in the *Docker run
3479
+ # If the network mode is `host`, you can not run multiple
3480
+ # instantiations of the same task on a single container instance when
3481
+ # port mappings are used.
3482
+ #
3483
+ # For more information, see [Network settings][2] in the *Docker run
3238
3484
  # reference*.
3239
3485
  #
3240
3486
  #
3241
3487
  #
3242
- # [1]: https://docs.docker.com/engine/reference/run/#network-settings
3488
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguidetask-networking.html
3489
+ # [2]: https://docs.docker.com/engine/reference/run/#network-settings
3243
3490
  # @return [String]
3244
3491
  #
3245
3492
  # @!attribute [rw] container_definitions
@@ -3377,6 +3624,12 @@ module Aws::ECS
3377
3624
  # field: "String",
3378
3625
  # },
3379
3626
  # ],
3627
+ # network_configuration: {
3628
+ # awsvpc_configuration: {
3629
+ # subnets: ["String"], # required
3630
+ # security_groups: ["String"],
3631
+ # },
3632
+ # },
3380
3633
  # }
3381
3634
  #
3382
3635
  # @!attribute [rw] cluster
@@ -3442,6 +3695,18 @@ module Aws::ECS
3442
3695
  # a maximum of 5 strategy rules per task.
3443
3696
  # @return [Array<Types::PlacementStrategy>]
3444
3697
  #
3698
+ # @!attribute [rw] network_configuration
3699
+ # The network configuration for the task. This parameter is required
3700
+ # for task definitions that use the `awsvpc` network mode to receive
3701
+ # their own Elastic Network Interface, and it is not supported for
3702
+ # other network modes. For more information, see [Task Networking][1]
3703
+ # in the *Amazon EC2 Container Service Developer Guide*.
3704
+ #
3705
+ #
3706
+ #
3707
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguidetask-networking.html
3708
+ # @return [Types::NetworkConfiguration]
3709
+ #
3445
3710
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest AWS API Documentation
3446
3711
  #
3447
3712
  class RunTaskRequest < Struct.new(
@@ -3452,7 +3717,8 @@ module Aws::ECS
3452
3717
  :started_by,
3453
3718
  :group,
3454
3719
  :placement_constraints,
3455
- :placement_strategy)
3720
+ :placement_strategy,
3721
+ :network_configuration)
3456
3722
  include Aws::Structure
3457
3723
  end
3458
3724
 
@@ -3563,6 +3829,12 @@ module Aws::ECS
3563
3829
  # placed.
3564
3830
  # @return [Array<Types::PlacementStrategy>]
3565
3831
  #
3832
+ # @!attribute [rw] network_configuration
3833
+ # The VPC subnet and security group configuration for tasks that
3834
+ # receive their own Elastic Network Interface by using the `awsvpc`
3835
+ # networking mode.
3836
+ # @return [Types::NetworkConfiguration]
3837
+ #
3566
3838
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Service AWS API Documentation
3567
3839
  #
3568
3840
  class Service < Struct.new(
@@ -3581,7 +3853,8 @@ module Aws::ECS
3581
3853
  :events,
3582
3854
  :created_at,
3583
3855
  :placement_constraints,
3584
- :placement_strategy)
3856
+ :placement_strategy,
3857
+ :network_configuration)
3585
3858
  include Aws::Structure
3586
3859
  end
3587
3860
 
@@ -3635,6 +3908,12 @@ module Aws::ECS
3635
3908
  # container_instances: ["String"], # required
3636
3909
  # started_by: "String",
3637
3910
  # group: "String",
3911
+ # network_configuration: {
3912
+ # awsvpc_configuration: {
3913
+ # subnets: ["String"], # required
3914
+ # security_groups: ["String"],
3915
+ # },
3916
+ # },
3638
3917
  # }
3639
3918
  #
3640
3919
  # @!attribute [rw] cluster
@@ -3690,6 +3969,12 @@ module Aws::ECS
3690
3969
  # family:my-family-name).
3691
3970
  # @return [String]
3692
3971
  #
3972
+ # @!attribute [rw] network_configuration
3973
+ # The VPC subnet and security group configuration for tasks that
3974
+ # receive their own Elastic Network Interface by using the `awsvpc`
3975
+ # networking mode.
3976
+ # @return [Types::NetworkConfiguration]
3977
+ #
3693
3978
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskRequest AWS API Documentation
3694
3979
  #
3695
3980
  class StartTaskRequest < Struct.new(
@@ -3698,7 +3983,8 @@ module Aws::ECS
3698
3983
  :overrides,
3699
3984
  :container_instances,
3700
3985
  :started_by,
3701
- :group)
3986
+ :group,
3987
+ :network_configuration)
3702
3988
  include Aws::Structure
3703
3989
  end
3704
3990
 
@@ -3850,6 +4136,28 @@ module Aws::ECS
3850
4136
  # task: "String",
3851
4137
  # status: "String",
3852
4138
  # reason: "String",
4139
+ # containers: [
4140
+ # {
4141
+ # container_name: "String",
4142
+ # exit_code: 1,
4143
+ # network_bindings: [
4144
+ # {
4145
+ # bind_ip: "String",
4146
+ # container_port: 1,
4147
+ # host_port: 1,
4148
+ # protocol: "tcp", # accepts tcp, udp
4149
+ # },
4150
+ # ],
4151
+ # reason: "String",
4152
+ # status: "String",
4153
+ # },
4154
+ # ],
4155
+ # attachments: [
4156
+ # {
4157
+ # attachment_arn: "String", # required
4158
+ # status: "String", # required
4159
+ # },
4160
+ # ],
3853
4161
  # }
3854
4162
  #
3855
4163
  # @!attribute [rw] cluster
@@ -3870,13 +4178,23 @@ module Aws::ECS
3870
4178
  # The reason for the state change request.
3871
4179
  # @return [String]
3872
4180
  #
4181
+ # @!attribute [rw] containers
4182
+ # Any containers associated with the state change request.
4183
+ # @return [Array<Types::ContainerStateChange>]
4184
+ #
4185
+ # @!attribute [rw] attachments
4186
+ # Any attachments associated with the state change request.
4187
+ # @return [Array<Types::AttachmentStateChange>]
4188
+ #
3873
4189
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChangeRequest AWS API Documentation
3874
4190
  #
3875
4191
  class SubmitTaskStateChangeRequest < Struct.new(
3876
4192
  :cluster,
3877
4193
  :task,
3878
4194
  :status,
3879
- :reason)
4195
+ :reason,
4196
+ :containers,
4197
+ :attachments)
3880
4198
  include Aws::Structure
3881
4199
  end
3882
4200
 
@@ -3966,6 +4284,11 @@ module Aws::ECS
3966
4284
  # The name of the task group associated with the task.
3967
4285
  # @return [String]
3968
4286
  #
4287
+ # @!attribute [rw] attachments
4288
+ # The Elastic Network Adapter associated with the task if the task
4289
+ # uses the `awsvpc` network mode.
4290
+ # @return [Array<Types::Attachment>]
4291
+ #
3969
4292
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Task AWS API Documentation
3970
4293
  #
3971
4294
  class Task < Struct.new(
@@ -3983,7 +4306,8 @@ module Aws::ECS
3983
4306
  :created_at,
3984
4307
  :started_at,
3985
4308
  :stopped_at,
3986
- :group)
4309
+ :group,
4310
+ :attachments)
3987
4311
  include Aws::Structure
3988
4312
  end
3989
4313
 
@@ -4017,13 +4341,15 @@ module Aws::ECS
4017
4341
  #
4018
4342
  # @!attribute [rw] network_mode
4019
4343
  # The Docker networking mode to use for the containers in the task.
4020
- # The valid values are `none`, `bridge`, and `host`.
4344
+ # The valid values are `none`, `bridge`, `awsvpc`, and `host`.
4021
4345
  #
4022
4346
  # If the network mode is `none`, the containers do not have external
4023
- # connectivity. The default Docker network mode is `bridge`. The
4024
- # `host` network mode offers the highest networking performance for
4025
- # containers because it uses the host network stack instead of the
4026
- # virtualized network stack provided by the `bridge` mode.
4347
+ # connectivity. The default Docker network mode is `bridge`. If the
4348
+ # network mode is `awsvpc`, the task is allocated an Elastic Network
4349
+ # Interface. The `host` and `awsvpc` network modes offer the highest
4350
+ # networking performance for containers because they use the EC2
4351
+ # network stack instead of the virtualized network stack provided by
4352
+ # the `bridge` mode.
4027
4353
  #
4028
4354
  # For more information, see [Network settings][1] in the *Docker run
4029
4355
  # reference*.
@@ -4297,6 +4623,12 @@ module Aws::ECS
4297
4623
  # maximum_percent: 1,
4298
4624
  # minimum_healthy_percent: 1,
4299
4625
  # },
4626
+ # network_configuration: {
4627
+ # awsvpc_configuration: {
4628
+ # subnets: ["String"], # required
4629
+ # security_groups: ["String"],
4630
+ # },
4631
+ # },
4300
4632
  # }
4301
4633
  #
4302
4634
  # @!attribute [rw] cluster
@@ -4329,6 +4661,27 @@ module Aws::ECS
4329
4661
  # tasks.
4330
4662
  # @return [Types::DeploymentConfiguration]
4331
4663
  #
4664
+ # @!attribute [rw] network_configuration
4665
+ # The network configuration for the service. This parameter is
4666
+ # required for task definitions that use the `awsvpc` network mode to
4667
+ # receive their own Elastic Network Interface, and it is not supported
4668
+ # for other network modes. For more information, see [Task
4669
+ # Networking][1] in the *Amazon EC2 Container Service Developer
4670
+ # Guide*.
4671
+ #
4672
+ # <note markdown="1"> Updating a service to add a subnet to a list of existing subnets
4673
+ # does not trigger a service deployment. For example, if your network
4674
+ # configuration change is to keep the existing subnets and simply add
4675
+ # another subnet to the network configuration, this does not trigger a
4676
+ # new service deployment.
4677
+ #
4678
+ # </note>
4679
+ #
4680
+ #
4681
+ #
4682
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguidetask-networking.html
4683
+ # @return [Types::NetworkConfiguration]
4684
+ #
4332
4685
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest AWS API Documentation
4333
4686
  #
4334
4687
  class UpdateServiceRequest < Struct.new(
@@ -4336,7 +4689,8 @@ module Aws::ECS
4336
4689
  :service,
4337
4690
  :desired_count,
4338
4691
  :task_definition,
4339
- :deployment_configuration)
4692
+ :deployment_configuration,
4693
+ :network_configuration)
4340
4694
  include Aws::Structure
4341
4695
  end
4342
4696