aws-sdk-ecs 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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