aws-sdk-ecs 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
@@ -0,0 +1,23 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module ECS
10
+ module Errors
11
+
12
+ extend Aws::Errors::DynamicErrors
13
+
14
+ # Raised when calling #load or #data on a resource class that can not be
15
+ # loaded. This can happen when:
16
+ #
17
+ # * A resource class has identifiers, but no data attributes.
18
+ # * Resource data is only available when making an API call that
19
+ # enumerates all resources of that type.
20
+ class ResourceNotLoadable < RuntimeError; end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module ECS
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,3365 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module ECS
10
+ module Types
11
+
12
+ # The attributes applicable to a container instance when it is
13
+ # registered.
14
+ # @note When making an API call, pass Attribute
15
+ # data as a hash:
16
+ #
17
+ # {
18
+ # name: "String", # required
19
+ # value: "String",
20
+ # }
21
+ # @!attribute [rw] name
22
+ # The name of the container instance attribute.
23
+ # @return [String]
24
+ #
25
+ # @!attribute [rw] value
26
+ # The value of the container instance attribute (at this time, the
27
+ # value here is `Null`, but this could change in future revisions for
28
+ # expandability).
29
+ # @return [String]
30
+ class Attribute < Struct.new(
31
+ :name,
32
+ :value)
33
+ include Aws::Structure
34
+ end
35
+
36
+ # A regional grouping of one or more container instances on which you
37
+ # can run task requests. Each account receives a default cluster the
38
+ # first time you use the Amazon ECS service, but you may also create
39
+ # other clusters. Clusters may contain more than one instance type
40
+ # simultaneously.
41
+ # @!attribute [rw] cluster_arn
42
+ # The Amazon Resource Name (ARN) that identifies the cluster. The ARN
43
+ # contains the `arn:aws:ecs` namespace, followed by the region of the
44
+ # cluster, the AWS account ID of the cluster owner, the `cluster`
45
+ # namespace, and then the cluster name. For example,
46
+ # `arn:aws:ecs:region:012345678910:cluster/test `..
47
+ # @return [String]
48
+ #
49
+ # @!attribute [rw] cluster_name
50
+ # A user-generated string that you use to identify your cluster.
51
+ # @return [String]
52
+ #
53
+ # @!attribute [rw] status
54
+ # The status of the cluster. The valid values are `ACTIVE` or
55
+ # `INACTIVE`. `ACTIVE` indicates that you can register container
56
+ # instances with the cluster and the associated instances can accept
57
+ # tasks.
58
+ # @return [String]
59
+ #
60
+ # @!attribute [rw] registered_container_instances_count
61
+ # The number of container instances registered into the cluster.
62
+ # @return [Integer]
63
+ #
64
+ # @!attribute [rw] running_tasks_count
65
+ # The number of tasks in the cluster that are in the `RUNNING` state.
66
+ # @return [Integer]
67
+ #
68
+ # @!attribute [rw] pending_tasks_count
69
+ # The number of tasks in the cluster that are in the `PENDING` state.
70
+ # @return [Integer]
71
+ #
72
+ # @!attribute [rw] active_services_count
73
+ # The number of services that are running on the cluster in an
74
+ # `ACTIVE` state. You can view these services with ListServices.
75
+ # @return [Integer]
76
+ class Cluster < Struct.new(
77
+ :cluster_arn,
78
+ :cluster_name,
79
+ :status,
80
+ :registered_container_instances_count,
81
+ :running_tasks_count,
82
+ :pending_tasks_count,
83
+ :active_services_count)
84
+ include Aws::Structure
85
+ end
86
+
87
+ # A Docker container that is part of a task.
88
+ # @!attribute [rw] container_arn
89
+ # The Amazon Resource Name (ARN) of the container.
90
+ # @return [String]
91
+ #
92
+ # @!attribute [rw] task_arn
93
+ # The Amazon Resource Name (ARN) of the task.
94
+ # @return [String]
95
+ #
96
+ # @!attribute [rw] name
97
+ # The name of the container.
98
+ # @return [String]
99
+ #
100
+ # @!attribute [rw] last_status
101
+ # The last known status of the container.
102
+ # @return [String]
103
+ #
104
+ # @!attribute [rw] exit_code
105
+ # The exit code returned from the container.
106
+ # @return [Integer]
107
+ #
108
+ # @!attribute [rw] reason
109
+ # A short (255 max characters) human-readable string to provide
110
+ # additional detail about a running or stopped container.
111
+ # @return [String]
112
+ #
113
+ # @!attribute [rw] network_bindings
114
+ # The network bindings associated with the container.
115
+ # @return [Array<Types::NetworkBinding>]
116
+ class Container < Struct.new(
117
+ :container_arn,
118
+ :task_arn,
119
+ :name,
120
+ :last_status,
121
+ :exit_code,
122
+ :reason,
123
+ :network_bindings)
124
+ include Aws::Structure
125
+ end
126
+
127
+ # Container definitions are used in task definitions to describe the
128
+ # different containers that are launched as part of a task.
129
+ # @note When making an API call, pass ContainerDefinition
130
+ # data as a hash:
131
+ #
132
+ # {
133
+ # name: "String",
134
+ # image: "String",
135
+ # cpu: 1,
136
+ # memory: 1,
137
+ # memory_reservation: 1,
138
+ # links: ["String"],
139
+ # port_mappings: [
140
+ # {
141
+ # container_port: 1,
142
+ # host_port: 1,
143
+ # protocol: "tcp", # accepts tcp, udp
144
+ # },
145
+ # ],
146
+ # essential: false,
147
+ # entry_point: ["String"],
148
+ # command: ["String"],
149
+ # environment: [
150
+ # {
151
+ # name: "String",
152
+ # value: "String",
153
+ # },
154
+ # ],
155
+ # mount_points: [
156
+ # {
157
+ # source_volume: "String",
158
+ # container_path: "String",
159
+ # read_only: false,
160
+ # },
161
+ # ],
162
+ # volumes_from: [
163
+ # {
164
+ # source_container: "String",
165
+ # read_only: false,
166
+ # },
167
+ # ],
168
+ # hostname: "String",
169
+ # user: "String",
170
+ # working_directory: "String",
171
+ # disable_networking: false,
172
+ # privileged: false,
173
+ # readonly_root_filesystem: false,
174
+ # dns_servers: ["String"],
175
+ # dns_search_domains: ["String"],
176
+ # extra_hosts: [
177
+ # {
178
+ # hostname: "String", # required
179
+ # ip_address: "String", # required
180
+ # },
181
+ # ],
182
+ # docker_security_options: ["String"],
183
+ # docker_labels: {
184
+ # "String" => "String",
185
+ # },
186
+ # ulimits: [
187
+ # {
188
+ # name: "core", # required, accepts core, cpu, data, fsize, locks, memlock, msgqueue, nice, nofile, nproc, rss, rtprio, rttime, sigpending, stack
189
+ # soft_limit: 1, # required
190
+ # hard_limit: 1, # required
191
+ # },
192
+ # ],
193
+ # log_configuration: {
194
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk
195
+ # options: {
196
+ # "String" => "String",
197
+ # },
198
+ # },
199
+ # }
200
+ # @!attribute [rw] name
201
+ # The name of a container. If you are linking multiple containers
202
+ # together in a task definition, the `name` of one container can be
203
+ # entered in the `links` of another container to connect the
204
+ # containers. Up to 255 letters (uppercase and lowercase), numbers,
205
+ # hyphens, and underscores are allowed. This parameter maps to `name`
206
+ # in the [Create a container][1] section of the [Docker Remote API][2]
207
+ # and the `--name` option to [docker run][3].
208
+ #
209
+ #
210
+ #
211
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
212
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
213
+ # [3]: https://docs.docker.com/engine/reference/run/
214
+ # @return [String]
215
+ #
216
+ # @!attribute [rw] image
217
+ # The image used to start a container. This string is passed directly
218
+ # to the Docker daemon. Images in the Docker Hub registry are
219
+ # available by default. Other repositories are specified with `
220
+ # repository-url/image:tag `. Up to 255 letters (uppercase and
221
+ # lowercase), numbers, hyphens, underscores, colons, periods, forward
222
+ # slashes, and number signs are allowed. This parameter maps to
223
+ # `Image` in the [Create a container][1] section of the [Docker Remote
224
+ # API][2] and the `IMAGE` parameter of [docker run][3].
225
+ #
226
+ # * Images in official repositories on Docker Hub use a single name
227
+ # (for example, `ubuntu` or `mongo`).
228
+ #
229
+ # * Images in other repositories on Docker Hub are qualified with an
230
+ # organization name (for example, `amazon/amazon-ecs-agent`).
231
+ #
232
+ # * Images in other online repositories are qualified further by a
233
+ # domain name (for example, `quay.io/assemblyline/ubuntu`).
234
+ #
235
+ #
236
+ #
237
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
238
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
239
+ # [3]: https://docs.docker.com/engine/reference/run/
240
+ # @return [String]
241
+ #
242
+ # @!attribute [rw] cpu
243
+ # The number of `cpu` units reserved for the container. A container
244
+ # instance has 1,024 `cpu` units for every CPU core. This parameter
245
+ # specifies the minimum amount of CPU to reserve for a container, and
246
+ # containers share unallocated CPU units with other containers on the
247
+ # instance with the same ratio as their allocated amount. This
248
+ # parameter maps to `CpuShares` in the [Create a container][1] section
249
+ # of the [Docker Remote API][2] and the `--cpu-shares` option to
250
+ # [docker run][3].
251
+ #
252
+ # <note markdown="1"> You can determine the number of CPU units that are available per EC2
253
+ # instance type by multiplying the vCPUs listed for that instance type
254
+ # on the [Amazon EC2 Instances][4] detail page by 1,024.
255
+ #
256
+ # </note>
257
+ #
258
+ # For example, if you run a single-container task on a single-core
259
+ # instance type with 512 CPU units specified for that container, and
260
+ # that is the only task running on the container instance, that
261
+ # container could use the full 1,024 CPU unit share at any given time.
262
+ # However, if you launched another copy of the same task on that
263
+ # container instance, each task would be guaranteed a minimum of 512
264
+ # CPU units when needed, and each container could float to higher CPU
265
+ # usage if the other container was not using it, but if both tasks
266
+ # were 100% active all of the time, they would be limited to 512 CPU
267
+ # units.
268
+ #
269
+ # The Docker daemon on the container instance uses the CPU value to
270
+ # calculate the relative CPU share ratios for running containers. For
271
+ # more information, see [CPU share constraint][5] in the Docker
272
+ # documentation. The minimum valid CPU share value that the Linux
273
+ # kernel allows is 2; however, the CPU parameter is not required, and
274
+ # you can use CPU values below 2 in your container definitions. For
275
+ # CPU values below 2 (including null), the behavior varies based on
276
+ # your Amazon ECS container agent version:
277
+ #
278
+ # * **Agent versions less than or equal to 1.1.0:** Null and zero CPU
279
+ # values are passed to Docker as 0, which Docker then converts to
280
+ # 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which
281
+ # the Linux kernel converts to 2 CPU shares.
282
+ #
283
+ # * **Agent versions greater than or equal to 1.2.0:** Null, zero, and
284
+ # CPU values of 1 are passed to Docker as 2.
285
+ #
286
+ #
287
+ #
288
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
289
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
290
+ # [3]: https://docs.docker.com/engine/reference/run/
291
+ # [4]: http://aws.amazon.com/ec2/instance-types/
292
+ # [5]: https://docs.docker.com/engine/reference/run/#cpu-share-constraint
293
+ # @return [Integer]
294
+ #
295
+ # @!attribute [rw] memory
296
+ # The hard limit (in MiB) of memory to present to the container. If
297
+ # your container attempts to exceed the memory specified here, the
298
+ # container is killed. This parameter maps to `Memory` in the [Create
299
+ # a container][1] section of the [Docker Remote API][2] and the
300
+ # `--memory` option to [docker run][3].
301
+ #
302
+ # You must specify a non-zero integer for one or both of `memory` or
303
+ # `memoryReservation` in container definitions. If you specify both,
304
+ # `memory` must be greater than `memoryReservation`. If you specify
305
+ # `memoryReservation`, then that value is subtracted from the
306
+ # available memory resources for the container instance on which the
307
+ # container is placed; otherwise, the value of `memory` is used.
308
+ #
309
+ # The Docker daemon reserves a minimum of 4 MiB of memory for a
310
+ # container, so you should not specify fewer than 4 MiB of memory for
311
+ # your containers.
312
+ #
313
+ #
314
+ #
315
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
316
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
317
+ # [3]: https://docs.docker.com/engine/reference/run/
318
+ # @return [Integer]
319
+ #
320
+ # @!attribute [rw] memory_reservation
321
+ # The soft limit (in MiB) of memory to reserve for the container. When
322
+ # system memory is under heavy contention, Docker attempts to keep the
323
+ # container memory to this soft limit; however, your container can
324
+ # consume more memory when it needs to, up to either the hard limit
325
+ # specified with the `memory` parameter (if applicable), or all of the
326
+ # available memory on the container instance, whichever comes first.
327
+ # This parameter maps to `MemoryReservation` in the [Create a
328
+ # container][1] section of the [Docker Remote API][2] and the
329
+ # `--memory-reservation` option to [docker run][3].
330
+ #
331
+ # You must specify a non-zero integer for one or both of `memory` or
332
+ # `memoryReservation` in container definitions. If you specify both,
333
+ # `memory` must be greater than `memoryReservation`. If you specify
334
+ # `memoryReservation`, then that value is subtracted from the
335
+ # available memory resources for the container instance on which the
336
+ # container is placed; otherwise, the value of `memory` is used.
337
+ #
338
+ # For example, if your container normally uses 128 MiB of memory, but
339
+ # occasionally bursts to 256 MiB of memory for short periods of time,
340
+ # you can set a `memoryReservation` of 128 MiB, and a `memory` hard
341
+ # limit of 300 MiB. This configuration would allow the container to
342
+ # only reserve 128 MiB of memory from the remaining resources on the
343
+ # container instance, but also allow the container to consume more
344
+ # memory resources when needed.
345
+ #
346
+ #
347
+ #
348
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
349
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
350
+ # [3]: https://docs.docker.com/engine/reference/run/
351
+ # @return [Integer]
352
+ #
353
+ # @!attribute [rw] links
354
+ # The `link` parameter allows containers to communicate with each
355
+ # other without the need for port mappings, using the `name` parameter
356
+ # and optionally, an `alias` for the link. This construct is analogous
357
+ # to `name:alias` in Docker links. Up to 255 letters (uppercase and
358
+ # lowercase), numbers, hyphens, and underscores are allowed for each
359
+ # `name` and `alias`. For more information on linking Docker
360
+ # containers, see
361
+ # [https://docs.docker.com/engine/userguide/networking/default\_network/dockerlinks/][1].
362
+ # This parameter maps to `Links` in the [Create a container][2]
363
+ # section of the [Docker Remote API][3] and the `--link` option to
364
+ # [docker run][4].
365
+ #
366
+ # Containers that are collocated on a single container instance may be
367
+ # able to communicate with each other without requiring links or host
368
+ # port mappings. Network isolation is achieved on the container
369
+ # instance using security groups and VPC settings.
370
+ #
371
+ #
372
+ #
373
+ # [1]: https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
374
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
375
+ # [3]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
376
+ # [4]: https://docs.docker.com/engine/reference/run/
377
+ # @return [Array<String>]
378
+ #
379
+ # @!attribute [rw] port_mappings
380
+ # The list of port mappings for the container. Port mappings allow
381
+ # containers to access ports on the host container instance to send or
382
+ # receive traffic. This parameter maps to `PortBindings` in the
383
+ # [Create a container][1] section of the [Docker Remote API][2] and
384
+ # the `--publish` option to [docker run][3]. If the network mode of a
385
+ # task definition is set to `none`, then you cannot specify port
386
+ # mappings. If the network mode of a task definition is set to `host`,
387
+ # then host ports must either be undefined or they must match the
388
+ # container port in the port mapping.
389
+ #
390
+ # <note markdown="1"> After a task reaches the `RUNNING` status, manual and automatic host
391
+ # and container port assignments are visible in the **Network
392
+ # Bindings** section of a container description of a selected task in
393
+ # the Amazon ECS console, or the `networkBindings` section
394
+ # DescribeTasks responses.
395
+ #
396
+ # </note>
397
+ #
398
+ #
399
+ #
400
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
401
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
402
+ # [3]: https://docs.docker.com/engine/reference/run/
403
+ # @return [Array<Types::PortMapping>]
404
+ #
405
+ # @!attribute [rw] essential
406
+ # If the `essential` parameter of a container is marked as `true`, and
407
+ # that container fails or stops for any reason, all other containers
408
+ # that are part of the task are stopped. If the `essential` parameter
409
+ # of a container is marked as `false`, then its failure does not
410
+ # affect the rest of the containers in a task. If this parameter is
411
+ # omitted, a container is assumed to be essential.
412
+ #
413
+ # All tasks must have at least one essential container. If you have an
414
+ # application that is composed of multiple containers, you should
415
+ # group containers that are used for a common purpose into components,
416
+ # and separate the different components into multiple task
417
+ # definitions. For more information, see [Application Architecture][1]
418
+ # in the *Amazon EC2 Container Service Developer Guide*.
419
+ #
420
+ #
421
+ #
422
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html
423
+ # @return [Boolean]
424
+ #
425
+ # @!attribute [rw] entry_point
426
+ # Early versions of the Amazon ECS container agent do not properly
427
+ # handle `entryPoint` parameters. If you have problems using
428
+ # `entryPoint`, update your container agent or enter your commands and
429
+ # arguments as `command` array items instead.
430
+ #
431
+ # The entry point that is passed to the container. This parameter maps
432
+ # to `Entrypoint` in the [Create a container][1] section of the
433
+ # [Docker Remote API][2] and the `--entrypoint` option to [docker
434
+ # run][3]. For more information, see
435
+ # [https://docs.docker.com/engine/reference/builder/#entrypoint][4].
436
+ #
437
+ #
438
+ #
439
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
440
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
441
+ # [3]: https://docs.docker.com/engine/reference/run/
442
+ # [4]: https://docs.docker.com/engine/reference/builder/#entrypoint
443
+ # @return [Array<String>]
444
+ #
445
+ # @!attribute [rw] command
446
+ # The command that is passed to the container. This parameter maps to
447
+ # `Cmd` in the [Create a container][1] section of the [Docker Remote
448
+ # API][2] and the `COMMAND` parameter to [docker run][3]. For more
449
+ # information, see
450
+ # [https://docs.docker.com/engine/reference/builder/#cmd][4].
451
+ #
452
+ #
453
+ #
454
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
455
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
456
+ # [3]: https://docs.docker.com/engine/reference/run/
457
+ # [4]: https://docs.docker.com/engine/reference/builder/#cmd
458
+ # @return [Array<String>]
459
+ #
460
+ # @!attribute [rw] environment
461
+ # The environment variables to pass to a container. This parameter
462
+ # maps to `Env` in the [Create a container][1] section of the [Docker
463
+ # Remote API][2] and the `--env` option to [docker run][3].
464
+ #
465
+ # We do not recommend using plain text environment variables for
466
+ # sensitive information, such as credential data.
467
+ #
468
+ #
469
+ #
470
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
471
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
472
+ # [3]: https://docs.docker.com/engine/reference/run/
473
+ # @return [Array<Types::KeyValuePair>]
474
+ #
475
+ # @!attribute [rw] mount_points
476
+ # The mount points for data volumes in your container. This parameter
477
+ # maps to `Volumes` in the [Create a container][1] section of the
478
+ # [Docker Remote API][2] and the `--volume` option to [docker run][3].
479
+ #
480
+ #
481
+ #
482
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
483
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
484
+ # [3]: https://docs.docker.com/engine/reference/run/
485
+ # @return [Array<Types::MountPoint>]
486
+ #
487
+ # @!attribute [rw] volumes_from
488
+ # Data volumes to mount from another container. This parameter maps to
489
+ # `VolumesFrom` in the [Create a container][1] section of the [Docker
490
+ # Remote API][2] and the `--volumes-from` option to [docker run][3].
491
+ #
492
+ #
493
+ #
494
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
495
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
496
+ # [3]: https://docs.docker.com/engine/reference/run/
497
+ # @return [Array<Types::VolumeFrom>]
498
+ #
499
+ # @!attribute [rw] hostname
500
+ # The hostname to use for your container. This parameter maps to
501
+ # `Hostname` in the [Create a container][1] section of the [Docker
502
+ # Remote API][2] and the `--hostname` option to [docker run][3].
503
+ #
504
+ #
505
+ #
506
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
507
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
508
+ # [3]: https://docs.docker.com/engine/reference/run/
509
+ # @return [String]
510
+ #
511
+ # @!attribute [rw] user
512
+ # The user name to use inside the container. This parameter maps to
513
+ # `User` in the [Create a container][1] section of the [Docker Remote
514
+ # API][2] and the `--user` option to [docker run][3].
515
+ #
516
+ #
517
+ #
518
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
519
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
520
+ # [3]: https://docs.docker.com/engine/reference/run/
521
+ # @return [String]
522
+ #
523
+ # @!attribute [rw] working_directory
524
+ # The working directory in which to run commands inside the container.
525
+ # This parameter maps to `WorkingDir` in the [Create a container][1]
526
+ # section of the [Docker Remote API][2] and the `--workdir` option to
527
+ # [docker run][3].
528
+ #
529
+ #
530
+ #
531
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
532
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
533
+ # [3]: https://docs.docker.com/engine/reference/run/
534
+ # @return [String]
535
+ #
536
+ # @!attribute [rw] disable_networking
537
+ # When this parameter is true, networking is disabled within the
538
+ # container. This parameter maps to `NetworkDisabled` in the [Create a
539
+ # container][1] section of the [Docker Remote API][2].
540
+ #
541
+ #
542
+ #
543
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
544
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
545
+ # @return [Boolean]
546
+ #
547
+ # @!attribute [rw] privileged
548
+ # When this parameter is true, the container is given elevated
549
+ # privileges on the host container instance (similar to the `root`
550
+ # user). This parameter maps to `Privileged` in the [Create a
551
+ # container][1] section of the [Docker Remote API][2] and the
552
+ # `--privileged` option to [docker run][3].
553
+ #
554
+ #
555
+ #
556
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
557
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
558
+ # [3]: https://docs.docker.com/engine/reference/run/
559
+ # @return [Boolean]
560
+ #
561
+ # @!attribute [rw] readonly_root_filesystem
562
+ # When this parameter is true, the container is given read-only access
563
+ # to its root file system. This parameter maps to `ReadonlyRootfs` in
564
+ # the [Create a container][1] section of the [Docker Remote API][2]
565
+ # and the `--read-only` option to `docker run`.
566
+ #
567
+ #
568
+ #
569
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
570
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
571
+ # @return [Boolean]
572
+ #
573
+ # @!attribute [rw] dns_servers
574
+ # A list of DNS servers that are presented to the container. This
575
+ # parameter maps to `Dns` in the [Create a container][1] section of
576
+ # the [Docker Remote API][2] and the `--dns` option to [docker
577
+ # run][3].
578
+ #
579
+ #
580
+ #
581
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
582
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
583
+ # [3]: https://docs.docker.com/engine/reference/run/
584
+ # @return [Array<String>]
585
+ #
586
+ # @!attribute [rw] dns_search_domains
587
+ # A list of DNS search domains that are presented to the container.
588
+ # This parameter maps to `DnsSearch` in the [Create a container][1]
589
+ # section of the [Docker Remote API][2] and the `--dns-search` option
590
+ # to [docker run][3].
591
+ #
592
+ #
593
+ #
594
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
595
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
596
+ # [3]: https://docs.docker.com/engine/reference/run/
597
+ # @return [Array<String>]
598
+ #
599
+ # @!attribute [rw] extra_hosts
600
+ # A list of hostnames and IP address mappings to append to the
601
+ # `/etc/hosts` file on the container. This parameter maps to
602
+ # `ExtraHosts` in the [Create a container][1] section of the [Docker
603
+ # Remote API][2] and the `--add-host` option to [docker run][3].
604
+ #
605
+ #
606
+ #
607
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
608
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
609
+ # [3]: https://docs.docker.com/engine/reference/run/
610
+ # @return [Array<Types::HostEntry>]
611
+ #
612
+ # @!attribute [rw] docker_security_options
613
+ # A list of strings to provide custom labels for SELinux and AppArmor
614
+ # multi-level security systems. This parameter maps to `SecurityOpt`
615
+ # in the [Create a container][1] section of the [Docker Remote API][2]
616
+ # and the `--security-opt` option to [docker run][3].
617
+ #
618
+ # <note markdown="1"> The Amazon ECS container agent running on a container instance must
619
+ # register with the `ECS_SELINUX_CAPABLE=true` or
620
+ # `ECS_APPARMOR_CAPABLE=true` environment variables before containers
621
+ # placed on that instance can use these security options. For more
622
+ # information, see [Amazon ECS Container Agent Configuration][4] in
623
+ # the *Amazon EC2 Container Service Developer Guide*.
624
+ #
625
+ # </note>
626
+ #
627
+ #
628
+ #
629
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
630
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
631
+ # [3]: https://docs.docker.com/engine/reference/run/
632
+ # [4]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
633
+ # @return [Array<String>]
634
+ #
635
+ # @!attribute [rw] docker_labels
636
+ # A key/value map of labels to add to the container. This parameter
637
+ # maps to `Labels` in the [Create a container][1] section of the
638
+ # [Docker Remote API][2] and the `--label` option to [docker run][3].
639
+ # This parameter requires version 1.18 of the Docker Remote API or
640
+ # greater on your container instance. To check the Docker Remote API
641
+ # version on your container instance, log into your container instance
642
+ # and run the following command: `sudo docker version | grep "Server
643
+ # API version"`
644
+ #
645
+ #
646
+ #
647
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
648
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
649
+ # [3]: https://docs.docker.com/engine/reference/run/
650
+ # @return [Hash<String,String>]
651
+ #
652
+ # @!attribute [rw] ulimits
653
+ # A list of `ulimits` to set in the container. This parameter maps to
654
+ # `Ulimits` in the [Create a container][1] section of the [Docker
655
+ # Remote API][2] and the `--ulimit` option to [docker run][3]. Valid
656
+ # naming values are displayed in the Ulimit data type. This parameter
657
+ # requires version 1.18 of the Docker Remote API or greater on your
658
+ # container instance. To check the Docker Remote API version on your
659
+ # container instance, log into your container instance and run the
660
+ # following command: `sudo docker version | grep "Server API version"`
661
+ #
662
+ #
663
+ #
664
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
665
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
666
+ # [3]: https://docs.docker.com/engine/reference/run/
667
+ # @return [Array<Types::Ulimit>]
668
+ #
669
+ # @!attribute [rw] log_configuration
670
+ # The log configuration specification for the container. This
671
+ # parameter maps to `LogConfig` in the [Create a container][1] section
672
+ # of the [Docker Remote API][2] and the `--log-driver` option to
673
+ # [docker run][3]. By default, containers use the same logging driver
674
+ # that the Docker daemon uses; however the container may use a
675
+ # different logging driver than the Docker daemon by specifying a log
676
+ # driver with this parameter in the container definition. To use a
677
+ # different logging driver for a container, the log system must be
678
+ # configured properly on the container instance (or on a different log
679
+ # server for remote logging options). For more information on the
680
+ # options for different supported log drivers, see [Configure logging
681
+ # drivers][4] in the Docker documentation.
682
+ #
683
+ # <note markdown="1"> Amazon ECS currently supports a subset of the logging drivers
684
+ # available to the Docker daemon (shown in the LogConfiguration data
685
+ # type). Currently unsupported log drivers may be available in future
686
+ # releases of the Amazon ECS container agent.
687
+ #
688
+ # </note>
689
+ #
690
+ # This parameter requires version 1.18 of the Docker Remote API or
691
+ # greater on your container instance. To check the Docker Remote API
692
+ # version on your container instance, log into your container instance
693
+ # and run the following command: `sudo docker version | grep "Server
694
+ # API version"`
695
+ #
696
+ # <note markdown="1"> The Amazon ECS container agent running on a container instance must
697
+ # register the logging drivers available on that instance with the
698
+ # `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before
699
+ # containers placed on that instance can use these log configuration
700
+ # options. For more information, see [Amazon ECS Container Agent
701
+ # Configuration][5] in the *Amazon EC2 Container Service Developer
702
+ # Guide*.
703
+ #
704
+ # </note>
705
+ #
706
+ #
707
+ #
708
+ # [1]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container
709
+ # [2]: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/
710
+ # [3]: https://docs.docker.com/engine/reference/run/
711
+ # [4]: https://docs.docker.com/engine/admin/logging/overview/
712
+ # [5]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
713
+ # @return [Types::LogConfiguration]
714
+ class ContainerDefinition < Struct.new(
715
+ :name,
716
+ :image,
717
+ :cpu,
718
+ :memory,
719
+ :memory_reservation,
720
+ :links,
721
+ :port_mappings,
722
+ :essential,
723
+ :entry_point,
724
+ :command,
725
+ :environment,
726
+ :mount_points,
727
+ :volumes_from,
728
+ :hostname,
729
+ :user,
730
+ :working_directory,
731
+ :disable_networking,
732
+ :privileged,
733
+ :readonly_root_filesystem,
734
+ :dns_servers,
735
+ :dns_search_domains,
736
+ :extra_hosts,
737
+ :docker_security_options,
738
+ :docker_labels,
739
+ :ulimits,
740
+ :log_configuration)
741
+ include Aws::Structure
742
+ end
743
+
744
+ # An EC2 instance that is running the Amazon ECS agent and has been
745
+ # registered with a cluster.
746
+ # @!attribute [rw] container_instance_arn
747
+ # The Amazon Resource Name (ARN) of the container instance. The ARN
748
+ # contains the `arn:aws:ecs` namespace, followed by the region of the
749
+ # container instance, the AWS account ID of the container instance
750
+ # owner, the `container-instance` namespace, and then the container
751
+ # instance ID. For example,
752
+ # `arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID
753
+ # `.
754
+ # @return [String]
755
+ #
756
+ # @!attribute [rw] ec2_instance_id
757
+ # The EC2 instance ID of the container instance.
758
+ # @return [String]
759
+ #
760
+ # @!attribute [rw] version
761
+ # The version counter for the container instance. Every time a
762
+ # container instance experiences a change that triggers a CloudWatch
763
+ # event, the version counter is incremented. If you are replicating
764
+ # your Amazon ECS container instance state with CloudWatch events, you
765
+ # can compare the version of a container instance reported by the
766
+ # Amazon ECS APIs with the version reported in CloudWatch events for
767
+ # the container instance (inside the `detail` object) to verify that
768
+ # the version in your event stream is current.
769
+ # @return [Integer]
770
+ #
771
+ # @!attribute [rw] version_info
772
+ # The version information for the Amazon ECS container agent and
773
+ # Docker daemon running on the container instance.
774
+ # @return [Types::VersionInfo]
775
+ #
776
+ # @!attribute [rw] remaining_resources
777
+ # For most resource types, this parameter describes the remaining
778
+ # resources of the container instance that are available for new
779
+ # tasks. For port resource types, this parameter describes the ports
780
+ # that are reserved by the Amazon ECS container agent and any
781
+ # containers that have reserved port mappings; any port that is not
782
+ # specified here is available for new tasks.
783
+ # @return [Array<Types::Resource>]
784
+ #
785
+ # @!attribute [rw] registered_resources
786
+ # For most resource types, this parameter describes the registered
787
+ # resources on the container instance that are in use by current
788
+ # tasks. For port resource types, this parameter describes the ports
789
+ # that were reserved by the Amazon ECS container agent when it
790
+ # registered the container instance with Amazon ECS.
791
+ # @return [Array<Types::Resource>]
792
+ #
793
+ # @!attribute [rw] status
794
+ # The status of the container instance. The valid values are `ACTIVE`
795
+ # or `INACTIVE`. `ACTIVE` indicates that the container instance can
796
+ # accept tasks.
797
+ # @return [String]
798
+ #
799
+ # @!attribute [rw] agent_connected
800
+ # This parameter returns `true` if the agent is actually connected to
801
+ # Amazon ECS. Registered instances with an agent that may be unhealthy
802
+ # or stopped return `false`, and instances without a connected agent
803
+ # cannot accept placement requests.
804
+ # @return [Boolean]
805
+ #
806
+ # @!attribute [rw] running_tasks_count
807
+ # The number of tasks on the container instance that are in the
808
+ # `RUNNING` status.
809
+ # @return [Integer]
810
+ #
811
+ # @!attribute [rw] pending_tasks_count
812
+ # The number of tasks on the container instance that are in the
813
+ # `PENDING` status.
814
+ # @return [Integer]
815
+ #
816
+ # @!attribute [rw] agent_update_status
817
+ # The status of the most recent agent update. If an update has never
818
+ # been requested, this value is `NULL`.
819
+ # @return [String]
820
+ #
821
+ # @!attribute [rw] attributes
822
+ # The attributes set for the container instance by the Amazon ECS
823
+ # container agent at instance registration.
824
+ # @return [Array<Types::Attribute>]
825
+ class ContainerInstance < Struct.new(
826
+ :container_instance_arn,
827
+ :ec2_instance_id,
828
+ :version,
829
+ :version_info,
830
+ :remaining_resources,
831
+ :registered_resources,
832
+ :status,
833
+ :agent_connected,
834
+ :running_tasks_count,
835
+ :pending_tasks_count,
836
+ :agent_update_status,
837
+ :attributes)
838
+ include Aws::Structure
839
+ end
840
+
841
+ # The overrides that should be sent to a container.
842
+ # @note When making an API call, pass ContainerOverride
843
+ # data as a hash:
844
+ #
845
+ # {
846
+ # name: "String",
847
+ # command: ["String"],
848
+ # environment: [
849
+ # {
850
+ # name: "String",
851
+ # value: "String",
852
+ # },
853
+ # ],
854
+ # }
855
+ # @!attribute [rw] name
856
+ # The name of the container that receives the override.
857
+ # @return [String]
858
+ #
859
+ # @!attribute [rw] command
860
+ # The command to send to the container that overrides the default
861
+ # command from the Docker image or the task definition.
862
+ # @return [Array<String>]
863
+ #
864
+ # @!attribute [rw] environment
865
+ # The environment variables to send to the container. You can add new
866
+ # environment variables, which are added to the container at launch,
867
+ # or you can override the existing environment variables from the
868
+ # Docker image or the task definition.
869
+ # @return [Array<Types::KeyValuePair>]
870
+ class ContainerOverride < Struct.new(
871
+ :name,
872
+ :command,
873
+ :environment)
874
+ include Aws::Structure
875
+ end
876
+
877
+ # @note When making an API call, pass CreateClusterRequest
878
+ # data as a hash:
879
+ #
880
+ # {
881
+ # cluster_name: "String",
882
+ # }
883
+ # @!attribute [rw] cluster_name
884
+ # The name of your cluster. If you do not specify a name for your
885
+ # cluster, you create a cluster named `default`. Up to 255 letters
886
+ # (uppercase and lowercase), numbers, hyphens, and underscores are
887
+ # allowed.
888
+ # @return [String]
889
+ class CreateClusterRequest < Struct.new(
890
+ :cluster_name)
891
+ include Aws::Structure
892
+ end
893
+
894
+ # @!attribute [rw] cluster
895
+ # The full description of your new cluster.
896
+ # @return [Types::Cluster]
897
+ class CreateClusterResponse < Struct.new(
898
+ :cluster)
899
+ include Aws::Structure
900
+ end
901
+
902
+ # @note When making an API call, pass CreateServiceRequest
903
+ # data as a hash:
904
+ #
905
+ # {
906
+ # cluster: "String",
907
+ # service_name: "String", # required
908
+ # task_definition: "String", # required
909
+ # load_balancers: [
910
+ # {
911
+ # target_group_arn: "String",
912
+ # load_balancer_name: "String",
913
+ # container_name: "String",
914
+ # container_port: 1,
915
+ # },
916
+ # ],
917
+ # desired_count: 1, # required
918
+ # client_token: "String",
919
+ # role: "String",
920
+ # deployment_configuration: {
921
+ # maximum_percent: 1,
922
+ # minimum_healthy_percent: 1,
923
+ # },
924
+ # }
925
+ # @!attribute [rw] cluster
926
+ # The short name or full Amazon Resource Name (ARN) of the cluster on
927
+ # which to run your service. If you do not specify a cluster, the
928
+ # default cluster is assumed.
929
+ # @return [String]
930
+ #
931
+ # @!attribute [rw] service_name
932
+ # The name of your service. Up to 255 letters (uppercase and
933
+ # lowercase), numbers, hyphens, and underscores are allowed. Service
934
+ # names must be unique within a cluster, but you can have similarly
935
+ # named services in multiple clusters within a region or across
936
+ # multiple regions.
937
+ # @return [String]
938
+ #
939
+ # @!attribute [rw] task_definition
940
+ # The `family` and `revision` (`family:revision`) or full Amazon
941
+ # Resource Name (ARN) of the task definition to run in your service.
942
+ # If a `revision` is not specified, the latest `ACTIVE` revision is
943
+ # used.
944
+ # @return [String]
945
+ #
946
+ # @!attribute [rw] load_balancers
947
+ # A load balancer object representing the load balancer to use with
948
+ # your service. Currently, you are limited to one load balancer per
949
+ # service. After you create a service, the load balancer name,
950
+ # container name, and container port specified in the service
951
+ # definition are immutable.
952
+ #
953
+ # For Elastic Load Balancing Classic load balancers, this object must
954
+ # contain the load balancer name, the container name (as it appears in
955
+ # a container definition), and the container port to access from the
956
+ # load balancer. When a task from this service is placed on a
957
+ # container instance, the container instance is registered with the
958
+ # load balancer specified here.
959
+ #
960
+ # For Elastic Load Balancing Application load balancers, this object
961
+ # must contain the load balancer target group ARN, the container name
962
+ # (as it appears in a container definition), and the container port to
963
+ # access from the load balancer. When a task from this service is
964
+ # placed on a container instance, the container instance and port
965
+ # combination is registered as a target in the target group specified
966
+ # here.
967
+ # @return [Array<Types::LoadBalancer>]
968
+ #
969
+ # @!attribute [rw] desired_count
970
+ # The number of instantiations of the specified task definition to
971
+ # place and keep running on your cluster.
972
+ # @return [Integer]
973
+ #
974
+ # @!attribute [rw] client_token
975
+ # Unique, case-sensitive identifier you provide to ensure the
976
+ # idempotency of the request. Up to 32 ASCII characters are allowed.
977
+ # @return [String]
978
+ #
979
+ # @!attribute [rw] role
980
+ # The name or full Amazon Resource Name (ARN) of the IAM role that
981
+ # allows Amazon ECS to make calls to your load balancer on your
982
+ # behalf. This parameter is required if you are using a load balancer
983
+ # with your service. If you specify the `role` parameter, you must
984
+ # also specify a load balancer object with the `loadBalancers`
985
+ # parameter.
986
+ #
987
+ # If your specified role has a path other than `/`, then you must
988
+ # either specify the full role ARN (this is recommended) or prefix the
989
+ # role name with the path. For example, if a role with the name `bar`
990
+ # has a path of `/foo/` then you would specify `/foo/bar` as the role
991
+ # name. For more information, see [Friendly Names and Paths][1] in the
992
+ # *IAM User Guide*.
993
+ #
994
+ #
995
+ #
996
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names
997
+ # @return [String]
998
+ #
999
+ # @!attribute [rw] deployment_configuration
1000
+ # Optional deployment parameters that control how many tasks run
1001
+ # during the deployment and the ordering of stopping and starting
1002
+ # tasks.
1003
+ # @return [Types::DeploymentConfiguration]
1004
+ class CreateServiceRequest < Struct.new(
1005
+ :cluster,
1006
+ :service_name,
1007
+ :task_definition,
1008
+ :load_balancers,
1009
+ :desired_count,
1010
+ :client_token,
1011
+ :role,
1012
+ :deployment_configuration)
1013
+ include Aws::Structure
1014
+ end
1015
+
1016
+ # @!attribute [rw] service
1017
+ # The full description of your service following the create call.
1018
+ # @return [Types::Service]
1019
+ class CreateServiceResponse < Struct.new(
1020
+ :service)
1021
+ include Aws::Structure
1022
+ end
1023
+
1024
+ # @note When making an API call, pass DeleteClusterRequest
1025
+ # data as a hash:
1026
+ #
1027
+ # {
1028
+ # cluster: "String", # required
1029
+ # }
1030
+ # @!attribute [rw] cluster
1031
+ # The short name or full Amazon Resource Name (ARN) of the cluster to
1032
+ # delete.
1033
+ # @return [String]
1034
+ class DeleteClusterRequest < Struct.new(
1035
+ :cluster)
1036
+ include Aws::Structure
1037
+ end
1038
+
1039
+ # @!attribute [rw] cluster
1040
+ # The full description of the deleted cluster.
1041
+ # @return [Types::Cluster]
1042
+ class DeleteClusterResponse < Struct.new(
1043
+ :cluster)
1044
+ include Aws::Structure
1045
+ end
1046
+
1047
+ # @note When making an API call, pass DeleteServiceRequest
1048
+ # data as a hash:
1049
+ #
1050
+ # {
1051
+ # cluster: "String",
1052
+ # service: "String", # required
1053
+ # }
1054
+ # @!attribute [rw] cluster
1055
+ # The name of the cluster that hosts the service to delete. If you do
1056
+ # not specify a cluster, the default cluster is assumed.
1057
+ # @return [String]
1058
+ #
1059
+ # @!attribute [rw] service
1060
+ # The name of the service to delete.
1061
+ # @return [String]
1062
+ class DeleteServiceRequest < Struct.new(
1063
+ :cluster,
1064
+ :service)
1065
+ include Aws::Structure
1066
+ end
1067
+
1068
+ # @!attribute [rw] service
1069
+ # The full description of the deleted service.
1070
+ # @return [Types::Service]
1071
+ class DeleteServiceResponse < Struct.new(
1072
+ :service)
1073
+ include Aws::Structure
1074
+ end
1075
+
1076
+ # The details of an Amazon ECS service deployment.
1077
+ # @!attribute [rw] id
1078
+ # The ID of the deployment.
1079
+ # @return [String]
1080
+ #
1081
+ # @!attribute [rw] status
1082
+ # The status of the deployment. Valid values are `PRIMARY` (for the
1083
+ # most recent deployment), `ACTIVE` (for previous deployments that
1084
+ # still have tasks running, but are being replaced with the `PRIMARY`
1085
+ # deployment), and `INACTIVE` (for deployments that have been
1086
+ # completely replaced).
1087
+ # @return [String]
1088
+ #
1089
+ # @!attribute [rw] task_definition
1090
+ # The most recent task definition that was specified for the service
1091
+ # to use.
1092
+ # @return [String]
1093
+ #
1094
+ # @!attribute [rw] desired_count
1095
+ # The most recent desired count of tasks that was specified for the
1096
+ # service to deploy or maintain.
1097
+ # @return [Integer]
1098
+ #
1099
+ # @!attribute [rw] pending_count
1100
+ # The number of tasks in the deployment that are in the `PENDING`
1101
+ # status.
1102
+ # @return [Integer]
1103
+ #
1104
+ # @!attribute [rw] running_count
1105
+ # The number of tasks in the deployment that are in the `RUNNING`
1106
+ # status.
1107
+ # @return [Integer]
1108
+ #
1109
+ # @!attribute [rw] created_at
1110
+ # The Unix timestamp for when the service was created.
1111
+ # @return [Time]
1112
+ #
1113
+ # @!attribute [rw] updated_at
1114
+ # The Unix timestamp for when the service was last updated.
1115
+ # @return [Time]
1116
+ class Deployment < Struct.new(
1117
+ :id,
1118
+ :status,
1119
+ :task_definition,
1120
+ :desired_count,
1121
+ :pending_count,
1122
+ :running_count,
1123
+ :created_at,
1124
+ :updated_at)
1125
+ include Aws::Structure
1126
+ end
1127
+
1128
+ # Optional deployment parameters that control how many tasks run during
1129
+ # the deployment and the ordering of stopping and starting tasks.
1130
+ # @note When making an API call, pass DeploymentConfiguration
1131
+ # data as a hash:
1132
+ #
1133
+ # {
1134
+ # maximum_percent: 1,
1135
+ # minimum_healthy_percent: 1,
1136
+ # }
1137
+ # @!attribute [rw] maximum_percent
1138
+ # The upper limit (as a percentage of the service's `desiredCount`)
1139
+ # of the number of tasks that are allowed in the `RUNNING` or
1140
+ # `PENDING` state in a service during a deployment. The maximum number
1141
+ # of tasks during a deployment is the `desiredCount` multiplied by the
1142
+ # `maximumPercent`/100, rounded down to the nearest integer value.
1143
+ # @return [Integer]
1144
+ #
1145
+ # @!attribute [rw] minimum_healthy_percent
1146
+ # The lower limit (as a percentage of the service's `desiredCount`)
1147
+ # of the number of running tasks that must remain in the `RUNNING`
1148
+ # state in a service during a deployment. The minimum healthy tasks
1149
+ # during a deployment is the `desiredCount` multiplied by the
1150
+ # `minimumHealthyPercent`/100, rounded up to the nearest integer
1151
+ # value.
1152
+ # @return [Integer]
1153
+ class DeploymentConfiguration < Struct.new(
1154
+ :maximum_percent,
1155
+ :minimum_healthy_percent)
1156
+ include Aws::Structure
1157
+ end
1158
+
1159
+ # @note When making an API call, pass DeregisterContainerInstanceRequest
1160
+ # data as a hash:
1161
+ #
1162
+ # {
1163
+ # cluster: "String",
1164
+ # container_instance: "String", # required
1165
+ # force: false,
1166
+ # }
1167
+ # @!attribute [rw] cluster
1168
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1169
+ # that hosts the container instance to deregister. If you do not
1170
+ # specify a cluster, the default cluster is assumed.
1171
+ # @return [String]
1172
+ #
1173
+ # @!attribute [rw] container_instance
1174
+ # The container instance ID or full Amazon Resource Name (ARN) of the
1175
+ # container instance to deregister. The ARN contains the `arn:aws:ecs`
1176
+ # namespace, followed by the region of the container instance, the AWS
1177
+ # account ID of the container instance owner, the `container-instance`
1178
+ # namespace, and then the container instance ID. For example,
1179
+ # `arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID
1180
+ # `.
1181
+ # @return [String]
1182
+ #
1183
+ # @!attribute [rw] force
1184
+ # Forces the deregistration of the container instance. If you have
1185
+ # tasks running on the container instance when you deregister it with
1186
+ # the `force` option, these tasks remain running until you terminate
1187
+ # the instance or the tasks stop through some other means, but they
1188
+ # are orphaned (no longer monitored or accounted for by Amazon ECS).
1189
+ # If an orphaned task on your container instance is part of an Amazon
1190
+ # ECS service, then the service scheduler starts another copy of that
1191
+ # task, on a different container instance if possible.
1192
+ #
1193
+ # Any containers in orphaned service tasks that are registered with a
1194
+ # Classic load balancer or an Application load balancer target group
1195
+ # are deregistered, and they will begin connection draining according
1196
+ # to the settings on the load balancer or target group.
1197
+ # @return [Boolean]
1198
+ class DeregisterContainerInstanceRequest < Struct.new(
1199
+ :cluster,
1200
+ :container_instance,
1201
+ :force)
1202
+ include Aws::Structure
1203
+ end
1204
+
1205
+ # @!attribute [rw] container_instance
1206
+ # The container instance that was deregistered.
1207
+ # @return [Types::ContainerInstance]
1208
+ class DeregisterContainerInstanceResponse < Struct.new(
1209
+ :container_instance)
1210
+ include Aws::Structure
1211
+ end
1212
+
1213
+ # @note When making an API call, pass DeregisterTaskDefinitionRequest
1214
+ # data as a hash:
1215
+ #
1216
+ # {
1217
+ # task_definition: "String", # required
1218
+ # }
1219
+ # @!attribute [rw] task_definition
1220
+ # The `family` and `revision` (`family:revision`) or full Amazon
1221
+ # Resource Name (ARN) of the task definition to deregister. You must
1222
+ # specify a `revision`.
1223
+ # @return [String]
1224
+ class DeregisterTaskDefinitionRequest < Struct.new(
1225
+ :task_definition)
1226
+ include Aws::Structure
1227
+ end
1228
+
1229
+ # @!attribute [rw] task_definition
1230
+ # The full description of the deregistered task.
1231
+ # @return [Types::TaskDefinition]
1232
+ class DeregisterTaskDefinitionResponse < Struct.new(
1233
+ :task_definition)
1234
+ include Aws::Structure
1235
+ end
1236
+
1237
+ # @note When making an API call, pass DescribeClustersRequest
1238
+ # data as a hash:
1239
+ #
1240
+ # {
1241
+ # clusters: ["String"],
1242
+ # }
1243
+ # @!attribute [rw] clusters
1244
+ # A space-separated list of up to 100 cluster names or full cluster
1245
+ # Amazon Resource Name (ARN) entries. If you do not specify a cluster,
1246
+ # the default cluster is assumed.
1247
+ # @return [Array<String>]
1248
+ class DescribeClustersRequest < Struct.new(
1249
+ :clusters)
1250
+ include Aws::Structure
1251
+ end
1252
+
1253
+ # @!attribute [rw] clusters
1254
+ # The list of clusters.
1255
+ # @return [Array<Types::Cluster>]
1256
+ #
1257
+ # @!attribute [rw] failures
1258
+ # Any failures associated with the call.
1259
+ # @return [Array<Types::Failure>]
1260
+ class DescribeClustersResponse < Struct.new(
1261
+ :clusters,
1262
+ :failures)
1263
+ include Aws::Structure
1264
+ end
1265
+
1266
+ # @note When making an API call, pass DescribeContainerInstancesRequest
1267
+ # data as a hash:
1268
+ #
1269
+ # {
1270
+ # cluster: "String",
1271
+ # container_instances: ["String"], # required
1272
+ # }
1273
+ # @!attribute [rw] cluster
1274
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1275
+ # that hosts the container instances to describe. If you do not
1276
+ # specify a cluster, the default cluster is assumed.
1277
+ # @return [String]
1278
+ #
1279
+ # @!attribute [rw] container_instances
1280
+ # A space-separated list of container instance IDs or full Amazon
1281
+ # Resource Name (ARN) entries.
1282
+ # @return [Array<String>]
1283
+ class DescribeContainerInstancesRequest < Struct.new(
1284
+ :cluster,
1285
+ :container_instances)
1286
+ include Aws::Structure
1287
+ end
1288
+
1289
+ # @!attribute [rw] container_instances
1290
+ # The list of container instances.
1291
+ # @return [Array<Types::ContainerInstance>]
1292
+ #
1293
+ # @!attribute [rw] failures
1294
+ # Any failures associated with the call.
1295
+ # @return [Array<Types::Failure>]
1296
+ class DescribeContainerInstancesResponse < Struct.new(
1297
+ :container_instances,
1298
+ :failures)
1299
+ include Aws::Structure
1300
+ end
1301
+
1302
+ # @note When making an API call, pass DescribeServicesRequest
1303
+ # data as a hash:
1304
+ #
1305
+ # {
1306
+ # cluster: "String",
1307
+ # services: ["String"], # required
1308
+ # }
1309
+ # @!attribute [rw] cluster
1310
+ # The name of the cluster that hosts the service to describe. If you
1311
+ # do not specify a cluster, the default cluster is assumed.
1312
+ # @return [String]
1313
+ #
1314
+ # @!attribute [rw] services
1315
+ # A list of services to describe. You may specify up to 10 services to
1316
+ # describe in a single operation.
1317
+ # @return [Array<String>]
1318
+ class DescribeServicesRequest < Struct.new(
1319
+ :cluster,
1320
+ :services)
1321
+ include Aws::Structure
1322
+ end
1323
+
1324
+ # @!attribute [rw] services
1325
+ # The list of services described.
1326
+ # @return [Array<Types::Service>]
1327
+ #
1328
+ # @!attribute [rw] failures
1329
+ # Any failures associated with the call.
1330
+ # @return [Array<Types::Failure>]
1331
+ class DescribeServicesResponse < Struct.new(
1332
+ :services,
1333
+ :failures)
1334
+ include Aws::Structure
1335
+ end
1336
+
1337
+ # @note When making an API call, pass DescribeTaskDefinitionRequest
1338
+ # data as a hash:
1339
+ #
1340
+ # {
1341
+ # task_definition: "String", # required
1342
+ # }
1343
+ # @!attribute [rw] task_definition
1344
+ # The `family` for the latest `ACTIVE` revision, `family` and
1345
+ # `revision` (`family:revision`) for a specific revision in the
1346
+ # family, or full Amazon Resource Name (ARN) of the task definition to
1347
+ # describe.
1348
+ # @return [String]
1349
+ class DescribeTaskDefinitionRequest < Struct.new(
1350
+ :task_definition)
1351
+ include Aws::Structure
1352
+ end
1353
+
1354
+ # @!attribute [rw] task_definition
1355
+ # The full task definition description.
1356
+ # @return [Types::TaskDefinition]
1357
+ class DescribeTaskDefinitionResponse < Struct.new(
1358
+ :task_definition)
1359
+ include Aws::Structure
1360
+ end
1361
+
1362
+ # @note When making an API call, pass DescribeTasksRequest
1363
+ # data as a hash:
1364
+ #
1365
+ # {
1366
+ # cluster: "String",
1367
+ # tasks: ["String"], # required
1368
+ # }
1369
+ # @!attribute [rw] cluster
1370
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1371
+ # that hosts the task to describe. If you do not specify a cluster,
1372
+ # the default cluster is assumed.
1373
+ # @return [String]
1374
+ #
1375
+ # @!attribute [rw] tasks
1376
+ # A space-separated list of task IDs or full Amazon Resource Name
1377
+ # (ARN) entries.
1378
+ # @return [Array<String>]
1379
+ class DescribeTasksRequest < Struct.new(
1380
+ :cluster,
1381
+ :tasks)
1382
+ include Aws::Structure
1383
+ end
1384
+
1385
+ # @!attribute [rw] tasks
1386
+ # The list of tasks.
1387
+ # @return [Array<Types::Task>]
1388
+ #
1389
+ # @!attribute [rw] failures
1390
+ # Any failures associated with the call.
1391
+ # @return [Array<Types::Failure>]
1392
+ class DescribeTasksResponse < Struct.new(
1393
+ :tasks,
1394
+ :failures)
1395
+ include Aws::Structure
1396
+ end
1397
+
1398
+ # @note When making an API call, pass DiscoverPollEndpointRequest
1399
+ # data as a hash:
1400
+ #
1401
+ # {
1402
+ # container_instance: "String",
1403
+ # cluster: "String",
1404
+ # }
1405
+ # @!attribute [rw] container_instance
1406
+ # The container instance ID or full Amazon Resource Name (ARN) of the
1407
+ # container instance. The ARN contains the `arn:aws:ecs` namespace,
1408
+ # followed by the region of the container instance, the AWS account ID
1409
+ # of the container instance owner, the `container-instance` namespace,
1410
+ # and then the container instance ID. For example,
1411
+ # `arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID
1412
+ # `.
1413
+ # @return [String]
1414
+ #
1415
+ # @!attribute [rw] cluster
1416
+ # The cluster that the container instance belongs to.
1417
+ # @return [String]
1418
+ class DiscoverPollEndpointRequest < Struct.new(
1419
+ :container_instance,
1420
+ :cluster)
1421
+ include Aws::Structure
1422
+ end
1423
+
1424
+ # @!attribute [rw] endpoint
1425
+ # The endpoint for the Amazon ECS agent to poll.
1426
+ # @return [String]
1427
+ #
1428
+ # @!attribute [rw] telemetry_endpoint
1429
+ # The telemetry endpoint for the Amazon ECS agent.
1430
+ # @return [String]
1431
+ class DiscoverPollEndpointResponse < Struct.new(
1432
+ :endpoint,
1433
+ :telemetry_endpoint)
1434
+ include Aws::Structure
1435
+ end
1436
+
1437
+ # A failed resource.
1438
+ # @!attribute [rw] arn
1439
+ # The Amazon Resource Name (ARN) of the failed resource.
1440
+ # @return [String]
1441
+ #
1442
+ # @!attribute [rw] reason
1443
+ # The reason for the failure.
1444
+ # @return [String]
1445
+ class Failure < Struct.new(
1446
+ :arn,
1447
+ :reason)
1448
+ include Aws::Structure
1449
+ end
1450
+
1451
+ # Hostnames and IP address entries that are added to the `/etc/hosts`
1452
+ # file of a container via the `extraHosts` parameter of its
1453
+ # ContainerDefinition.
1454
+ # @note When making an API call, pass HostEntry
1455
+ # data as a hash:
1456
+ #
1457
+ # {
1458
+ # hostname: "String", # required
1459
+ # ip_address: "String", # required
1460
+ # }
1461
+ # @!attribute [rw] hostname
1462
+ # The hostname to use in the `/etc/hosts` entry.
1463
+ # @return [String]
1464
+ #
1465
+ # @!attribute [rw] ip_address
1466
+ # The IP address to use in the `/etc/hosts` entry.
1467
+ # @return [String]
1468
+ class HostEntry < Struct.new(
1469
+ :hostname,
1470
+ :ip_address)
1471
+ include Aws::Structure
1472
+ end
1473
+
1474
+ # Details on a container instance host volume.
1475
+ # @note When making an API call, pass HostVolumeProperties
1476
+ # data as a hash:
1477
+ #
1478
+ # {
1479
+ # source_path: "String",
1480
+ # }
1481
+ # @!attribute [rw] source_path
1482
+ # The path on the host container instance that is presented to the
1483
+ # container. If this parameter is empty, then the Docker daemon has
1484
+ # assigned a host path for you. If the `host` parameter contains a
1485
+ # `sourcePath` file location, then the data volume persists at the
1486
+ # specified location on the host container instance until you delete
1487
+ # it manually. If the `sourcePath` value does not exist on the host
1488
+ # container instance, the Docker daemon creates it. If the location
1489
+ # does exist, the contents of the source path folder are exported.
1490
+ # @return [String]
1491
+ class HostVolumeProperties < Struct.new(
1492
+ :source_path)
1493
+ include Aws::Structure
1494
+ end
1495
+
1496
+ # A key and value pair object.
1497
+ # @note When making an API call, pass KeyValuePair
1498
+ # data as a hash:
1499
+ #
1500
+ # {
1501
+ # name: "String",
1502
+ # value: "String",
1503
+ # }
1504
+ # @!attribute [rw] name
1505
+ # The name of the key value pair. For environment variables, this is
1506
+ # the name of the environment variable.
1507
+ # @return [String]
1508
+ #
1509
+ # @!attribute [rw] value
1510
+ # The value of the key value pair. For environment variables, this is
1511
+ # the value of the environment variable.
1512
+ # @return [String]
1513
+ class KeyValuePair < Struct.new(
1514
+ :name,
1515
+ :value)
1516
+ include Aws::Structure
1517
+ end
1518
+
1519
+ # @note When making an API call, pass ListClustersRequest
1520
+ # data as a hash:
1521
+ #
1522
+ # {
1523
+ # next_token: "String",
1524
+ # max_results: 1,
1525
+ # }
1526
+ # @!attribute [rw] next_token
1527
+ # The `nextToken` value returned from a previous paginated
1528
+ # `ListClusters` request where `maxResults` was used and the results
1529
+ # exceeded the value of that parameter. Pagination continues from the
1530
+ # end of the previous results that returned the `nextToken` value.
1531
+ # This value is `null` when there are no more results to return.
1532
+ #
1533
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1534
+ # used to retrieve the next items in a list and not for other
1535
+ # programmatic purposes.
1536
+ #
1537
+ # </note>
1538
+ # @return [String]
1539
+ #
1540
+ # @!attribute [rw] max_results
1541
+ # The maximum number of cluster results returned by `ListClusters` in
1542
+ # paginated output. When this parameter is used, `ListClusters` only
1543
+ # returns `maxResults` results in a single page along with a
1544
+ # `nextToken` response element. The remaining results of the initial
1545
+ # request can be seen by sending another `ListClusters` request with
1546
+ # the returned `nextToken` value. This value can be between 1 and 100.
1547
+ # If this parameter is not used, then `ListClusters` returns up to 100
1548
+ # results and a `nextToken` value if applicable.
1549
+ # @return [Integer]
1550
+ class ListClustersRequest < Struct.new(
1551
+ :next_token,
1552
+ :max_results)
1553
+ include Aws::Structure
1554
+ end
1555
+
1556
+ # @!attribute [rw] cluster_arns
1557
+ # The list of full Amazon Resource Name (ARN) entries for each cluster
1558
+ # associated with your account.
1559
+ # @return [Array<String>]
1560
+ #
1561
+ # @!attribute [rw] next_token
1562
+ # The `nextToken` value to include in a future `ListClusters` request.
1563
+ # When the results of a `ListClusters` request exceed `maxResults`,
1564
+ # this value can be used to retrieve the next page of results. This
1565
+ # value is `null` when there are no more results to return.
1566
+ # @return [String]
1567
+ class ListClustersResponse < Struct.new(
1568
+ :cluster_arns,
1569
+ :next_token)
1570
+ include Aws::Structure
1571
+ end
1572
+
1573
+ # @note When making an API call, pass ListContainerInstancesRequest
1574
+ # data as a hash:
1575
+ #
1576
+ # {
1577
+ # cluster: "String",
1578
+ # next_token: "String",
1579
+ # max_results: 1,
1580
+ # }
1581
+ # @!attribute [rw] cluster
1582
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1583
+ # that hosts the container instances to list. If you do not specify a
1584
+ # cluster, the default cluster is assumed.
1585
+ # @return [String]
1586
+ #
1587
+ # @!attribute [rw] next_token
1588
+ # The `nextToken` value returned from a previous paginated
1589
+ # `ListContainerInstances` request where `maxResults` was used and the
1590
+ # results exceeded the value of that parameter. Pagination continues
1591
+ # from the end of the previous results that returned the `nextToken`
1592
+ # value. This value is `null` when there are no more results to
1593
+ # return.
1594
+ #
1595
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1596
+ # used to retrieve the next items in a list and not for other
1597
+ # programmatic purposes.
1598
+ #
1599
+ # </note>
1600
+ # @return [String]
1601
+ #
1602
+ # @!attribute [rw] max_results
1603
+ # The maximum number of container instance results returned by
1604
+ # `ListContainerInstances` in paginated output. When this parameter is
1605
+ # used, `ListContainerInstances` only returns `maxResults` results in
1606
+ # a single page along with a `nextToken` response element. The
1607
+ # remaining results of the initial request can be seen by sending
1608
+ # another `ListContainerInstances` request with the returned
1609
+ # `nextToken` value. This value can be between 1 and 100. If this
1610
+ # parameter is not used, then `ListContainerInstances` returns up to
1611
+ # 100 results and a `nextToken` value if applicable.
1612
+ # @return [Integer]
1613
+ class ListContainerInstancesRequest < Struct.new(
1614
+ :cluster,
1615
+ :next_token,
1616
+ :max_results)
1617
+ include Aws::Structure
1618
+ end
1619
+
1620
+ # @!attribute [rw] container_instance_arns
1621
+ # The list of container instances with full Amazon Resource Name (ARN)
1622
+ # entries for each container instance associated with the specified
1623
+ # cluster.
1624
+ # @return [Array<String>]
1625
+ #
1626
+ # @!attribute [rw] next_token
1627
+ # The `nextToken` value to include in a future
1628
+ # `ListContainerInstances` request. When the results of a
1629
+ # `ListContainerInstances` request exceed `maxResults`, this value can
1630
+ # be used to retrieve the next page of results. This value is `null`
1631
+ # when there are no more results to return.
1632
+ # @return [String]
1633
+ class ListContainerInstancesResponse < Struct.new(
1634
+ :container_instance_arns,
1635
+ :next_token)
1636
+ include Aws::Structure
1637
+ end
1638
+
1639
+ # @note When making an API call, pass ListServicesRequest
1640
+ # data as a hash:
1641
+ #
1642
+ # {
1643
+ # cluster: "String",
1644
+ # next_token: "String",
1645
+ # max_results: 1,
1646
+ # }
1647
+ # @!attribute [rw] cluster
1648
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1649
+ # that hosts the services to list. If you do not specify a cluster,
1650
+ # the default cluster is assumed.
1651
+ # @return [String]
1652
+ #
1653
+ # @!attribute [rw] next_token
1654
+ # The `nextToken` value returned from a previous paginated
1655
+ # `ListServices` request where `maxResults` was used and the results
1656
+ # exceeded the value of that parameter. Pagination continues from the
1657
+ # end of the previous results that returned the `nextToken` value.
1658
+ # This value is `null` when there are no more results to return.
1659
+ #
1660
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1661
+ # used to retrieve the next items in a list and not for other
1662
+ # programmatic purposes.
1663
+ #
1664
+ # </note>
1665
+ # @return [String]
1666
+ #
1667
+ # @!attribute [rw] max_results
1668
+ # The maximum number of container instance results returned by
1669
+ # `ListServices` in paginated output. When this parameter is used,
1670
+ # `ListServices` only returns `maxResults` results in a single page
1671
+ # along with a `nextToken` response element. The remaining results of
1672
+ # the initial request can be seen by sending another `ListServices`
1673
+ # request with the returned `nextToken` value. This value can be
1674
+ # between 1 and 10. If this parameter is not used, then `ListServices`
1675
+ # returns up to 10 results and a `nextToken` value if applicable.
1676
+ # @return [Integer]
1677
+ class ListServicesRequest < Struct.new(
1678
+ :cluster,
1679
+ :next_token,
1680
+ :max_results)
1681
+ include Aws::Structure
1682
+ end
1683
+
1684
+ # @!attribute [rw] service_arns
1685
+ # The list of full Amazon Resource Name (ARN) entries for each service
1686
+ # associated with the specified cluster.
1687
+ # @return [Array<String>]
1688
+ #
1689
+ # @!attribute [rw] next_token
1690
+ # The `nextToken` value to include in a future `ListServices` request.
1691
+ # When the results of a `ListServices` request exceed `maxResults`,
1692
+ # this value can be used to retrieve the next page of results. This
1693
+ # value is `null` when there are no more results to return.
1694
+ # @return [String]
1695
+ class ListServicesResponse < Struct.new(
1696
+ :service_arns,
1697
+ :next_token)
1698
+ include Aws::Structure
1699
+ end
1700
+
1701
+ # @note When making an API call, pass ListTaskDefinitionFamiliesRequest
1702
+ # data as a hash:
1703
+ #
1704
+ # {
1705
+ # family_prefix: "String",
1706
+ # status: "ACTIVE", # accepts ACTIVE, INACTIVE, ALL
1707
+ # next_token: "String",
1708
+ # max_results: 1,
1709
+ # }
1710
+ # @!attribute [rw] family_prefix
1711
+ # The `familyPrefix` is a string that is used to filter the results of
1712
+ # `ListTaskDefinitionFamilies`. If you specify a `familyPrefix`, only
1713
+ # task definition family names that begin with the `familyPrefix`
1714
+ # string are returned.
1715
+ # @return [String]
1716
+ #
1717
+ # @!attribute [rw] status
1718
+ # The task definition family status with which to filter the
1719
+ # `ListTaskDefinitionFamilies` results. By default, both `ACTIVE` and
1720
+ # `INACTIVE` task definition families are listed. If this parameter is
1721
+ # set to `ACTIVE`, only task definition families that have an `ACTIVE`
1722
+ # task definition revision are returned. If this parameter is set to
1723
+ # `INACTIVE`, only task definition families that do not have any
1724
+ # `ACTIVE` task definition revisions are returned. If you paginate the
1725
+ # resulting output, be sure to keep the `status` value constant in
1726
+ # each subsequent request.
1727
+ # @return [String]
1728
+ #
1729
+ # @!attribute [rw] next_token
1730
+ # The `nextToken` value returned from a previous paginated
1731
+ # `ListTaskDefinitionFamilies` request where `maxResults` was used and
1732
+ # the results exceeded the value of that parameter. Pagination
1733
+ # continues from the end of the previous results that returned the
1734
+ # `nextToken` value. This value is `null` when there are no more
1735
+ # results to return.
1736
+ #
1737
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1738
+ # used to retrieve the next items in a list and not for other
1739
+ # programmatic purposes.
1740
+ #
1741
+ # </note>
1742
+ # @return [String]
1743
+ #
1744
+ # @!attribute [rw] max_results
1745
+ # The maximum number of task definition family results returned by
1746
+ # `ListTaskDefinitionFamilies` in paginated output. When this
1747
+ # parameter is used, `ListTaskDefinitions` only returns `maxResults`
1748
+ # results in a single page along with a `nextToken` response element.
1749
+ # The remaining results of the initial request can be seen by sending
1750
+ # another `ListTaskDefinitionFamilies` request with the returned
1751
+ # `nextToken` value. This value can be between 1 and 100. If this
1752
+ # parameter is not used, then `ListTaskDefinitionFamilies` returns up
1753
+ # to 100 results and a `nextToken` value if applicable.
1754
+ # @return [Integer]
1755
+ class ListTaskDefinitionFamiliesRequest < Struct.new(
1756
+ :family_prefix,
1757
+ :status,
1758
+ :next_token,
1759
+ :max_results)
1760
+ include Aws::Structure
1761
+ end
1762
+
1763
+ # @!attribute [rw] families
1764
+ # The list of task definition family names that match the
1765
+ # `ListTaskDefinitionFamilies` request.
1766
+ # @return [Array<String>]
1767
+ #
1768
+ # @!attribute [rw] next_token
1769
+ # The `nextToken` value to include in a future
1770
+ # `ListTaskDefinitionFamilies` request. When the results of a
1771
+ # `ListTaskDefinitionFamilies` request exceed `maxResults`, this value
1772
+ # can be used to retrieve the next page of results. This value is
1773
+ # `null` when there are no more results to return.
1774
+ # @return [String]
1775
+ class ListTaskDefinitionFamiliesResponse < Struct.new(
1776
+ :families,
1777
+ :next_token)
1778
+ include Aws::Structure
1779
+ end
1780
+
1781
+ # @note When making an API call, pass ListTaskDefinitionsRequest
1782
+ # data as a hash:
1783
+ #
1784
+ # {
1785
+ # family_prefix: "String",
1786
+ # status: "ACTIVE", # accepts ACTIVE, INACTIVE
1787
+ # sort: "ASC", # accepts ASC, DESC
1788
+ # next_token: "String",
1789
+ # max_results: 1,
1790
+ # }
1791
+ # @!attribute [rw] family_prefix
1792
+ # The full family name with which to filter the `ListTaskDefinitions`
1793
+ # results. Specifying a `familyPrefix` limits the listed task
1794
+ # definitions to task definition revisions that belong to that family.
1795
+ # @return [String]
1796
+ #
1797
+ # @!attribute [rw] status
1798
+ # The task definition status with which to filter the
1799
+ # `ListTaskDefinitions` results. By default, only `ACTIVE` task
1800
+ # definitions are listed. By setting this parameter to `INACTIVE`, you
1801
+ # can view task definitions that are `INACTIVE` as long as an active
1802
+ # task or service still references them. If you paginate the resulting
1803
+ # output, be sure to keep the `status` value constant in each
1804
+ # subsequent request.
1805
+ # @return [String]
1806
+ #
1807
+ # @!attribute [rw] sort
1808
+ # The order in which to sort the results. Valid values are `ASC` and
1809
+ # `DESC`. By default (`ASC`), task definitions are listed
1810
+ # lexicographically by family name and in ascending numerical order by
1811
+ # revision so that the newest task definitions in a family are listed
1812
+ # last. Setting this parameter to `DESC` reverses the sort order on
1813
+ # family name and revision so that the newest task definitions in a
1814
+ # family are listed first.
1815
+ # @return [String]
1816
+ #
1817
+ # @!attribute [rw] next_token
1818
+ # The `nextToken` value returned from a previous paginated
1819
+ # `ListTaskDefinitions` request where `maxResults` was used and the
1820
+ # results exceeded the value of that parameter. Pagination continues
1821
+ # from the end of the previous results that returned the `nextToken`
1822
+ # value. This value is `null` when there are no more results to
1823
+ # return.
1824
+ #
1825
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1826
+ # used to retrieve the next items in a list and not for other
1827
+ # programmatic purposes.
1828
+ #
1829
+ # </note>
1830
+ # @return [String]
1831
+ #
1832
+ # @!attribute [rw] max_results
1833
+ # The maximum number of task definition results returned by
1834
+ # `ListTaskDefinitions` in paginated output. When this parameter is
1835
+ # used, `ListTaskDefinitions` only returns `maxResults` results in a
1836
+ # single page along with a `nextToken` response element. The remaining
1837
+ # results of the initial request can be seen by sending another
1838
+ # `ListTaskDefinitions` request with the returned `nextToken` value.
1839
+ # This value can be between 1 and 100. If this parameter is not used,
1840
+ # then `ListTaskDefinitions` returns up to 100 results and a
1841
+ # `nextToken` value if applicable.
1842
+ # @return [Integer]
1843
+ class ListTaskDefinitionsRequest < Struct.new(
1844
+ :family_prefix,
1845
+ :status,
1846
+ :sort,
1847
+ :next_token,
1848
+ :max_results)
1849
+ include Aws::Structure
1850
+ end
1851
+
1852
+ # @!attribute [rw] task_definition_arns
1853
+ # The list of task definition Amazon Resource Name (ARN) entries for
1854
+ # the `ListTaskDefinitions` request.
1855
+ # @return [Array<String>]
1856
+ #
1857
+ # @!attribute [rw] next_token
1858
+ # The `nextToken` value to include in a future `ListTaskDefinitions`
1859
+ # request. When the results of a `ListTaskDefinitions` request exceed
1860
+ # `maxResults`, this value can be used to retrieve the next page of
1861
+ # results. This value is `null` when there are no more results to
1862
+ # return.
1863
+ # @return [String]
1864
+ class ListTaskDefinitionsResponse < Struct.new(
1865
+ :task_definition_arns,
1866
+ :next_token)
1867
+ include Aws::Structure
1868
+ end
1869
+
1870
+ # @note When making an API call, pass ListTasksRequest
1871
+ # data as a hash:
1872
+ #
1873
+ # {
1874
+ # cluster: "String",
1875
+ # container_instance: "String",
1876
+ # family: "String",
1877
+ # next_token: "String",
1878
+ # max_results: 1,
1879
+ # started_by: "String",
1880
+ # service_name: "String",
1881
+ # desired_status: "RUNNING", # accepts RUNNING, PENDING, STOPPED
1882
+ # }
1883
+ # @!attribute [rw] cluster
1884
+ # The short name or full Amazon Resource Name (ARN) of the cluster
1885
+ # that hosts the tasks to list. If you do not specify a cluster, the
1886
+ # default cluster is assumed.
1887
+ # @return [String]
1888
+ #
1889
+ # @!attribute [rw] container_instance
1890
+ # The container instance ID or full Amazon Resource Name (ARN) of the
1891
+ # container instance with which to filter the `ListTasks` results.
1892
+ # Specifying a `containerInstance` limits the results to tasks that
1893
+ # belong to that container instance.
1894
+ # @return [String]
1895
+ #
1896
+ # @!attribute [rw] family
1897
+ # The name of the family with which to filter the `ListTasks` results.
1898
+ # Specifying a `family` limits the results to tasks that belong to
1899
+ # that family.
1900
+ # @return [String]
1901
+ #
1902
+ # @!attribute [rw] next_token
1903
+ # The `nextToken` value returned from a previous paginated `ListTasks`
1904
+ # request where `maxResults` was used and the results exceeded the
1905
+ # value of that parameter. Pagination continues from the end of the
1906
+ # previous results that returned the `nextToken` value. This value is
1907
+ # `null` when there are no more results to return.
1908
+ #
1909
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
1910
+ # used to retrieve the next items in a list and not for other
1911
+ # programmatic purposes.
1912
+ #
1913
+ # </note>
1914
+ # @return [String]
1915
+ #
1916
+ # @!attribute [rw] max_results
1917
+ # The maximum number of task results returned by `ListTasks` in
1918
+ # paginated output. When this parameter is used, `ListTasks` only
1919
+ # returns `maxResults` results in a single page along with a
1920
+ # `nextToken` response element. The remaining results of the initial
1921
+ # request can be seen by sending another `ListTasks` request with the
1922
+ # returned `nextToken` value. This value can be between 1 and 100. If
1923
+ # this parameter is not used, then `ListTasks` returns up to 100
1924
+ # results and a `nextToken` value if applicable.
1925
+ # @return [Integer]
1926
+ #
1927
+ # @!attribute [rw] started_by
1928
+ # The `startedBy` value with which to filter the task results.
1929
+ # Specifying a `startedBy` value limits the results to tasks that were
1930
+ # started with that value.
1931
+ # @return [String]
1932
+ #
1933
+ # @!attribute [rw] service_name
1934
+ # The name of the service with which to filter the `ListTasks`
1935
+ # results. Specifying a `serviceName` limits the results to tasks that
1936
+ # belong to that service.
1937
+ # @return [String]
1938
+ #
1939
+ # @!attribute [rw] desired_status
1940
+ # The task desired status with which to filter the `ListTasks`
1941
+ # results. Specifying a `desiredStatus` of `STOPPED` limits the
1942
+ # results to tasks that ECS has set the desired status to `STOPPED`,
1943
+ # which can be useful for debugging tasks that are not starting
1944
+ # properly or have died or finished. The default status filter is
1945
+ # `RUNNING`, which shows tasks that ECS has set the desired status to
1946
+ # `RUNNING`.
1947
+ #
1948
+ # <note markdown="1"> Although you can filter results based on a desired status of
1949
+ # `PENDING`, this will not return any results because ECS never sets
1950
+ # the desired status of a task to that value (only a task's
1951
+ # `lastStatus` may have a value of `PENDING`).
1952
+ #
1953
+ # </note>
1954
+ # @return [String]
1955
+ class ListTasksRequest < Struct.new(
1956
+ :cluster,
1957
+ :container_instance,
1958
+ :family,
1959
+ :next_token,
1960
+ :max_results,
1961
+ :started_by,
1962
+ :service_name,
1963
+ :desired_status)
1964
+ include Aws::Structure
1965
+ end
1966
+
1967
+ # @!attribute [rw] task_arns
1968
+ # The list of task Amazon Resource Name (ARN) entries for the
1969
+ # `ListTasks` request.
1970
+ # @return [Array<String>]
1971
+ #
1972
+ # @!attribute [rw] next_token
1973
+ # The `nextToken` value to include in a future `ListTasks` request.
1974
+ # When the results of a `ListTasks` request exceed `maxResults`, this
1975
+ # value can be used to retrieve the next page of results. This value
1976
+ # is `null` when there are no more results to return.
1977
+ # @return [String]
1978
+ class ListTasksResponse < Struct.new(
1979
+ :task_arns,
1980
+ :next_token)
1981
+ include Aws::Structure
1982
+ end
1983
+
1984
+ # Details on a load balancer that is used with a service.
1985
+ # @note When making an API call, pass LoadBalancer
1986
+ # data as a hash:
1987
+ #
1988
+ # {
1989
+ # target_group_arn: "String",
1990
+ # load_balancer_name: "String",
1991
+ # container_name: "String",
1992
+ # container_port: 1,
1993
+ # }
1994
+ # @!attribute [rw] target_group_arn
1995
+ # The full Amazon Resource Name (ARN) of the Elastic Load Balancing
1996
+ # target group associated with a service.
1997
+ # @return [String]
1998
+ #
1999
+ # @!attribute [rw] load_balancer_name
2000
+ # The name of the load balancer.
2001
+ # @return [String]
2002
+ #
2003
+ # @!attribute [rw] container_name
2004
+ # The name of the container (as it appears in a container definition)
2005
+ # to associate with the load balancer.
2006
+ # @return [String]
2007
+ #
2008
+ # @!attribute [rw] container_port
2009
+ # The port on the container to associate with the load balancer. This
2010
+ # port must correspond to a `containerPort` in the service's task
2011
+ # definition. Your container instances must allow ingress traffic on
2012
+ # the `hostPort` of the port mapping.
2013
+ # @return [Integer]
2014
+ class LoadBalancer < Struct.new(
2015
+ :target_group_arn,
2016
+ :load_balancer_name,
2017
+ :container_name,
2018
+ :container_port)
2019
+ include Aws::Structure
2020
+ end
2021
+
2022
+ # Log configuration options to send to a custom log driver for the
2023
+ # container.
2024
+ # @note When making an API call, pass LogConfiguration
2025
+ # data as a hash:
2026
+ #
2027
+ # {
2028
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk
2029
+ # options: {
2030
+ # "String" => "String",
2031
+ # },
2032
+ # }
2033
+ # @!attribute [rw] log_driver
2034
+ # The log driver to use for the container. The valid values listed for
2035
+ # this parameter are log drivers that the Amazon ECS container agent
2036
+ # can communicate with by default.
2037
+ #
2038
+ # <note markdown="1"> If you have a custom driver that is not listed above that you would
2039
+ # like to work with the Amazon ECS container agent, you can fork the
2040
+ # Amazon ECS container agent project that is [available on GitHub][1]
2041
+ # and customize it to work with that driver. We encourage you to
2042
+ # submit pull requests for changes that you would like to have
2043
+ # included. However, Amazon Web Services does not currently provide
2044
+ # support for running modified copies of this software.
2045
+ #
2046
+ # </note>
2047
+ #
2048
+ # This parameter requires version 1.18 of the Docker Remote API or
2049
+ # greater on your container instance. To check the Docker Remote API
2050
+ # version on your container instance, log into your container instance
2051
+ # and run the following command: `sudo docker version | grep "Server
2052
+ # API version"`
2053
+ #
2054
+ #
2055
+ #
2056
+ # [1]: https://github.com/aws/amazon-ecs-agent
2057
+ # @return [String]
2058
+ #
2059
+ # @!attribute [rw] options
2060
+ # The configuration options to send to the log driver. This parameter
2061
+ # requires version 1.19 of the Docker Remote API or greater on your
2062
+ # container instance. To check the Docker Remote API version on your
2063
+ # container instance, log into your container instance and run the
2064
+ # following command: `sudo docker version | grep "Server API version"`
2065
+ # @return [Hash<String,String>]
2066
+ class LogConfiguration < Struct.new(
2067
+ :log_driver,
2068
+ :options)
2069
+ include Aws::Structure
2070
+ end
2071
+
2072
+ # Details on a volume mount point that is used in a container
2073
+ # definition.
2074
+ # @note When making an API call, pass MountPoint
2075
+ # data as a hash:
2076
+ #
2077
+ # {
2078
+ # source_volume: "String",
2079
+ # container_path: "String",
2080
+ # read_only: false,
2081
+ # }
2082
+ # @!attribute [rw] source_volume
2083
+ # The name of the volume to mount.
2084
+ # @return [String]
2085
+ #
2086
+ # @!attribute [rw] container_path
2087
+ # The path on the container to mount the host volume at.
2088
+ # @return [String]
2089
+ #
2090
+ # @!attribute [rw] read_only
2091
+ # If this value is `true`, the container has read-only access to the
2092
+ # volume. If this value is `false`, then the container can write to
2093
+ # the volume. The default value is `false`.
2094
+ # @return [Boolean]
2095
+ class MountPoint < Struct.new(
2096
+ :source_volume,
2097
+ :container_path,
2098
+ :read_only)
2099
+ include Aws::Structure
2100
+ end
2101
+
2102
+ # Details on the network bindings between a container and its host
2103
+ # container instance. After a task reaches the `RUNNING` status, manual
2104
+ # and automatic host and container port assignments are visible in the
2105
+ # `networkBindings` section of DescribeTasks API responses.
2106
+ # @note When making an API call, pass NetworkBinding
2107
+ # data as a hash:
2108
+ #
2109
+ # {
2110
+ # bind_ip: "String",
2111
+ # container_port: 1,
2112
+ # host_port: 1,
2113
+ # protocol: "tcp", # accepts tcp, udp
2114
+ # }
2115
+ # @!attribute [rw] bind_ip
2116
+ # The IP address that the container is bound to on the container
2117
+ # instance.
2118
+ # @return [String]
2119
+ #
2120
+ # @!attribute [rw] container_port
2121
+ # The port number on the container that is be used with the network
2122
+ # binding.
2123
+ # @return [Integer]
2124
+ #
2125
+ # @!attribute [rw] host_port
2126
+ # The port number on the host that is used with the network binding.
2127
+ # @return [Integer]
2128
+ #
2129
+ # @!attribute [rw] protocol
2130
+ # The protocol used for the network binding.
2131
+ # @return [String]
2132
+ class NetworkBinding < Struct.new(
2133
+ :bind_ip,
2134
+ :container_port,
2135
+ :host_port,
2136
+ :protocol)
2137
+ include Aws::Structure
2138
+ end
2139
+
2140
+ # Port mappings allow containers to access ports on the host container
2141
+ # instance to send or receive traffic. Port mappings are specified as
2142
+ # part of the container definition. After a task reaches the `RUNNING`
2143
+ # status, manual and automatic host and container port assignments are
2144
+ # visible in the `networkBindings` section of DescribeTasks API
2145
+ # responses.
2146
+ # @note When making an API call, pass PortMapping
2147
+ # data as a hash:
2148
+ #
2149
+ # {
2150
+ # container_port: 1,
2151
+ # host_port: 1,
2152
+ # protocol: "tcp", # accepts tcp, udp
2153
+ # }
2154
+ # @!attribute [rw] container_port
2155
+ # The port number on the container that is bound to the user-specified
2156
+ # or automatically assigned host port. If you specify a container port
2157
+ # and not a host port, your container automatically receives a host
2158
+ # port in the ephemeral port range (for more information, see
2159
+ # `hostPort`). Port mappings that are automatically assigned in this
2160
+ # way do not count toward the 100 reserved ports limit of a container
2161
+ # instance.
2162
+ # @return [Integer]
2163
+ #
2164
+ # @!attribute [rw] host_port
2165
+ # The port number on the container instance to reserve for your
2166
+ # container. You can specify a non-reserved host port for your
2167
+ # container port mapping, or you can omit the `hostPort` (or set it to
2168
+ # `0`) while specifying a `containerPort` and your container
2169
+ # automatically receives a port in the ephemeral port range for your
2170
+ # container instance operating system and Docker version.
2171
+ #
2172
+ # The default ephemeral port range is 49153 to 65535, and this range
2173
+ # is used for Docker versions prior to 1.6.0. For Docker version 1.6.0
2174
+ # and later, the Docker daemon tries to read the ephemeral port range
2175
+ # from `/proc/sys/net/ipv4/ip_local_port_range`; if this kernel
2176
+ # parameter is unavailable, the default ephemeral port range is used.
2177
+ # You should not attempt to specify a host port in the ephemeral port
2178
+ # range, because these are reserved for automatic assignment. In
2179
+ # general, ports below 32768 are outside of the ephemeral port range.
2180
+ #
2181
+ # The default reserved ports are 22 for SSH, the Docker ports 2375 and
2182
+ # 2376, and the Amazon ECS container agent ports 51678 and 51679. Any
2183
+ # host port that was previously specified in a running task is also
2184
+ # reserved while the task is running (after a task stops, the host
2185
+ # port is released).The current reserved ports are displayed in the
2186
+ # `remainingResources` of DescribeContainerInstances output, and a
2187
+ # container instance may have up to 100 reserved ports at a time,
2188
+ # including the default reserved ports (automatically assigned ports
2189
+ # do not count toward the 100 reserved ports limit).
2190
+ # @return [Integer]
2191
+ #
2192
+ # @!attribute [rw] protocol
2193
+ # The protocol used for the port mapping. Valid values are `tcp` and
2194
+ # `udp`. The default is `tcp`.
2195
+ # @return [String]
2196
+ class PortMapping < Struct.new(
2197
+ :container_port,
2198
+ :host_port,
2199
+ :protocol)
2200
+ include Aws::Structure
2201
+ end
2202
+
2203
+ # @note When making an API call, pass RegisterContainerInstanceRequest
2204
+ # data as a hash:
2205
+ #
2206
+ # {
2207
+ # cluster: "String",
2208
+ # instance_identity_document: "String",
2209
+ # instance_identity_document_signature: "String",
2210
+ # total_resources: [
2211
+ # {
2212
+ # name: "String",
2213
+ # type: "String",
2214
+ # double_value: 1.0,
2215
+ # long_value: 1,
2216
+ # integer_value: 1,
2217
+ # string_set_value: ["String"],
2218
+ # },
2219
+ # ],
2220
+ # version_info: {
2221
+ # agent_version: "String",
2222
+ # agent_hash: "String",
2223
+ # docker_version: "String",
2224
+ # },
2225
+ # container_instance_arn: "String",
2226
+ # attributes: [
2227
+ # {
2228
+ # name: "String", # required
2229
+ # value: "String",
2230
+ # },
2231
+ # ],
2232
+ # }
2233
+ # @!attribute [rw] cluster
2234
+ # The short name or full Amazon Resource Name (ARN) of the cluster
2235
+ # with which to register your container instance. If you do not
2236
+ # specify a cluster, the default cluster is assumed.
2237
+ # @return [String]
2238
+ #
2239
+ # @!attribute [rw] instance_identity_document
2240
+ # The instance identity document for the EC2 instance to register.
2241
+ # This document can be found by running the following command from the
2242
+ # instance: `curl
2243
+ # http://169.254.169.254/latest/dynamic/instance-identity/document/`
2244
+ # @return [String]
2245
+ #
2246
+ # @!attribute [rw] instance_identity_document_signature
2247
+ # The instance identity document signature for the EC2 instance to
2248
+ # register. This signature can be found by running the following
2249
+ # command from the instance: `curl
2250
+ # http://169.254.169.254/latest/dynamic/instance-identity/signature/`
2251
+ # @return [String]
2252
+ #
2253
+ # @!attribute [rw] total_resources
2254
+ # The resources available on the instance.
2255
+ # @return [Array<Types::Resource>]
2256
+ #
2257
+ # @!attribute [rw] version_info
2258
+ # The version information for the Amazon ECS container agent and
2259
+ # Docker daemon running on the container instance.
2260
+ # @return [Types::VersionInfo]
2261
+ #
2262
+ # @!attribute [rw] container_instance_arn
2263
+ # The Amazon Resource Name (ARN) of the container instance (if it was
2264
+ # previously registered).
2265
+ # @return [String]
2266
+ #
2267
+ # @!attribute [rw] attributes
2268
+ # The container instance attributes that this container instance
2269
+ # supports.
2270
+ # @return [Array<Types::Attribute>]
2271
+ class RegisterContainerInstanceRequest < Struct.new(
2272
+ :cluster,
2273
+ :instance_identity_document,
2274
+ :instance_identity_document_signature,
2275
+ :total_resources,
2276
+ :version_info,
2277
+ :container_instance_arn,
2278
+ :attributes)
2279
+ include Aws::Structure
2280
+ end
2281
+
2282
+ # @!attribute [rw] container_instance
2283
+ # The container instance that was registered.
2284
+ # @return [Types::ContainerInstance]
2285
+ class RegisterContainerInstanceResponse < Struct.new(
2286
+ :container_instance)
2287
+ include Aws::Structure
2288
+ end
2289
+
2290
+ # @note When making an API call, pass RegisterTaskDefinitionRequest
2291
+ # data as a hash:
2292
+ #
2293
+ # {
2294
+ # family: "String", # required
2295
+ # task_role_arn: "String",
2296
+ # network_mode: "bridge", # accepts bridge, host, none
2297
+ # container_definitions: [ # required
2298
+ # {
2299
+ # name: "String",
2300
+ # image: "String",
2301
+ # cpu: 1,
2302
+ # memory: 1,
2303
+ # memory_reservation: 1,
2304
+ # links: ["String"],
2305
+ # port_mappings: [
2306
+ # {
2307
+ # container_port: 1,
2308
+ # host_port: 1,
2309
+ # protocol: "tcp", # accepts tcp, udp
2310
+ # },
2311
+ # ],
2312
+ # essential: false,
2313
+ # entry_point: ["String"],
2314
+ # command: ["String"],
2315
+ # environment: [
2316
+ # {
2317
+ # name: "String",
2318
+ # value: "String",
2319
+ # },
2320
+ # ],
2321
+ # mount_points: [
2322
+ # {
2323
+ # source_volume: "String",
2324
+ # container_path: "String",
2325
+ # read_only: false,
2326
+ # },
2327
+ # ],
2328
+ # volumes_from: [
2329
+ # {
2330
+ # source_container: "String",
2331
+ # read_only: false,
2332
+ # },
2333
+ # ],
2334
+ # hostname: "String",
2335
+ # user: "String",
2336
+ # working_directory: "String",
2337
+ # disable_networking: false,
2338
+ # privileged: false,
2339
+ # readonly_root_filesystem: false,
2340
+ # dns_servers: ["String"],
2341
+ # dns_search_domains: ["String"],
2342
+ # extra_hosts: [
2343
+ # {
2344
+ # hostname: "String", # required
2345
+ # ip_address: "String", # required
2346
+ # },
2347
+ # ],
2348
+ # docker_security_options: ["String"],
2349
+ # docker_labels: {
2350
+ # "String" => "String",
2351
+ # },
2352
+ # ulimits: [
2353
+ # {
2354
+ # name: "core", # required, accepts core, cpu, data, fsize, locks, memlock, msgqueue, nice, nofile, nproc, rss, rtprio, rttime, sigpending, stack
2355
+ # soft_limit: 1, # required
2356
+ # hard_limit: 1, # required
2357
+ # },
2358
+ # ],
2359
+ # log_configuration: {
2360
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk
2361
+ # options: {
2362
+ # "String" => "String",
2363
+ # },
2364
+ # },
2365
+ # },
2366
+ # ],
2367
+ # volumes: [
2368
+ # {
2369
+ # name: "String",
2370
+ # host: {
2371
+ # source_path: "String",
2372
+ # },
2373
+ # },
2374
+ # ],
2375
+ # }
2376
+ # @!attribute [rw] family
2377
+ # You must specify a `family` for a task definition, which allows you
2378
+ # to track multiple versions of the same task definition. The `family`
2379
+ # is used as a name for your task definition. Up to 255 letters
2380
+ # (uppercase and lowercase), numbers, hyphens, and underscores are
2381
+ # allowed.
2382
+ # @return [String]
2383
+ #
2384
+ # @!attribute [rw] task_role_arn
2385
+ # The short name or full Amazon Resource Name (ARN) of the IAM role
2386
+ # that containers in this task can assume. All containers in this task
2387
+ # are granted the permissions that are specified in this role. For
2388
+ # more information, see [IAM Roles for Tasks][1] in the *Amazon EC2
2389
+ # Container Service Developer Guide*.
2390
+ #
2391
+ #
2392
+ #
2393
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
2394
+ # @return [String]
2395
+ #
2396
+ # @!attribute [rw] network_mode
2397
+ # The Docker networking mode to use for the containers in the task.
2398
+ # The valid values are `none`, `bridge`, and `host`.
2399
+ #
2400
+ # The default Docker network mode is `bridge`. If the network mode is
2401
+ # set to `none`, you cannot specify port mappings in your container
2402
+ # definitions, and the task's containers do not have external
2403
+ # connectivity. The `host` network mode offers the highest networking
2404
+ # performance for containers because they use the host network stack
2405
+ # instead of the virtualized network stack provided by the `bridge`
2406
+ # mode; however, exposed container ports are mapped directly to the
2407
+ # corresponding host port, so you cannot take advantage of dynamic
2408
+ # host port mappings or run multiple instantiations of the same task
2409
+ # on a single container instance if port mappings are used.
2410
+ #
2411
+ # For more information, see [Network settings][1] in the *Docker run
2412
+ # reference*.
2413
+ #
2414
+ #
2415
+ #
2416
+ # [1]: https://docs.docker.com/engine/reference/run/#network-settings
2417
+ # @return [String]
2418
+ #
2419
+ # @!attribute [rw] container_definitions
2420
+ # A list of container definitions in JSON format that describe the
2421
+ # different containers that make up your task.
2422
+ # @return [Array<Types::ContainerDefinition>]
2423
+ #
2424
+ # @!attribute [rw] volumes
2425
+ # A list of volume definitions in JSON format that containers in your
2426
+ # task may use.
2427
+ # @return [Array<Types::Volume>]
2428
+ class RegisterTaskDefinitionRequest < Struct.new(
2429
+ :family,
2430
+ :task_role_arn,
2431
+ :network_mode,
2432
+ :container_definitions,
2433
+ :volumes)
2434
+ include Aws::Structure
2435
+ end
2436
+
2437
+ # @!attribute [rw] task_definition
2438
+ # The full description of the registered task definition.
2439
+ # @return [Types::TaskDefinition]
2440
+ class RegisterTaskDefinitionResponse < Struct.new(
2441
+ :task_definition)
2442
+ include Aws::Structure
2443
+ end
2444
+
2445
+ # Describes the resources available for a container instance.
2446
+ # @note When making an API call, pass Resource
2447
+ # data as a hash:
2448
+ #
2449
+ # {
2450
+ # name: "String",
2451
+ # type: "String",
2452
+ # double_value: 1.0,
2453
+ # long_value: 1,
2454
+ # integer_value: 1,
2455
+ # string_set_value: ["String"],
2456
+ # }
2457
+ # @!attribute [rw] name
2458
+ # The name of the resource, such as `CPU`, `MEMORY`, `PORTS`, or a
2459
+ # user-defined resource.
2460
+ # @return [String]
2461
+ #
2462
+ # @!attribute [rw] type
2463
+ # The type of the resource, such as `INTEGER`, `DOUBLE`, `LONG`, or
2464
+ # `STRINGSET`.
2465
+ # @return [String]
2466
+ #
2467
+ # @!attribute [rw] double_value
2468
+ # When the `doubleValue` type is set, the value of the resource must
2469
+ # be a double precision floating-point type.
2470
+ # @return [Float]
2471
+ #
2472
+ # @!attribute [rw] long_value
2473
+ # When the `longValue` type is set, the value of the resource must be
2474
+ # an extended precision floating-point type.
2475
+ # @return [Integer]
2476
+ #
2477
+ # @!attribute [rw] integer_value
2478
+ # When the `integerValue` type is set, the value of the resource must
2479
+ # be an integer.
2480
+ # @return [Integer]
2481
+ #
2482
+ # @!attribute [rw] string_set_value
2483
+ # When the `stringSetValue` type is set, the value of the resource
2484
+ # must be a string type.
2485
+ # @return [Array<String>]
2486
+ class Resource < Struct.new(
2487
+ :name,
2488
+ :type,
2489
+ :double_value,
2490
+ :long_value,
2491
+ :integer_value,
2492
+ :string_set_value)
2493
+ include Aws::Structure
2494
+ end
2495
+
2496
+ # @note When making an API call, pass RunTaskRequest
2497
+ # data as a hash:
2498
+ #
2499
+ # {
2500
+ # cluster: "String",
2501
+ # task_definition: "String", # required
2502
+ # overrides: {
2503
+ # container_overrides: [
2504
+ # {
2505
+ # name: "String",
2506
+ # command: ["String"],
2507
+ # environment: [
2508
+ # {
2509
+ # name: "String",
2510
+ # value: "String",
2511
+ # },
2512
+ # ],
2513
+ # },
2514
+ # ],
2515
+ # task_role_arn: "String",
2516
+ # },
2517
+ # count: 1,
2518
+ # started_by: "String",
2519
+ # }
2520
+ # @!attribute [rw] cluster
2521
+ # The short name or full Amazon Resource Name (ARN) of the cluster on
2522
+ # which to run your task. If you do not specify a cluster, the default
2523
+ # cluster is assumed.
2524
+ # @return [String]
2525
+ #
2526
+ # @!attribute [rw] task_definition
2527
+ # The `family` and `revision` (`family:revision`) or full Amazon
2528
+ # Resource Name (ARN) of the task definition to run. If a `revision`
2529
+ # is not specified, the latest `ACTIVE` revision is used.
2530
+ # @return [String]
2531
+ #
2532
+ # @!attribute [rw] overrides
2533
+ # A list of container overrides in JSON format that specify the name
2534
+ # of a container in the specified task definition and the overrides it
2535
+ # should receive. You can override the default command for a container
2536
+ # (that is specified in the task definition or Docker image) with a
2537
+ # `command` override. You can also override existing environment
2538
+ # variables (that are specified in the task definition or Docker
2539
+ # image) on a container or add new environment variables to it with an
2540
+ # `environment` override.
2541
+ #
2542
+ # <note markdown="1"> A total of 8192 characters are allowed for overrides. This limit
2543
+ # includes the JSON formatting characters of the override structure.
2544
+ #
2545
+ # </note>
2546
+ # @return [Types::TaskOverride]
2547
+ #
2548
+ # @!attribute [rw] count
2549
+ # The number of instantiations of the specified task to place on your
2550
+ # cluster.
2551
+ #
2552
+ # The `count` parameter is limited to 10 tasks per call.
2553
+ # @return [Integer]
2554
+ #
2555
+ # @!attribute [rw] started_by
2556
+ # An optional tag specified when a task is started. For example if you
2557
+ # automatically trigger a task to run a batch process job, you could
2558
+ # apply a unique identifier for that job to your task with the
2559
+ # `startedBy` parameter. You can then identify which tasks belong to
2560
+ # that job by filtering the results of a ListTasks call with the
2561
+ # `startedBy` value. Up to 36 letters (uppercase and lowercase),
2562
+ # numbers, hyphens, and underscores are allowed.
2563
+ #
2564
+ # If a task is started by an Amazon ECS service, then the `startedBy`
2565
+ # parameter contains the deployment ID of the service that starts it.
2566
+ # @return [String]
2567
+ class RunTaskRequest < Struct.new(
2568
+ :cluster,
2569
+ :task_definition,
2570
+ :overrides,
2571
+ :count,
2572
+ :started_by)
2573
+ include Aws::Structure
2574
+ end
2575
+
2576
+ # @!attribute [rw] tasks
2577
+ # A full description of the tasks that were run. Each task that was
2578
+ # successfully placed on your cluster are described here.
2579
+ # @return [Array<Types::Task>]
2580
+ #
2581
+ # @!attribute [rw] failures
2582
+ # Any failures associated with the call.
2583
+ # @return [Array<Types::Failure>]
2584
+ class RunTaskResponse < Struct.new(
2585
+ :tasks,
2586
+ :failures)
2587
+ include Aws::Structure
2588
+ end
2589
+
2590
+ # Details on a service within a cluster
2591
+ # @!attribute [rw] service_arn
2592
+ # The Amazon Resource Name (ARN) that identifies the service. The ARN
2593
+ # contains the `arn:aws:ecs` namespace, followed by the region of the
2594
+ # service, the AWS account ID of the service owner, the `service`
2595
+ # namespace, and then the service name. For example,
2596
+ # `arn:aws:ecs:region:012345678910:service/my-service `.
2597
+ # @return [String]
2598
+ #
2599
+ # @!attribute [rw] service_name
2600
+ # The name of your service. Up to 255 letters (uppercase and
2601
+ # lowercase), numbers, hyphens, and underscores are allowed. Service
2602
+ # names must be unique within a cluster, but you can have similarly
2603
+ # named services in multiple clusters within a region or across
2604
+ # multiple regions.
2605
+ # @return [String]
2606
+ #
2607
+ # @!attribute [rw] cluster_arn
2608
+ # The Amazon Resource Name (ARN) of the cluster that hosts the
2609
+ # service.
2610
+ # @return [String]
2611
+ #
2612
+ # @!attribute [rw] load_balancers
2613
+ # A list of Elastic Load Balancing load balancer objects, containing
2614
+ # the load balancer name, the container name (as it appears in a
2615
+ # container definition), and the container port to access from the
2616
+ # load balancer.
2617
+ # @return [Array<Types::LoadBalancer>]
2618
+ #
2619
+ # @!attribute [rw] status
2620
+ # The status of the service. The valid values are `ACTIVE`,
2621
+ # `DRAINING`, or `INACTIVE`.
2622
+ # @return [String]
2623
+ #
2624
+ # @!attribute [rw] desired_count
2625
+ # The desired number of instantiations of the task definition to keep
2626
+ # running on the service. This value is specified when the service is
2627
+ # created with CreateService, and it can be modified with
2628
+ # UpdateService.
2629
+ # @return [Integer]
2630
+ #
2631
+ # @!attribute [rw] running_count
2632
+ # The number of tasks in the cluster that are in the `RUNNING` state.
2633
+ # @return [Integer]
2634
+ #
2635
+ # @!attribute [rw] pending_count
2636
+ # The number of tasks in the cluster that are in the `PENDING` state.
2637
+ # @return [Integer]
2638
+ #
2639
+ # @!attribute [rw] task_definition
2640
+ # The task definition to use for tasks in the service. This value is
2641
+ # specified when the service is created with CreateService, and it can
2642
+ # be modified with UpdateService.
2643
+ # @return [String]
2644
+ #
2645
+ # @!attribute [rw] deployment_configuration
2646
+ # Optional deployment parameters that control how many tasks run
2647
+ # during the deployment and the ordering of stopping and starting
2648
+ # tasks.
2649
+ # @return [Types::DeploymentConfiguration]
2650
+ #
2651
+ # @!attribute [rw] deployments
2652
+ # The current state of deployments for the service.
2653
+ # @return [Array<Types::Deployment>]
2654
+ #
2655
+ # @!attribute [rw] role_arn
2656
+ # The Amazon Resource Name (ARN) of the IAM role associated with the
2657
+ # service that allows the Amazon ECS container agent to register
2658
+ # container instances with an Elastic Load Balancing load balancer.
2659
+ # @return [String]
2660
+ #
2661
+ # @!attribute [rw] events
2662
+ # The event stream for your service. A maximum of 100 of the latest
2663
+ # events are displayed.
2664
+ # @return [Array<Types::ServiceEvent>]
2665
+ #
2666
+ # @!attribute [rw] created_at
2667
+ # The Unix timestamp for when the service was created.
2668
+ # @return [Time]
2669
+ class Service < Struct.new(
2670
+ :service_arn,
2671
+ :service_name,
2672
+ :cluster_arn,
2673
+ :load_balancers,
2674
+ :status,
2675
+ :desired_count,
2676
+ :running_count,
2677
+ :pending_count,
2678
+ :task_definition,
2679
+ :deployment_configuration,
2680
+ :deployments,
2681
+ :role_arn,
2682
+ :events,
2683
+ :created_at)
2684
+ include Aws::Structure
2685
+ end
2686
+
2687
+ # Details on an event associated with a service.
2688
+ # @!attribute [rw] id
2689
+ # The ID string of the event.
2690
+ # @return [String]
2691
+ #
2692
+ # @!attribute [rw] created_at
2693
+ # The Unix timestamp for when the event was triggered.
2694
+ # @return [Time]
2695
+ #
2696
+ # @!attribute [rw] message
2697
+ # The event message.
2698
+ # @return [String]
2699
+ class ServiceEvent < Struct.new(
2700
+ :id,
2701
+ :created_at,
2702
+ :message)
2703
+ include Aws::Structure
2704
+ end
2705
+
2706
+ # @note When making an API call, pass StartTaskRequest
2707
+ # data as a hash:
2708
+ #
2709
+ # {
2710
+ # cluster: "String",
2711
+ # task_definition: "String", # required
2712
+ # overrides: {
2713
+ # container_overrides: [
2714
+ # {
2715
+ # name: "String",
2716
+ # command: ["String"],
2717
+ # environment: [
2718
+ # {
2719
+ # name: "String",
2720
+ # value: "String",
2721
+ # },
2722
+ # ],
2723
+ # },
2724
+ # ],
2725
+ # task_role_arn: "String",
2726
+ # },
2727
+ # container_instances: ["String"], # required
2728
+ # started_by: "String",
2729
+ # }
2730
+ # @!attribute [rw] cluster
2731
+ # The short name or full Amazon Resource Name (ARN) of the cluster on
2732
+ # which to start your task. If you do not specify a cluster, the
2733
+ # default cluster is assumed.
2734
+ # @return [String]
2735
+ #
2736
+ # @!attribute [rw] task_definition
2737
+ # The `family` and `revision` (`family:revision`) or full Amazon
2738
+ # Resource Name (ARN) of the task definition to start. If a `revision`
2739
+ # is not specified, the latest `ACTIVE` revision is used.
2740
+ # @return [String]
2741
+ #
2742
+ # @!attribute [rw] overrides
2743
+ # A list of container overrides in JSON format that specify the name
2744
+ # of a container in the specified task definition and the overrides it
2745
+ # should receive. You can override the default command for a container
2746
+ # (that is specified in the task definition or Docker image) with a
2747
+ # `command` override. You can also override existing environment
2748
+ # variables (that are specified in the task definition or Docker
2749
+ # image) on a container or add new environment variables to it with an
2750
+ # `environment` override.
2751
+ #
2752
+ # <note markdown="1"> A total of 8192 characters are allowed for overrides. This limit
2753
+ # includes the JSON formatting characters of the override structure.
2754
+ #
2755
+ # </note>
2756
+ # @return [Types::TaskOverride]
2757
+ #
2758
+ # @!attribute [rw] container_instances
2759
+ # The container instance IDs or full Amazon Resource Name (ARN)
2760
+ # entries for the container instances on which you would like to place
2761
+ # your task.
2762
+ #
2763
+ # The list of container instances to start tasks on is limited to 10.
2764
+ # @return [Array<String>]
2765
+ #
2766
+ # @!attribute [rw] started_by
2767
+ # An optional tag specified when a task is started. For example if you
2768
+ # automatically trigger a task to run a batch process job, you could
2769
+ # apply a unique identifier for that job to your task with the
2770
+ # `startedBy` parameter. You can then identify which tasks belong to
2771
+ # that job by filtering the results of a ListTasks call with the
2772
+ # `startedBy` value. Up to 36 letters (uppercase and lowercase),
2773
+ # numbers, hyphens, and underscores are allowed.
2774
+ #
2775
+ # If a task is started by an Amazon ECS service, then the `startedBy`
2776
+ # parameter contains the deployment ID of the service that starts it.
2777
+ # @return [String]
2778
+ class StartTaskRequest < Struct.new(
2779
+ :cluster,
2780
+ :task_definition,
2781
+ :overrides,
2782
+ :container_instances,
2783
+ :started_by)
2784
+ include Aws::Structure
2785
+ end
2786
+
2787
+ # @!attribute [rw] tasks
2788
+ # A full description of the tasks that were started. Each task that
2789
+ # was successfully placed on your container instances are described
2790
+ # here.
2791
+ # @return [Array<Types::Task>]
2792
+ #
2793
+ # @!attribute [rw] failures
2794
+ # Any failures associated with the call.
2795
+ # @return [Array<Types::Failure>]
2796
+ class StartTaskResponse < Struct.new(
2797
+ :tasks,
2798
+ :failures)
2799
+ include Aws::Structure
2800
+ end
2801
+
2802
+ # @note When making an API call, pass StopTaskRequest
2803
+ # data as a hash:
2804
+ #
2805
+ # {
2806
+ # cluster: "String",
2807
+ # task: "String", # required
2808
+ # reason: "String",
2809
+ # }
2810
+ # @!attribute [rw] cluster
2811
+ # The short name or full Amazon Resource Name (ARN) of the cluster
2812
+ # that hosts the task to stop. If you do not specify a cluster, the
2813
+ # default cluster is assumed.
2814
+ # @return [String]
2815
+ #
2816
+ # @!attribute [rw] task
2817
+ # The task ID or full Amazon Resource Name (ARN) entry of the task to
2818
+ # stop.
2819
+ # @return [String]
2820
+ #
2821
+ # @!attribute [rw] reason
2822
+ # An optional message specified when a task is stopped. For example,
2823
+ # if you are using a custom scheduler, you can use this parameter to
2824
+ # specify the reason for stopping the task here, and the message will
2825
+ # appear in subsequent DescribeTasks API operations on this task. Up
2826
+ # to 255 characters are allowed in this message.
2827
+ # @return [String]
2828
+ class StopTaskRequest < Struct.new(
2829
+ :cluster,
2830
+ :task,
2831
+ :reason)
2832
+ include Aws::Structure
2833
+ end
2834
+
2835
+ # @!attribute [rw] task
2836
+ # The task that was stopped.
2837
+ # @return [Types::Task]
2838
+ class StopTaskResponse < Struct.new(
2839
+ :task)
2840
+ include Aws::Structure
2841
+ end
2842
+
2843
+ # @note When making an API call, pass SubmitContainerStateChangeRequest
2844
+ # data as a hash:
2845
+ #
2846
+ # {
2847
+ # cluster: "String",
2848
+ # task: "String",
2849
+ # container_name: "String",
2850
+ # status: "String",
2851
+ # exit_code: 1,
2852
+ # reason: "String",
2853
+ # network_bindings: [
2854
+ # {
2855
+ # bind_ip: "String",
2856
+ # container_port: 1,
2857
+ # host_port: 1,
2858
+ # protocol: "tcp", # accepts tcp, udp
2859
+ # },
2860
+ # ],
2861
+ # }
2862
+ # @!attribute [rw] cluster
2863
+ # The short name or full Amazon Resource Name (ARN) of the cluster
2864
+ # that hosts the container.
2865
+ # @return [String]
2866
+ #
2867
+ # @!attribute [rw] task
2868
+ # The task ID or full Amazon Resource Name (ARN) of the task that
2869
+ # hosts the container.
2870
+ # @return [String]
2871
+ #
2872
+ # @!attribute [rw] container_name
2873
+ # The name of the container.
2874
+ # @return [String]
2875
+ #
2876
+ # @!attribute [rw] status
2877
+ # The status of the state change request.
2878
+ # @return [String]
2879
+ #
2880
+ # @!attribute [rw] exit_code
2881
+ # The exit code returned for the state change request.
2882
+ # @return [Integer]
2883
+ #
2884
+ # @!attribute [rw] reason
2885
+ # The reason for the state change request.
2886
+ # @return [String]
2887
+ #
2888
+ # @!attribute [rw] network_bindings
2889
+ # The network bindings of the container.
2890
+ # @return [Array<Types::NetworkBinding>]
2891
+ class SubmitContainerStateChangeRequest < Struct.new(
2892
+ :cluster,
2893
+ :task,
2894
+ :container_name,
2895
+ :status,
2896
+ :exit_code,
2897
+ :reason,
2898
+ :network_bindings)
2899
+ include Aws::Structure
2900
+ end
2901
+
2902
+ # @!attribute [rw] acknowledgment
2903
+ # Acknowledgement of the state change.
2904
+ # @return [String]
2905
+ class SubmitContainerStateChangeResponse < Struct.new(
2906
+ :acknowledgment)
2907
+ include Aws::Structure
2908
+ end
2909
+
2910
+ # @note When making an API call, pass SubmitTaskStateChangeRequest
2911
+ # data as a hash:
2912
+ #
2913
+ # {
2914
+ # cluster: "String",
2915
+ # task: "String",
2916
+ # status: "String",
2917
+ # reason: "String",
2918
+ # }
2919
+ # @!attribute [rw] cluster
2920
+ # The short name or full Amazon Resource Name (ARN) of the cluster
2921
+ # that hosts the task.
2922
+ # @return [String]
2923
+ #
2924
+ # @!attribute [rw] task
2925
+ # The task ID or full Amazon Resource Name (ARN) of the task in the
2926
+ # state change request.
2927
+ # @return [String]
2928
+ #
2929
+ # @!attribute [rw] status
2930
+ # The status of the state change request.
2931
+ # @return [String]
2932
+ #
2933
+ # @!attribute [rw] reason
2934
+ # The reason for the state change request.
2935
+ # @return [String]
2936
+ class SubmitTaskStateChangeRequest < Struct.new(
2937
+ :cluster,
2938
+ :task,
2939
+ :status,
2940
+ :reason)
2941
+ include Aws::Structure
2942
+ end
2943
+
2944
+ # @!attribute [rw] acknowledgment
2945
+ # Acknowledgement of the state change.
2946
+ # @return [String]
2947
+ class SubmitTaskStateChangeResponse < Struct.new(
2948
+ :acknowledgment)
2949
+ include Aws::Structure
2950
+ end
2951
+
2952
+ # Details on a task in a cluster.
2953
+ # @!attribute [rw] task_arn
2954
+ # The Amazon Resource Name (ARN) of the task.
2955
+ # @return [String]
2956
+ #
2957
+ # @!attribute [rw] cluster_arn
2958
+ # The Amazon Resource Name (ARN) of the cluster that hosts the task.
2959
+ # @return [String]
2960
+ #
2961
+ # @!attribute [rw] task_definition_arn
2962
+ # The Amazon Resource Name (ARN) of the task definition that creates
2963
+ # the task.
2964
+ # @return [String]
2965
+ #
2966
+ # @!attribute [rw] container_instance_arn
2967
+ # The Amazon Resource Name (ARN) of the container instances that host
2968
+ # the task.
2969
+ # @return [String]
2970
+ #
2971
+ # @!attribute [rw] overrides
2972
+ # One or more container overrides.
2973
+ # @return [Types::TaskOverride]
2974
+ #
2975
+ # @!attribute [rw] last_status
2976
+ # The last known status of the task.
2977
+ # @return [String]
2978
+ #
2979
+ # @!attribute [rw] desired_status
2980
+ # The desired status of the task.
2981
+ # @return [String]
2982
+ #
2983
+ # @!attribute [rw] containers
2984
+ # The containers associated with the task.
2985
+ # @return [Array<Types::Container>]
2986
+ #
2987
+ # @!attribute [rw] started_by
2988
+ # The tag specified when a task is started. If the task is started by
2989
+ # an Amazon ECS service, then the `startedBy` parameter contains the
2990
+ # deployment ID of the service that starts it.
2991
+ # @return [String]
2992
+ #
2993
+ # @!attribute [rw] version
2994
+ # The version counter for the task. Every time a task experiences a
2995
+ # change that triggers a CloudWatch event, the version counter is
2996
+ # incremented. If you are replicating your Amazon ECS task state with
2997
+ # CloudWatch events, you can compare the version of a task reported by
2998
+ # the Amazon ECS APIs with the version reported in CloudWatch events
2999
+ # for the task (inside the `detail` object) to verify that the version
3000
+ # in your event stream is current.
3001
+ # @return [Integer]
3002
+ #
3003
+ # @!attribute [rw] stopped_reason
3004
+ # The reason the task was stopped.
3005
+ # @return [String]
3006
+ #
3007
+ # @!attribute [rw] created_at
3008
+ # The Unix timestamp for when the task was created (the task entered
3009
+ # the `PENDING` state).
3010
+ # @return [Time]
3011
+ #
3012
+ # @!attribute [rw] started_at
3013
+ # The Unix timestamp for when the task was started (the task
3014
+ # transitioned from the `PENDING` state to the `RUNNING` state).
3015
+ # @return [Time]
3016
+ #
3017
+ # @!attribute [rw] stopped_at
3018
+ # The Unix timestamp for when the task was stopped (the task
3019
+ # transitioned from the `RUNNING` state to the `STOPPED` state).
3020
+ # @return [Time]
3021
+ class Task < Struct.new(
3022
+ :task_arn,
3023
+ :cluster_arn,
3024
+ :task_definition_arn,
3025
+ :container_instance_arn,
3026
+ :overrides,
3027
+ :last_status,
3028
+ :desired_status,
3029
+ :containers,
3030
+ :started_by,
3031
+ :version,
3032
+ :stopped_reason,
3033
+ :created_at,
3034
+ :started_at,
3035
+ :stopped_at)
3036
+ include Aws::Structure
3037
+ end
3038
+
3039
+ # Details of a task definition.
3040
+ # @!attribute [rw] task_definition_arn
3041
+ # The full Amazon Resource Name (ARN) of the task definition.
3042
+ # @return [String]
3043
+ #
3044
+ # @!attribute [rw] container_definitions
3045
+ # A list of container definitions in JSON format that describe the
3046
+ # different containers that make up your task. For more information
3047
+ # about container definition parameters and defaults, see [Amazon ECS
3048
+ # Task Definitions][1] in the *Amazon EC2 Container Service Developer
3049
+ # Guide*.
3050
+ #
3051
+ #
3052
+ #
3053
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html
3054
+ # @return [Array<Types::ContainerDefinition>]
3055
+ #
3056
+ # @!attribute [rw] family
3057
+ # The family of your task definition, used as the definition name.
3058
+ # @return [String]
3059
+ #
3060
+ # @!attribute [rw] task_role_arn
3061
+ # The Amazon Resource Name (ARN) of the IAM role that containers in
3062
+ # this task can assume. All containers in this task are granted the
3063
+ # permissions that are specified in this role.
3064
+ # @return [String]
3065
+ #
3066
+ # @!attribute [rw] network_mode
3067
+ # The Docker networking mode to use for the containers in the task.
3068
+ # The valid values are `none`, `bridge`, and `host`.
3069
+ #
3070
+ # If the network mode is `none`, the containers do not have external
3071
+ # connectivity. The default Docker network mode is `bridge`. The
3072
+ # `host` network mode offers the highest networking performance for
3073
+ # containers because it uses the host network stack instead of the
3074
+ # virtualized network stack provided by the `bridge` mode.
3075
+ #
3076
+ # For more information, see [Network settings][1] in the *Docker run
3077
+ # reference*.
3078
+ #
3079
+ #
3080
+ #
3081
+ # [1]: https://docs.docker.com/engine/reference/run/#network-settings
3082
+ # @return [String]
3083
+ #
3084
+ # @!attribute [rw] revision
3085
+ # The revision of the task in a particular family. The revision is a
3086
+ # version number of a task definition in a family. When you register a
3087
+ # task definition for the first time, the revision is `1`; each time
3088
+ # you register a new revision of a task definition in the same family,
3089
+ # the revision value always increases by one (even if you have
3090
+ # deregistered previous revisions in this family).
3091
+ # @return [Integer]
3092
+ #
3093
+ # @!attribute [rw] volumes
3094
+ # The list of volumes in a task. For more information about volume
3095
+ # definition parameters and defaults, see [Amazon ECS Task
3096
+ # Definitions][1] in the *Amazon EC2 Container Service Developer
3097
+ # Guide*.
3098
+ #
3099
+ #
3100
+ #
3101
+ # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html
3102
+ # @return [Array<Types::Volume>]
3103
+ #
3104
+ # @!attribute [rw] status
3105
+ # The status of the task definition.
3106
+ # @return [String]
3107
+ #
3108
+ # @!attribute [rw] requires_attributes
3109
+ # The container instance attributes required by your task.
3110
+ # @return [Array<Types::Attribute>]
3111
+ class TaskDefinition < Struct.new(
3112
+ :task_definition_arn,
3113
+ :container_definitions,
3114
+ :family,
3115
+ :task_role_arn,
3116
+ :network_mode,
3117
+ :revision,
3118
+ :volumes,
3119
+ :status,
3120
+ :requires_attributes)
3121
+ include Aws::Structure
3122
+ end
3123
+
3124
+ # The overrides associated with a task.
3125
+ # @note When making an API call, pass TaskOverride
3126
+ # data as a hash:
3127
+ #
3128
+ # {
3129
+ # container_overrides: [
3130
+ # {
3131
+ # name: "String",
3132
+ # command: ["String"],
3133
+ # environment: [
3134
+ # {
3135
+ # name: "String",
3136
+ # value: "String",
3137
+ # },
3138
+ # ],
3139
+ # },
3140
+ # ],
3141
+ # task_role_arn: "String",
3142
+ # }
3143
+ # @!attribute [rw] container_overrides
3144
+ # One or more container overrides sent to a task.
3145
+ # @return [Array<Types::ContainerOverride>]
3146
+ #
3147
+ # @!attribute [rw] task_role_arn
3148
+ # The Amazon Resource Name (ARN) of the IAM role that containers in
3149
+ # this task can assume. All containers in this task are granted the
3150
+ # permissions that are specified in this role.
3151
+ # @return [String]
3152
+ class TaskOverride < Struct.new(
3153
+ :container_overrides,
3154
+ :task_role_arn)
3155
+ include Aws::Structure
3156
+ end
3157
+
3158
+ # The `ulimit` settings to pass to the container.
3159
+ # @note When making an API call, pass Ulimit
3160
+ # data as a hash:
3161
+ #
3162
+ # {
3163
+ # name: "core", # required, accepts core, cpu, data, fsize, locks, memlock, msgqueue, nice, nofile, nproc, rss, rtprio, rttime, sigpending, stack
3164
+ # soft_limit: 1, # required
3165
+ # hard_limit: 1, # required
3166
+ # }
3167
+ # @!attribute [rw] name
3168
+ # The `type` of the `ulimit`.
3169
+ # @return [String]
3170
+ #
3171
+ # @!attribute [rw] soft_limit
3172
+ # The soft limit for the ulimit type.
3173
+ # @return [Integer]
3174
+ #
3175
+ # @!attribute [rw] hard_limit
3176
+ # The hard limit for the ulimit type.
3177
+ # @return [Integer]
3178
+ class Ulimit < Struct.new(
3179
+ :name,
3180
+ :soft_limit,
3181
+ :hard_limit)
3182
+ include Aws::Structure
3183
+ end
3184
+
3185
+ # @note When making an API call, pass UpdateContainerAgentRequest
3186
+ # data as a hash:
3187
+ #
3188
+ # {
3189
+ # cluster: "String",
3190
+ # container_instance: "String", # required
3191
+ # }
3192
+ # @!attribute [rw] cluster
3193
+ # The short name or full Amazon Resource Name (ARN) of the cluster
3194
+ # that your container instance is running on. If you do not specify a
3195
+ # cluster, the default cluster is assumed.
3196
+ # @return [String]
3197
+ #
3198
+ # @!attribute [rw] container_instance
3199
+ # The container instance ID or full Amazon Resource Name (ARN) entries
3200
+ # for the container instance on which you would like to update the
3201
+ # Amazon ECS container agent.
3202
+ # @return [String]
3203
+ class UpdateContainerAgentRequest < Struct.new(
3204
+ :cluster,
3205
+ :container_instance)
3206
+ include Aws::Structure
3207
+ end
3208
+
3209
+ # @!attribute [rw] container_instance
3210
+ # The container instance for which the container agent was updated.
3211
+ # @return [Types::ContainerInstance]
3212
+ class UpdateContainerAgentResponse < Struct.new(
3213
+ :container_instance)
3214
+ include Aws::Structure
3215
+ end
3216
+
3217
+ # @note When making an API call, pass UpdateServiceRequest
3218
+ # data as a hash:
3219
+ #
3220
+ # {
3221
+ # cluster: "String",
3222
+ # service: "String", # required
3223
+ # desired_count: 1,
3224
+ # task_definition: "String",
3225
+ # deployment_configuration: {
3226
+ # maximum_percent: 1,
3227
+ # minimum_healthy_percent: 1,
3228
+ # },
3229
+ # }
3230
+ # @!attribute [rw] cluster
3231
+ # The short name or full Amazon Resource Name (ARN) of the cluster
3232
+ # that your service is running on. If you do not specify a cluster,
3233
+ # the default cluster is assumed.
3234
+ # @return [String]
3235
+ #
3236
+ # @!attribute [rw] service
3237
+ # The name of the service to update.
3238
+ # @return [String]
3239
+ #
3240
+ # @!attribute [rw] desired_count
3241
+ # The number of instantiations of the task to place and keep running
3242
+ # in your service.
3243
+ # @return [Integer]
3244
+ #
3245
+ # @!attribute [rw] task_definition
3246
+ # The `family` and `revision` (`family:revision`) or full Amazon
3247
+ # Resource Name (ARN) of the task definition to run in your service.
3248
+ # If a `revision` is not specified, the latest `ACTIVE` revision is
3249
+ # used. If you modify the task definition with `UpdateService`, Amazon
3250
+ # ECS spawns a task with the new version of the task definition and
3251
+ # then stops an old task after the new version is running.
3252
+ # @return [String]
3253
+ #
3254
+ # @!attribute [rw] deployment_configuration
3255
+ # Optional deployment parameters that control how many tasks run
3256
+ # during the deployment and the ordering of stopping and starting
3257
+ # tasks.
3258
+ # @return [Types::DeploymentConfiguration]
3259
+ class UpdateServiceRequest < Struct.new(
3260
+ :cluster,
3261
+ :service,
3262
+ :desired_count,
3263
+ :task_definition,
3264
+ :deployment_configuration)
3265
+ include Aws::Structure
3266
+ end
3267
+
3268
+ # @!attribute [rw] service
3269
+ # The full description of your service following the update call.
3270
+ # @return [Types::Service]
3271
+ class UpdateServiceResponse < Struct.new(
3272
+ :service)
3273
+ include Aws::Structure
3274
+ end
3275
+
3276
+ # The Docker and Amazon ECS container agent version information about a
3277
+ # container instance.
3278
+ # @note When making an API call, pass VersionInfo
3279
+ # data as a hash:
3280
+ #
3281
+ # {
3282
+ # agent_version: "String",
3283
+ # agent_hash: "String",
3284
+ # docker_version: "String",
3285
+ # }
3286
+ # @!attribute [rw] agent_version
3287
+ # The version number of the Amazon ECS container agent.
3288
+ # @return [String]
3289
+ #
3290
+ # @!attribute [rw] agent_hash
3291
+ # The Git commit hash for the Amazon ECS container agent build on the
3292
+ # [amazon-ecs-agent ][1] GitHub repository.
3293
+ #
3294
+ #
3295
+ #
3296
+ # [1]: https://github.com/aws/amazon-ecs-agent/commits/master
3297
+ # @return [String]
3298
+ #
3299
+ # @!attribute [rw] docker_version
3300
+ # The Docker version running on the container instance.
3301
+ # @return [String]
3302
+ class VersionInfo < Struct.new(
3303
+ :agent_version,
3304
+ :agent_hash,
3305
+ :docker_version)
3306
+ include Aws::Structure
3307
+ end
3308
+
3309
+ # A data volume used in a task definition.
3310
+ # @note When making an API call, pass Volume
3311
+ # data as a hash:
3312
+ #
3313
+ # {
3314
+ # name: "String",
3315
+ # host: {
3316
+ # source_path: "String",
3317
+ # },
3318
+ # }
3319
+ # @!attribute [rw] name
3320
+ # The name of the volume. Up to 255 letters (uppercase and lowercase),
3321
+ # numbers, hyphens, and underscores are allowed. This name is
3322
+ # referenced in the `sourceVolume` parameter of container definition
3323
+ # `mountPoints`.
3324
+ # @return [String]
3325
+ #
3326
+ # @!attribute [rw] host
3327
+ # The contents of the `host` parameter determine whether your data
3328
+ # volume persists on the host container instance and where it is
3329
+ # stored. If the host parameter is empty, then the Docker daemon
3330
+ # assigns a host path for your data volume, but the data is not
3331
+ # guaranteed to persist after the containers associated with it stop
3332
+ # running.
3333
+ # @return [Types::HostVolumeProperties]
3334
+ class Volume < Struct.new(
3335
+ :name,
3336
+ :host)
3337
+ include Aws::Structure
3338
+ end
3339
+
3340
+ # Details on a data volume from another container.
3341
+ # @note When making an API call, pass VolumeFrom
3342
+ # data as a hash:
3343
+ #
3344
+ # {
3345
+ # source_container: "String",
3346
+ # read_only: false,
3347
+ # }
3348
+ # @!attribute [rw] source_container
3349
+ # The name of the container to mount volumes from.
3350
+ # @return [String]
3351
+ #
3352
+ # @!attribute [rw] read_only
3353
+ # If this value is `true`, the container has read-only access to the
3354
+ # volume. If this value is `false`, then the container can write to
3355
+ # the volume. The default value is `false`.
3356
+ # @return [Boolean]
3357
+ class VolumeFrom < Struct.new(
3358
+ :source_container,
3359
+ :read_only)
3360
+ include Aws::Structure
3361
+ end
3362
+
3363
+ end
3364
+ end
3365
+ end