ecs_taskdefinition: add inactive/absent states, fix list element comparison bug - #2410
ecs_taskdefinition: add inactive/absent states, fix list element comparison bug#2410jonpspri wants to merge 5 commits into
Conversation
…finitions status param - Move _right_has_values_of_left from nested function inside main() to module level so it can be imported for unit testing. - Add docstring documenting the function's matching behavior. - Fix invalid status="ALL" in family-delete codepath — AWS ListTaskDefinitions only accepts ACTIVE, INACTIVE, or DELETE_IN_PROGRESS. - Refactor describe_task_definitions to accept a list of status values, extracting pagination into _list_task_definition_arns. - Add unit tests for _right_has_values_of_left covering scalar matching, list ordering, port mapping protocol defaults, essential key default, and the list element mismatch regression case.
Docs Build 📝Thank you for contribution!✨ The docsite for this PR is available for download as an artifact from this run: You can compare to the docs for the File changes:
Click to see the diff comparison.NOTE: only file modifications are shown here. New and deleted files are excluded. The diff output was truncated because it exceeded the maximum size. diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/ecs_taskdefinition_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/ecs_taskdefinition_module.html
index a0a83e8..e487b44 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/ecs_taskdefinition_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/ecs_taskdefinition_module.html
@@ -156,7 +156,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<section id="synopsis">
<h2><a class="toc-backref" href="#id1" role="doc-backlink">Synopsis</a><a class="headerlink" href="#synopsis" title="Link to this heading"></a></h2>
<ul class="simple">
-<li><p>Registers or deregisters task definitions in the Amazon Web Services (AWS) EC2 Container Service (ECS).</p></li>
+<li><p>Registers, deregisters, or deletes task definitions in the Amazon Web Services (AWS) EC2 Container Service (ECS).</p></li>
</ul>
</section>
<section id="requirements">
@@ -216,7 +216,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers"><strong>containers</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span> / <span class="ansible-option-required">required</span></p>
+<a class="ansibleOptionLink" href="#parameter-containers" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>A list of containers definitions.</p>
<p>See <a class="reference external" href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html">https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html</a> for a complete list of parameters.</p>
@@ -244,27 +244,6 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<p>When a dependency is defined for container startup, for container shutdown it is reversed.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/dependsOn/condition"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-dependson-condition"><strong>condition</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/dependsOn/condition" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The dependency condition of the container.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"start"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"complete"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"success"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"healthy"</span></code></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/dependsOn/containerName"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-dependson-containername"><strong>containerName</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/dependsOn/containerName" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The name of a container.</p>
-</div></td>
-</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/disableNetworking"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-disablenetworking"><strong>disableNetworking</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/disableNetworking" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
@@ -377,20 +356,6 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<p>This parameter is not supported for Windows containers or tasks that use <em>network_mode=awsvpc</em>.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/extraHosts/hostname"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-extrahosts-hostname"><strong>hostname</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/extraHosts/hostname" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The hostname to use in the /etc/hosts entry.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/extraHosts/ipAddress"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-extrahosts-ipaddress"><strong>ipAddress</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/extraHosts/ipAddress" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The IP address to use in the /etc/hosts entry.</p>
-</div></td>
-</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/firelensConfiguration"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-firelensconfiguration"><strong>firelensConfiguration</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/firelensConfiguration" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
@@ -399,28 +364,6 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<p>This is used to specify and configure a log router for container logs.</p>
</div></td>
</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/firelensConfiguration/options"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-firelensconfiguration-options"><strong>options</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/firelensConfiguration/options" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The options to use when configuring the log router.</p>
-<p>This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.</p>
-<p>If specified, the syntax to use is <code class="docutils literal notranslate"><span class="pre">{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}</span></code>.</p>
-<p>For more information, see <a class="reference external" href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef">https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef</a>.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/firelensConfiguration/type"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-firelensconfiguration-type"><strong>type</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/firelensConfiguration/type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The log router to use. The valid values are <code class="docutils literal notranslate"><span class="pre">fluentd</span></code> or <code class="docutils literal notranslate"><span class="pre">fluentbit</span></code>.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"fluentd"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"fluentbit"</span></code></p></li>
-</ul>
-</div></td>
-</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck"><strong>healthCheck</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/healthCheck" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
@@ -428,52 +371,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The health check command and associated configuration parameters for the container.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck/command"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck-command"><strong>command</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/healthCheck/command" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>A string array representing the command that the container runs to determine if it is healthy.</p>
-<p>The string array must start with CMD to run the command arguments directly, or CMD-SHELL to run the command with the container’s default shell.</p>
-<p>An exit code of 0 indicates success, and non-zero exit code indicates failure.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck/interval"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck-interval"><strong>interval</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/healthCheck/interval" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The time period in seconds between each health check execution.</p>
-<p>You may specify between 5 and 300 seconds. The default value is 30 seconds.</p>
-<p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-option-default docutils literal notranslate"><span class="pre">30</span></code></p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck/retries"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck-retries"><strong>retries</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/healthCheck/retries" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The number of times to retry a failed health check before the container is considered unhealthy.</p>
-<p>You may specify between 1 and 10 retries. The default value is 3.</p>
-<p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-option-default docutils literal notranslate"><span class="pre">3</span></code></p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck/startPeriod"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck-startperiod"><strong>startPeriod</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/healthCheck/startPeriod" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries.</p>
-<p>You can specify between 0 and 300 seconds. By default, the startPeriod is disabled.</p>
-<p>Note: If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/healthCheck/timeout"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-healthcheck-timeout"><strong>timeout</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/healthCheck/timeout" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The time period in seconds to wait for a health check to succeed before it is considered a failure.</p>
-<p>You may specify between 2 and 60 seconds. The default value is 5.</p>
-<p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-option-default docutils literal notranslate"><span class="pre">5</span></code></p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/hostname"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-hostname"><strong>hostname</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/hostname" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
@@ -481,14 +379,14 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<p>This parameter is not supported if <em>network_mode=awsvpc</em>.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/image"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-image"><strong>image</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/image" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The image used to start a container.</p>
</div></td>
</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/interactive"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-interactive"><strong>interactive</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/interactive" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
@@ -500,7 +398,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
</ul>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/links"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-links"><strong>links</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/links" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
</div></td>
@@ -508,253 +406,13 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<p>This parameter is only supported if <em>network_mode=bridge</em>.</p>
</div></td>
</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters"><strong>linuxParameters</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Linux-specific modifications that are applied to the container, such as Linux kernel capabilities.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/capabilities"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-capabilities"><strong>capabilities</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/capabilities" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/capabilities/add"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-capabilities-add"><strong>add</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/capabilities/add" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The Linux capabilities for the container that have been added to the default configuration provided by Docker.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"ALL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"AUDIT_CONTROL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"AUDIT_WRITE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"BLOCK_SUSPEND"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"CHOWN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"DAC_OVERRIDE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"DAC_READ_SEARCH"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"FOWNER"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"FSETID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"IPC_LOCK"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"IPC_OWNER"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"KILL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"LEASE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"LINUX_IMMUTABLE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MAC_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MAC_OVERRIDE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MKNOD"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_BIND_SERVICE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_BROADCAST"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_RAW"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETFCAP"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETGID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETPCAP"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETUID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_BOOT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_CHROOT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_MODULE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_NICE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_PACCT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_PTRACE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_RAWIO"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_RESOURCE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_TIME"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_TTY_CONFIG"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYSLOG"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"WAKE_ALARM"</span></code></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/capabilities/drop"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-capabilities-drop"><strong>drop</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/capabilities/drop" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The Linux capabilities for the container that have been removed from the default configuration provided by Docker.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"ALL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"AUDIT_CONTROL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"AUDIT_WRITE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"BLOCK_SUSPEND"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"CHOWN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"DAC_OVERRIDE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"DAC_READ_SEARCH"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"FOWNER"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"FSETID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"IPC_LOCK"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"IPC_OWNER"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"KILL"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"LEASE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"LINUX_IMMUTABLE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MAC_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MAC_OVERRIDE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"MKNOD"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_BIND_SERVICE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_BROADCAST"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"NET_RAW"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETFCAP"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETGID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETPCAP"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SETUID"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_ADMIN"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_BOOT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_CHROOT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_MODULE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_NICE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_PACCT"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_PTRACE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_RAWIO"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_RESOURCE"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_TIME"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYS_TTY_CONFIG"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"SYSLOG"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"WAKE_ALARM"</span></code></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/devices"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-devices"><strong>devices</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/devices" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Any host devices to expose to the container.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/devices/containerPath"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-devices-containerpath"><strong>containerPath</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/devices/containerPath" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The path inside the container at which to expose the host device.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/devices/hostPath"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-devices-hostpath"><strong>hostPath</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/devices/hostPath" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The path for the device on the host container instance.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/devices/permissions"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-devices-permissions"><strong>permissions</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/devices/permissions" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The explicit permissions to provide to the container for the device.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/initProcessEnabled"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-initprocessenabled"><strong>initProcessEnabled</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/initProcessEnabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Run an init process inside the container that forwards signals and reaps processes.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/maxSwap"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-maxswap"><strong>maxSwap</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/maxSwap" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The total amount of swap memory (in MiB) a container can use.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/sharedMemorySize"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-sharedmemorysize"><strong>sharedMemorySize</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/sharedMemorySize" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The value for the size (in MiB) of the /dev/shm volume.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/swappiness"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-swappiness"><strong>swappiness</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/swappiness" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>This allows you to tune a container’s memory swappiness behavior.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/tmpfs"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-tmpfs"><strong>tmpfs</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/tmpfs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The container path, mount options, and size (in MiB) of the tmpfs mount.</p>
-<p>If <em>launch_type=FARGATE</em>, this parameter is not supported.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/tmpfs/containerPath"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-tmpfs-containerpath"><strong>containerPath</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/tmpfs/containerPath" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The absolute file path where the tmpfs volume is to be mounted.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/tmpfs/mountOptions"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-tmpfs-mountoptions"><strong>mountOptions</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/tmpfs/mountOptions" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The list of tmpfs volume mount options.</p>
-<p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
-<ul class="simple">
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"defaults"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"ro"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"rw"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"suid"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nosuid"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"dev"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nodev"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"exec"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"noexec"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"sync"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"async"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"dirsync"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"remount"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"mand"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nomand"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"atime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"noatime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"diratime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nodiratime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"bind"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"rbind"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"unbindable"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"runbindable"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"private"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"rprivate"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"shared"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"rshared"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"slave"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"rslave"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"relatime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"norelatime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"strictatime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nostrictatime"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"mode"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"uid"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"gid"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nr_inodes"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"nr_blocks"</span></code></p></li>
-<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">"mpol"</span></code></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/linuxParameters/tmpfs/size"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-linuxparameters-tmpfs-size"><strong>size</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/linuxParameters/tmpfs/size" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span> / <span class="ansible-option-required">required</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The size (in MiB) of the tmpfs volume.</p>
-</div></td>
-</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/logConfiguration"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-logconfiguration"><strong>logConfiguration</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/logConfiguration" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
@@ -762,44 +420,35 @@ see <a class="reference internal" href="#ansible-collections-community-aws-ecs-t
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The log configuration specification for the container.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-containers/logConfiguration/logDriver"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-logconfiguration-logdriver"><strong>logDriver</strong></p>
-<a class="ansibleOptionLink" href="#parameter-containers/logConfiguration/logDriver" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The log driver to use for the container.</p>
-<p>For tasks on AWS Fargate, the supported log drivers are <code class="docutils literal notranslate"><span class="pre">awslogs</span></code>, <code class="docutils literal notranslate"><span class="pre">splunk</span></code>, and <code class="docutils literal notranslate"><span class="pre">awsfirelens</span></code>.</p>
-<p>For tasks hosted on Amazon EC2 instances, the supported log drivers are <code class="docutils literal notranslate"><span class="pre">awslogs</span></code>, <code class="docutils literal notranslate"><span class="pre">fluentd</span></code>, <code class="docutils literal notranslate"><span class="pre">gelf</span></code>, <code class="docutils literal notranslate"><span class="pre">json-file</span></code>, <code class="docutils literal notranslate"><span class="pre">journald</span></code>, <code class="docutils literal notranslate"><span class="pre">logentries</span></code>, <code class="docutils literal notranslate"><span class="pre">syslog</span></code>, <code class="docutils literal notranslate"><span class="pre">splunk</span></code>, and <code class="docutils literal notranslate"><span class="pre">awsfirelens</span></code>.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/memory"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-memory"><strong>memory</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/memory" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The amount (in MiB) of memory to present to the container.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/memoryReservation"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-memoryreservation"><strong>memoryReservation</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/memoryReservation" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The soft limit (in MiB) of memory to reserve for the container.</p>
</div></td>
</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/mountPoints"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-mountpoints"><strong>mountPoints</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/mountPoints" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The mount points for data volumes in your container.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-containers/mountPoints/containerPath"></div><p class="ansible-option-title" id="ansible-collections-community-aws-ecs-taskdefinition-module-parameter-containers-mountpoints-containerpath"><strong>containerPath</strong></p>
<a class="ansibleOptionLink" href="#parameter-containers/mountPoints/containerPath" title="Permalink to thi |
There was a problem hiding this comment.
Pull request overview
Extends the ecs_taskdefinition Ansible module to support additional lifecycle states (deregister vs permanent delete) and improves task-definition matching/idempotency logic, with accompanying unit and integration tests.
Changes:
- Add
state=inactive(deregister / mark INACTIVE) and extendstate=absentto support permanent deletion, including family-wide deletion of all revisions. - Refactor task-definition listing/description to support multiple status filters and remove invalid
status="ALL"usage. - Extract and test
_right_has_values_of_leftto fix a list-element mismatch regression and improve testability.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
plugins/modules/ecs_taskdefinition.py |
Implements new states, adds delete support, refactors listing by status, and extracts matching helper + docs updates. |
tests/unit/plugins/modules/test_ecs_taskdefinition.py |
Adds unit coverage for _right_has_values_of_left, including the list-element mismatch regression. |
tests/integration/targets/ecs_cluster/tasks/20_ecs_service.yml |
Adds integration coverage for family-wide deletion and idempotency. |
tests/integration/targets/ecs_cluster/tasks/99_terminate_everything.yml |
Adds cleanup for the new family-delete integration test resources. |
Comments suppressed due to low confidence (1)
plugins/modules/ecs_taskdefinition.py:452
- The RETURN docs say
taskdefinitionis returned "always", but the new family-onlystate=absentpath returnstaskdefinitions(list) and exits without settingtaskdefinition. Please update RETURN documentation (and/or always include a consistent key) so module outputs are accurately documented.
RETURN = r"""
taskdefinition:
description: a reflection of the input parameters
type: dict
returned: always
"""
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 47s (non-voting) |
…nitions The module returns different keys depending on the operation: - taskdefinition (singular) for state=present, state=inactive, or single-revision state=absent - taskdefinitions (plural) for family-wide state=absent deletion Addresses Copilot review comment about inconsistent return documentation.
|
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 5m 19s (non-voting) |
|
Build failed.
|
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 57s (non-voting) |
|
Waiting for CI/CD security privilege updates in mattclay/aws-terminator#330 . |
Summary
Closes #2023
state=inactiveto deregister task definitions (mark INACTIVE) without deleting them.state=absentwith family-only support to permanently delete all revisions in a family (both ACTIVE and INACTIVE)._right_has_values_of_leftwhere list element mismatches silently fell through without returningFalse, causing false-positive idempotency matches.status="ALL"parameter passed toListTaskDefinitionsAPI — refactordescribe_task_definitionsto accept a list of status values._right_has_values_of_leftto module level for testability and add docstring documenting matching behavior.linuxParametersandcapabilitiessuboption docs (remove overly restrictivechoicesthat lag behind AWS API).containersparameter optional (not required forstate=inactive/absent)._right_has_values_of_leftcovering scalar matching, list ordering, port mapping protocol defaults, essential key default, and the list element mismatch regression.Test plan
ansible-test units --docker default tests/unit/plugins/modules/test_ecs_taskdefinition.pyansible-test integration ecs_cluster(requires AWS credentials)