Skip to content

Add Performance Insights and Database Insights to rds_cluster.py #2543

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

randoneering
Copy link

@randoneering randoneering commented Mar 6, 2025

SUMMARY

The following change stems from #2531 and adds the ability to enable Performance Insights (at the cluster level), the related parameters associated with it, and adds the Database Insights Mode functionality as well.

ISSUE TYPE
  • Feature Pull Request
COMPONENT NAME

rds_cluster

ADDITIONAL INFORMATION

The following parameters were added:

enable_performance_insights (EnablePerformanceInsights)
performance_insights_kms_key_id (PerformanceInsightsKMSKeyId)
performance_insights_retention_period (PerformanceInsightsRetentionPeriod)
database_insights_mode (DatabaseInsightsMode)

As of right now, I am hitting an error with the implementation. I have mirrored, to my best ability, what other contributors have done with other parameters. I verified that, indeed, boto3 does have the functionality present for these features for rds clusters. However, when I run a test playbook against my contribution, I receive the following error:

  File "/var/folders/xf/9g1j8gwx46g13dyjw6_fnj8c0000gp/T/ansible_amazon.aws.rds_cluster_payload_v_sx5ebx/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py", line 1136, in changing_cluster_options
KeyError: 'EnablePerformanceInsights'
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/Users/jfrye/.ansible/tmp/ansible-tmp-1741219030.4587781-50196-31706941389543/AnsiballZ_rds_cluster.py\", line 107, in <module>\n    _ansiballz_main()\n    ~~~~~~~~~~~~~~~^^\n  File \"/Users/jfrye/.ansible/tmp/ansible-tmp-1741219030.4587781-50196-31706941389543/AnsiballZ_rds_cluster.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/jfrye/.ansible/tmp/ansible-tmp-1741219030.4587781-50196-31706941389543/AnsiballZ_rds_cluster.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.amazon.aws.plugins.modules.rds_cluster', init_globals=dict(_module_fqn='ansible_collections.amazon.aws.plugins.modules.rds_cluster', _modlib_path=modlib_path),\n    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                     run_name='__main__', alter_sys=True)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<frozen runpy>\", line 226, in run_module\n  File \"<frozen runpy>\", line 98, in _run_module_code\n  File \"<frozen runpy>\", line 88, in _run_code\n  File \"/var/folders/xf/9g1j8gwx46g13dyjw6_fnj8c0000gp/T/ansible_amazon.aws.rds_cluster_payload_v_sx5ebx/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1495, in <module>\n  File \"/var/folders/xf/9g1j8gwx46g13dyjw6_fnj8c0000gp/T/ansible_amazon.aws.rds_cluster_payload_v_sx5ebx/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1473, in main\n  File \"/var/folders/xf/9g1j8gwx46g13dyjw6_fnj8c0000gp/T/ansible_amazon.aws.rds_cluster_payload_v_sx5ebx/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1235, in ensure_present\n  File \"/var/folders/xf/9g1j8gwx46g13dyjw6_fnj8c0000gp/T/ansible_amazon.aws.rds_cluster_payload_v_sx5ebx/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1136, in changing_cluster_options\nKeyError: 'EnablePerformanceInsights'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE: No start of json char found\nSee stdout/stderr for the exact error",
    "rc": 1
}

This is what versions of ansible and boto3 I have on my local machine:

ansible [core 2.18.1]                                                                                                                                     

  config file = None                                                                                                                                       

  configured module search path = ['/Users/jfrye/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']                                         

  ansible python module location = /opt/homebrew/Cellar/ansible/11.1.0_1/libexec/lib/python3.13/site-packages/ansible                                     

  ansible collection location = /Users/jfrye/.ansible/collections:/usr/share/ansible/collections                                                          

  executable location = /opt/homebrew/bin/ansible                                                                                                         

  python version = 3.13.1 (main, Dec  3 2024, 17:59:52) [Clang 16.0.0 (clang-1600.0.26.4)] (/opt/homebrew/Cellar/ansible/11.1.0_1/libexec/bin/python)     

  jinja version = 3.1.5                                                                                                                                   

  libyaml = True      

boto3 version ( 1.37.6)                                                

And here is the sample playbook I am using

---
- name: Enforce DBA Settings
  hosts: localhost
  tasks:
    - name: enforce DBA setting for clusters
      amazon.aws.rds_cluster:
        region: us-east-1
        access_key: "{{ access_key }}"
        secret_key: "{{ secret_key }}"
        session_token: "{{ session_token }}"
        id: target_cluster  
        state: present
        copy_tags_to_snapshot: true
        deletion_protection: true
        enable_performance_insights: True
        performance_insights_retention_period: 7
        storage_encrypted: true
        preferred_maintenance_window: "Sun:05:00-Sun:06:00"
        purge_tags: false
        apply_immediately: true
        backup_retention_period: 14

I have that the collection is installed on my local machine and that there isn't another amazon.aws module that is conflicting with this. Additionally, I went to the ~/.ansible directory on my device and was able to look at the rds_cluster.py module to verify it had my changes in it. This is my first contribution, so if I missed an obvious step, please let me know as I plan to do more. Thank you!

@randoneering randoneering changed the title Add pi rds cluster Add Performance Insights and Database Insights to rds_cluster.py Mar 6, 2025
Copy link

github-actions bot commented Mar 6, 2025

Docs Build 📝

Thank you for contribution!✨

The docsite for this PR is available for download as an artifact from this run:
https://github.com/ansible-collections/amazon.aws/actions/runs/14576002008

You can compare to the docs for the main branch here:
https://ansible-collections.github.io/amazon.aws/branch/main

File changes:

  • M collections/amazon/aws/docsite/CHANGELOG.html
  • M collections/amazon/aws/rds_cluster_module.html
Click to see the diff comparison.

NOTE: only file modifications are shown here. New and deleted files are excluded.
See the file list and check the published docs to see those files.

The diff output was truncated because it exceeded the maximum size.

diff --git a/home/runner/work/amazon.aws/amazon.aws/docsbuild/base/collections/amazon/aws/docsite/CHANGELOG.html b/home/runner/work/amazon.aws/amazon.aws/docsbuild/head/collections/amazon/aws/docsite/CHANGELOG.html
index 2484b4e..54b8119 100644
--- a/home/runner/work/amazon.aws/amazon.aws/docsbuild/base/collections/amazon/aws/docsite/CHANGELOG.html
+++ b/home/runner/work/amazon.aws/amazon.aws/docsbuild/head/collections/amazon/aws/docsite/CHANGELOG.html
@@ -133,522 +133,548 @@
            <div itemprop="articleBody">
              
   <section id="amazon-aws-release-notes">
-<h1><a class="toc-backref" href="#id203" role="doc-backlink">amazon.aws Release Notes</a><a class="headerlink" href="#amazon-aws-release-notes" title="Link to this heading"></a></h1>
+<h1><a class="toc-backref" href="#id206" role="doc-backlink">amazon.aws Release Notes</a><a class="headerlink" href="#amazon-aws-release-notes" title="Link to this heading"></a></h1>
 <nav class="contents" id="topics">
 <p class="topic-title">Topics</p>
 <ul class="simple">
-<li><p><a class="reference internal" href="#amazon-aws-release-notes" id="id203">amazon.aws Release Notes</a></p>
+<li><p><a class="reference internal" href="#amazon-aws-release-notes" id="id206">amazon.aws Release Notes</a></p>
 <ul>
-<li><p><a class="reference internal" href="#v9-3-0" id="id204">v9.3.0</a></p>
+<li><p><a class="reference internal" href="#v9-4-0" id="id207">v9.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#release-summary" id="id205">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#minor-changes" id="id206">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#new-modules" id="id207">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#release-summary" id="id208">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#minor-changes" id="id209">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#bugfixes" id="id210">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v9-2-0" id="id208">v9.2.0</a></p>
+<li><p><a class="reference internal" href="#v9-3-0" id="id211">v9.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id1" id="id209">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id2" id="id210">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#bugfixes" id="id211">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id3" id="id212">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id1" id="id212">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id2" id="id213">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#new-modules" id="id214">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v9-1-1" id="id213">v9.1.1</a></p>
+<li><p><a class="reference internal" href="#v9-2-0" id="id215">v9.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id4" id="id214">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id5" id="id215">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id3" id="id216">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id4" id="id217">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id5" id="id218">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id6" id="id219">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v9-1-0" id="id216">v9.1.0</a></p>
+<li><p><a class="reference internal" href="#v9-1-1" id="id220">v9.1.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id6" id="id217">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id7" id="id218">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#deprecated-features" id="id219">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id8" id="id220">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id9" id="id221">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id7" id="id221">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id8" id="id222">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v9-0-0" id="id222">v9.0.0</a></p>
+<li><p><a class="reference internal" href="#v9-1-0" id="id223">v9.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id10" id="id223">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#major-changes" id="id224">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id11" id="id225">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#breaking-changes-porting-guide" id="id226">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id12" id="id227">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id13" id="id228">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id14" id="id229">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id9" id="id224">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id10" id="id225">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#deprecated-features" id="id226">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id11" id="id227">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id12" id="id228">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-2-3" id="id230">v8.2.3</a></p>
+<li><p><a class="reference internal" href="#v9-0-0" id="id229">v9.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id15" id="id231">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id16" id="id232">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id13" id="id230">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#major-changes" id="id231">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id14" id="id232">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#breaking-changes-porting-guide" id="id233">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id15" id="id234">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id16" id="id235">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id17" id="id236">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-2-2" id="id233">v8.2.2</a></p>
+<li><p><a class="reference internal" href="#v8-2-3" id="id237">v8.2.3</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id17" id="id234">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id18" id="id235">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id18" id="id238">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id19" id="id239">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-2-1" id="id236">v8.2.1</a></p>
+<li><p><a class="reference internal" href="#v8-2-2" id="id240">v8.2.2</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id19" id="id237">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id20" id="id238">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id20" id="id241">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id21" id="id242">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-2-0" id="id239">v8.2.0</a></p>
+<li><p><a class="reference internal" href="#v8-2-1" id="id243">v8.2.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id21" id="id240">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id22" id="id241">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id23" id="id242">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id24" id="id243">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id22" id="id244">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id23" id="id245">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-1-0" id="id244">v8.1.0</a></p>
+<li><p><a class="reference internal" href="#v8-2-0" id="id246">v8.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id25" id="id245">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id26" id="id246">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id24" id="id247">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id25" id="id248">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id26" id="id249">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id27" id="id250">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-0-1" id="id247">v8.0.1</a></p>
+<li><p><a class="reference internal" href="#v8-1-0" id="id251">v8.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id27" id="id248">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id28" id="id249">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id28" id="id252">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id29" id="id253">Minor Changes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v8-0-0" id="id250">v8.0.0</a></p>
+<li><p><a class="reference internal" href="#v8-0-1" id="id254">v8.0.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id29" id="id251">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id30" id="id252">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id31" id="id253">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id32" id="id254">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#removed-features-previously-deprecated" id="id255">Removed Features (previously deprecated)</a></p></li>
-<li><p><a class="reference internal" href="#id33" id="id256">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id30" id="id255">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id31" id="id256">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-6-1" id="id257">v7.6.1</a></p>
+<li><p><a class="reference internal" href="#v8-0-0" id="id257">v8.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id34" id="id258">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id35" id="id259">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id32" id="id258">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id33" id="id259">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id34" id="id260">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id35" id="id261">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#removed-features-previously-deprecated" id="id262">Removed Features (previously deprecated)</a></p></li>
+<li><p><a class="reference internal" href="#id36" id="id263">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-6-0" id="id260">v7.6.0</a></p>
+<li><p><a class="reference internal" href="#v7-6-1" id="id264">v7.6.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id36" id="id261">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id37" id="id262">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id38" id="id263">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id39" id="id264">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id40" id="id265">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id37" id="id265">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id38" id="id266">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-5-0" id="id266">v7.5.0</a></p>
+<li><p><a class="reference internal" href="#v7-6-0" id="id267">v7.6.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id41" id="id267">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id42" id="id268">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id43" id="id269">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id39" id="id268">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id40" id="id269">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id41" id="id270">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id42" id="id271">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id43" id="id272">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-4-0" id="id270">v7.4.0</a></p>
+<li><p><a class="reference internal" href="#v7-5-0" id="id273">v7.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id44" id="id271">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id45" id="id272">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id46" id="id273">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id47" id="id274">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id44" id="id274">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id45" id="id275">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id46" id="id276">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-3-0" id="id275">v7.3.0</a></p>
+<li><p><a class="reference internal" href="#v7-4-0" id="id277">v7.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id48" id="id276">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id49" id="id277">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id50" id="id278">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id47" id="id278">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id48" id="id279">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id49" id="id280">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id50" id="id281">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-2-0" id="id279">v7.2.0</a></p>
+<li><p><a class="reference internal" href="#v7-3-0" id="id282">v7.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id51" id="id280">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id52" id="id281">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id53" id="id282">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id51" id="id283">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id52" id="id284">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id53" id="id285">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-1-0" id="id283">v7.1.0</a></p>
+<li><p><a class="reference internal" href="#v7-2-0" id="id286">v7.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id54" id="id284">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id55" id="id285">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id56" id="id286">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id54" id="id287">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id55" id="id288">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id56" id="id289">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v7-0-0" id="id287">v7.0.0</a></p>
+<li><p><a class="reference internal" href="#v7-1-0" id="id290">v7.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id57" id="id288">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id58" id="id289">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id59" id="id290">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id60" id="id291">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id61" id="id292">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id62" id="id293">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id63" id="id294">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id57" id="id291">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id58" id="id292">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id59" id="id293">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-5-4" id="id295">v6.5.4</a></p>
+<li><p><a class="reference internal" href="#v7-0-0" id="id294">v7.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id64" id="id296">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id65" id="id297">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id60" id="id295">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id61" id="id296">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id62" id="id297">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id63" id="id298">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id64" id="id299">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id65" id="id300">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id66" id="id301">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-5-3" id="id298">v6.5.3</a></p>
+<li><p><a class="reference internal" href="#v6-5-4" id="id302">v6.5.4</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id66" id="id299">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id67" id="id300">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id67" id="id303">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id68" id="id304">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-5-2" id="id301">v6.5.2</a></p>
+<li><p><a class="reference internal" href="#v6-5-3" id="id305">v6.5.3</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id68" id="id302">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id69" id="id303">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id69" id="id306">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id70" id="id307">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-5-1" id="id304">v6.5.1</a></p>
+<li><p><a class="reference internal" href="#v6-5-2" id="id308">v6.5.2</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id70" id="id305">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id71" id="id306">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id72" id="id307">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id71" id="id309">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id72" id="id310">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-5-0" id="id308">v6.5.0</a></p>
+<li><p><a class="reference internal" href="#v6-5-1" id="id311">v6.5.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id73" id="id309">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id74" id="id310">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id75" id="id311">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id73" id="id312">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id74" id="id313">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id75" id="id314">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-4-0" id="id312">v6.4.0</a></p>
+<li><p><a class="reference internal" href="#v6-5-0" id="id315">v6.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id76" id="id313">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id77" id="id314">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id78" id="id315">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id79" id="id316">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id76" id="id316">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id77" id="id317">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id78" id="id318">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-3-0" id="id317">v6.3.0</a></p>
+<li><p><a class="reference internal" href="#v6-4-0" id="id319">v6.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id80" id="id318">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id81" id="id319">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id82" id="id320">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id79" id="id320">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id80" id="id321">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id81" id="id322">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id82" id="id323">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-2-0" id="id321">v6.2.0</a></p>
+<li><p><a class="reference internal" href="#v6-3-0" id="id324">v6.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id83" id="id322">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id84" id="id323">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id85" id="id324">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id86" id="id325">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id83" id="id325">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id84" id="id326">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id85" id="id327">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-1-0" id="id326">v6.1.0</a></p>
+<li><p><a class="reference internal" href="#v6-2-0" id="id328">v6.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id87" id="id327">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id88" id="id328">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id89" id="id329">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id90" id="id330">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id86" id="id329">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id87" id="id330">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id88" id="id331">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id89" id="id332">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-0-1" id="id331">v6.0.1</a></p>
+<li><p><a class="reference internal" href="#v6-1-0" id="id333">v6.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id91" id="id332">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id92" id="id333">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id90" id="id334">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id91" id="id335">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id92" id="id336">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id93" id="id337">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v6-0-0" id="id334">v6.0.0</a></p>
+<li><p><a class="reference internal" href="#v6-0-1" id="id338">v6.0.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id93" id="id335">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id94" id="id336">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id95" id="id337">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id96" id="id338">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id97" id="id339">Removed Features (previously deprecated)</a></p></li>
-<li><p><a class="reference internal" href="#id98" id="id340">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#new-plugins" id="id341">New Plugins</a></p>
+<li><p><a class="reference internal" href="#id94" id="id339">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id95" id="id340">Bugfixes</a></p></li>
+</ul>
+</li>
+<li><p><a class="reference internal" href="#v6-0-0" id="id341">v6.0.0</a></p>
+<ul>
+<li><p><a class="reference internal" href="#id96" id="id342">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id97" id="id343">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id98" id="id344">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id99" id="id345">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id100" id="id346">Removed Features (previously deprecated)</a></p></li>
+<li><p><a class="reference internal" href="#id101" id="id347">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#new-plugins" id="id348">New Plugins</a></p>
 <ul>
-<li><p><a class="reference internal" href="#lookup" id="id342">Lookup</a></p></li>
+<li><p><a class="reference internal" href="#lookup" id="id349">Lookup</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#id99" id="id343">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id102" id="id350">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-5-3" id="id344">v5.5.3</a></p>
+<li><p><a class="reference internal" href="#v5-5-3" id="id351">v5.5.3</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id100" id="id345">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id101" id="id346">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id103" id="id352">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id104" id="id353">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-5-2" id="id347">v5.5.2</a></p>
+<li><p><a class="reference internal" href="#v5-5-2" id="id354">v5.5.2</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id102" id="id348">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id105" id="id355">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-5-1" id="id349">v5.5.1</a></p>
+<li><p><a class="reference internal" href="#v5-5-1" id="id356">v5.5.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id103" id="id350">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id104" id="id351">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id106" id="id357">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id107" id="id358">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-5-0" id="id352">v5.5.0</a></p>
+<li><p><a class="reference internal" href="#v5-5-0" id="id359">v5.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id105" id="id353">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id106" id="id354">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id107" id="id355">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id108" id="id356">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id108" id="id360">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id109" id="id361">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id110" id="id362">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id111" id="id363">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-4-0" id="id357">v5.4.0</a></p>
+<li><p><a class="reference internal" href="#v5-4-0" id="id364">v5.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id109" id="id358">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id110" id="id359">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id111" id="id360">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id112" id="id365">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id113" id="id366">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id114" id="id367">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-3-0" id="id361">v5.3.0</a></p>
+<li><p><a class="reference internal" href="#v5-3-0" id="id368">v5.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id112" id="id362">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id113" id="id363">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id114" id="id364">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id115" id="id365">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id115" id="id369">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id116" id="id370">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id117" id="id371">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id118" id="id372">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-2-0" id="id366">v5.2.0</a></p>
+<li><p><a class="reference internal" href="#v5-2-0" id="id373">v5.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id116" id="id367">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id117" id="id368">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id118" id="id369">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id119" id="id374">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id120" id="id375">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id121" id="id376">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-1-0" id="id370">v5.1.0</a></p>
+<li><p><a class="reference internal" href="#v5-1-0" id="id377">v5.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id119" id="id371">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id120" id="id372">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id121" id="id373">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#security-fixes" id="id374">Security Fixes</a></p></li>
-<li><p><a class="reference internal" href="#id122" id="id375">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id122" id="id378">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id123" id="id379">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id124" id="id380">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#security-fixes" id="id381">Security Fixes</a></p></li>
+<li><p><a class="reference internal" href="#id125" id="id382">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-0-2" id="id376">v5.0.2</a></p>
+<li><p><a class="reference internal" href="#v5-0-2" id="id383">v5.0.2</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id123" id="id377">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id126" id="id384">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-0-1" id="id378">v5.0.1</a></p>
+<li><p><a class="reference internal" href="#v5-0-1" id="id385">v5.0.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id124" id="id379">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id127" id="id386">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v5-0-0" id="id380">v5.0.0</a></p>
+<li><p><a class="reference internal" href="#v5-0-0" id="id387">v5.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id125" id="id381">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id126" id="id382">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id127" id="id383">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id128" id="id384">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id129" id="id385">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id130" id="id386">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id131" id="id387">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id128" id="id388">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id129" id="id389">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id130" id="id390">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id131" id="id391">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id132" id="id392">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id133" id="id393">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id134" id="id394">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-5-0" id="id388">v4.5.0</a></p>
+<li><p><a class="reference internal" href="#v4-5-0" id="id395">v4.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id132" id="id389">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id133" id="id390">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id134" id="id391">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id135" id="id396">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id136" id="id397">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id137" id="id398">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-4-0" id="id392">v4.4.0</a></p>
+<li><p><a class="reference internal" href="#v4-4-0" id="id399">v4.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id135" id="id393">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id136" id="id394">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id137" id="id395">Security Fixes</a></p></li>
+<li><p><a class="reference internal" href="#id138" id="id400">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id139" id="id401">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id140" id="id402">Security Fixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-3-0" id="id396">v4.3.0</a></p>
+<li><p><a class="reference internal" href="#v4-3-0" id="id403">v4.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id138" id="id397">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id139" id="id398">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id140" id="id399">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id141" id="id404">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id142" id="id405">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id143" id="id406">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-2-0" id="id400">v4.2.0</a></p>
+<li><p><a class="reference internal" href="#v4-2-0" id="id407">v4.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id141" id="id401">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id142" id="id402">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id144" id="id408">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id145" id="id409">Deprecated Features</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-1-0" id="id403">v4.1.0</a></p>
+<li><p><a class="reference internal" href="#v4-1-0" id="id410">v4.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id143" id="id404">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id144" id="id405">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id145" id="id406">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id146" id="id411">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id147" id="id412">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id148" id="id413">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v4-0-0" id="id407">v4.0.0</a></p>
+<li><p><a class="reference internal" href="#v4-0-0" id="id414">v4.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id146" id="id408">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id147" id="id409">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id148" id="id410">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id149" id="id411">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id150" id="id412">Removed Features (previously deprecated)</a></p></li>
-<li><p><a class="reference internal" href="#id151" id="id413">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id149" id="id415">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id150" id="id416">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id151" id="id417">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id152" id="id418">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id153" id="id419">Removed Features (previously deprecated)</a></p></li>
+<li><p><a class="reference internal" href="#id154" id="id420">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-5-1" id="id414">v3.5.1</a></p>
+<li><p><a class="reference internal" href="#v3-5-1" id="id421">v3.5.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id152" id="id415">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id153" id="id416">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id154" id="id417">Security Fixes</a></p></li>
+<li><p><a class="reference internal" href="#id155" id="id422">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id156" id="id423">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id157" id="id424">Security Fixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-5-0" id="id418">v3.5.0</a></p>
+<li><p><a class="reference internal" href="#v3-5-0" id="id425">v3.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id155" id="id419">Release Summary</a></p></li>
-<li><p><a class="reference internal" href="#id156" id="id420">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id157" id="id421">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id158" id="id426">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id159" id="id427">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id160" id="id428">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-4-0" id="id422">v3.4.0</a></p>
+<li><p><a class="reference internal" href="#v3-4-0" id="id429">v3.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id158" id="id423">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id159" id="id424">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id161" id="id430">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id162" id="id431">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-3-1" id="id425">v3.3.1</a></p>
+<li><p><a class="reference internal" href="#v3-3-1" id="id432">v3.3.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id160" id="id426">Release Summary</a></p></li>
+<li><p><a class="reference internal" href="#id163" id="id433">Release Summary</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-3-0" id="id427">v3.3.0</a></p>
+<li><p><a class="reference internal" href="#v3-3-0" id="id434">v3.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id161" id="id428">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id162" id="id429">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id164" id="id435">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id165" id="id436">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-2-0" id="id430">v3.2.0</a></p>
+<li><p><a class="reference internal" href="#v3-2-0" id="id437">v3.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id163" id="id431">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id164" id="id432">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id166" id="id438">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id167" id="id439">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-1-1" id="id433">v3.1.1</a></p>
+<li><p><a class="reference internal" href="#v3-1-1" id="id440">v3.1.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id165" id="id434">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id168" id="id441">Minor Changes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-1-0" id="id435">v3.1.0</a></p>
+<li><p><a class="reference internal" href="#v3-1-0" id="id442">v3.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id166" id="id436">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id167" id="id437">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id168" id="id438">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id169" id="id443">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id170" id="id444">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id171" id="id445">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v3-0-0" id="id439">v3.0.0</a></p>
+<li><p><a class="reference internal" href="#v3-0-0" id="id446">v3.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id169" id="id440">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id170" id="id441">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id171" id="id442">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id172" id="id443">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id172" id="id447">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id173" id="id448">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id174" id="id449">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id175" id="id450">Deprecated Features</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v2-3-0" id="id444">v2.3.0</a></p>
+<li><p><a class="reference internal" href="#v2-3-0" id="id451">v2.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id173" id="id445">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id176" id="id452">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v2-2-0" id="id446">v2.2.0</a></p>
+<li><p><a class="reference internal" href="#v2-2-0" id="id453">v2.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id174" id="id447">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id175" id="id448">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id177" id="id454">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id178" id="id455">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v2-1-0" id="id449">v2.1.0</a></p>
+<li><p><a class="reference internal" href="#v2-1-0" id="id456">v2.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id176" id="id450">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id177" id="id451">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id178" id="id452">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id179" id="id457">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id180" id="id458">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id181" id="id459">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v2-0-0" id="id453">v2.0.0</a></p>
+<li><p><a class="reference internal" href="#v2-0-0" id="id460">v2.0.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id179" id="id454">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id180" id="id455">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id181" id="id456">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id182" id="id457">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id183" id="id458">Bugfixes</a></p></li>
-<li><p><a class="reference internal" href="#id184" id="id459">New Modules</a></p></li>
+<li><p><a class="reference internal" href="#id182" id="id461">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id183" id="id462">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id184" id="id463">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id185" id="id464">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id186" id="id465">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id187" id="id466">New Modules</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-5-1" id="id460">v1.5.1</a></p>
+<li><p><a class="reference internal" href="#v1-5-1" id="id467">v1.5.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id185" id="id461">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id186" id="id462">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id188" id="id468">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id189" id="id469">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-5-0" id="id463">v1.5.0</a></p>
+<li><p><a class="reference internal" href="#v1-5-0" id="id470">v1.5.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id187" id="id464">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id188" id="id465">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id190" id="id471">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id191" id="id472">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-4-1" id="id466">v1.4.1</a></p>
+<li><p><a class="reference internal" href="#v1-4-1" id="id473">v1.4.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id189" id="id467">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id192" id="id474">Minor Changes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-4-0" id="id468">v1.4.0</a></p>
+<li><p><a class="reference internal" href="#v1-4-0" id="id475">v1.4.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id190" id="id469">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id191" id="id470">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id193" id="id476">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id194" id="id477">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-3-0" id="id471">v1.3.0</a></p>
+<li><p><a class="reference internal" href="#v1-3-0" id="id478">v1.3.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id192" id="id472">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id193" id="id473">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id195" id="id479">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id196" id="id480">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-2-1" id="id474">v1.2.1</a></p>
+<li><p><a class="reference internal" href="#v1-2-1" id="id481">v1.2.1</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id194" id="id475">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id197" id="id482">Minor Changes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-2-0" id="id476">v1.2.0</a></p>
+<li><p><a class="reference internal" href="#v1-2-0" id="id483">v1.2.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id195" id="id477">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id196" id="id478">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id197" id="id479">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id198" id="id484">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id199" id="id485">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id200" id="id486">Bugfixes</a></p></li>
 </ul>
 </li>
-<li><p><a class="reference internal" href="#v1-1-0" id="id480">v1.1.0</a></p>
+<li><p><a class="reference internal" href="#v1-1-0" id="id487">v1.1.0</a></p>
 <ul>
-<li><p><a class="reference internal" href="#id198" id="id481">Major Changes</a></p></li>
-<li><p><a class="reference internal" href="#id199" id="id482">Minor Changes</a></p></li>
-<li><p><a class="reference internal" href="#id200" id="id483">Breaking Changes / Porting Guide</a></p></li>
-<li><p><a class="reference internal" href="#id201" id="id484">Deprecated Features</a></p></li>
-<li><p><a class="reference internal" href="#id202" id="id485">Bugfixes</a></p></li>
+<li><p><a class="reference internal" href="#id201" id="id488">Major Changes</a></p></li>
+<li><p><a class="reference internal" href="#id202" id="id489">Minor Changes</a></p></li>
+<li><p><a class="reference internal" href="#id203" id="id490">Breaking Changes / Porting Guide</a></p></li>
+<li><p><a class="reference internal" href="#id204" id="id491">Deprecated Features</a></p></li>
+<li><p><a class="reference internal" href="#id205" id="id492">Bugfixes</a></p></li>
 </ul>
 </li>
 </ul>
 </li>
 </ul>
 </nav>
-<section id="v9-3-0">
-<h2><a class="toc-backref" href="#id204" role="doc-backlink">v9.3.0</a><a class="headerlink" href="#v9-3-0" title="Link to this heading"></a></h2>
+<section id="v9-4-0">
+<h2><a class="toc-backref" href="#id207" role="doc-backlink">v9.4.0</a><a class="headerlink" href="#v9-4-0" title="Link to this heading"></a></h2>
 <section id="release-summary">
-<h3><a class="toc-backref" href="#id205" role="doc-backlink">Release Summary</a><a class="headerlink" href="#release-summary" title="Link to this heading"></a></h3>
-<p>This minor release includes two new modules (<code class="docutils literal notranslate"><span class="pre">ec2_dedicated_host</span></code> and <code class="docutils literal notranslate"><span class="pre">ec2_dedicated_host_info</span></code>) and a new feature for the <code class="docutils literal notranslate"><span class="pre">s3_object</span></code> module that now supports passing metadata in <code class="docutils literal notranslate"><span class="pre">create</span></code> mode.</p>
+<h3><a class="toc-backref" href="#id208" role="doc-backlink">Release Summary</a><a class="headerlink" href="#release-summary" title="Link to this heading"></a></h3>
+<p>This minor release includes bug fixes and minor changes to validate the collection against the future <code class="docutils literal notranslate"><span class="pre">ansible-core</span> <span class="pre">2.19</span></code> version.</p>
 </section>
 <section id="minor-changes">
-<h3><a class="toc-backref" href="#id206" role="doc-backlink">Minor Changes</a><a class="headerlink" href="#minor-changes" title="Link to this heading"></a></h3>
+<h3><a class="toc-backref" href="#id209" role="doc-backlink">Minor Changes</a><a class="headerlink" href="#minor-changes" title="Link to this heading"></a></h3>
+<ul class="simple">
+<li><p>inventory/aws_ec2 - Update templating mechanism to support ansible-core 2.19 changes (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2552">https://github.com/ansible-collections/amazon.aws/pull/2552</a>).</p></li>
+</ul>
+</section>
+<section id="bugfixes">
+<h3><a class="toc-backref" href="#id210" role="doc-backlink">Bugfixes</a><a class="headerlink" href="#bugfixes" title="Link to this heading"></a></h3>
+<ul class="simple">
+<li><p>lookup/aws_account_attribute - plugin should return a list when <code class="docutils literal notranslate"><span class="pre">wantlist=True</span></code> (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2552">https://github.com/ansible-collections/amazon.aws/pull/2552</a>).</p></li>
+</ul>
+</section>
+</section>
+<section id="v9-3-0">
+<h2><a class="toc-backref" href="#id211" role="doc-backlink">v9.3.0</a><a class="headerlink" href="#v9-3-0" title="Link to this heading"></a></h2>
+<section id="id1">
+<h3><a class="toc-backref" href="#id212" role="doc-backlink">Release Summary</a><a class="headerlink" href="#id1" title="Link to this heading"></a></h3>
+<p>This minor release includes two new modules (<code class="docutils literal notranslate"><span class="pre">ec2_dedicated_host</span></code> and <code class="docutils literal notranslate"><span class="pre">ec2_dedicated_host_info</span></code>) and a new feature for the <code class="docutils literal notranslate"><span class="pre">s3_object</span></code> module that now supports passing metadata in <code class="docutils literal notranslate"><span class="pre">create</span></code> mode.</p>
+</section>
+<section id="id2">
+<h3><a class="toc-backref" href="#id213" role="doc-backlink">Minor Changes</a><a class="headerlink" href="#id2" title="Link to this heading"></a></h3>
 <ul class="simple">
 <li><p>s3_object - support passing metadata in <code class="docutils literal notranslate"><span class="pre">create</span></code> mode (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2529">https://github.com/ansible-collections/amazon.aws/pull/2529</a>).</p></li>
 </ul>
 </section>
 <section id="new-modules">
-<h3><a class="toc-backref" href="#id207" role="doc-backlink">New Modules</a><a class="headerlink" href="#new-modules" title="Link to this heading"></a></h3>
+<h3><a class="toc-backref" href="#id214" role="doc-backlink">New Modules</a><a class="headerlink" href="#new-modules" title="Link to this heading"></a></h3>
 <ul class="simple">
 <li><p>ec2_dedicated_host - Create, update or delete (release) EC2 dedicated host</p></li>
 <li><p>ec2_dedicated_host_info - Gather information about EC2 Dedicated Hosts in AWS</p></li>
@@ -656,13 +682,13 @@
 </section>
 </section>
 <section id="v9-2-0">
-<h2><a class="toc-backref" href="#id208" role="doc-backlink">v9.2.0</a><a class="headerlink" href="#v9-2-0" title="Link to this heading"></a></h2>
-<section id="id1">
-<h3><a class="toc-backref" href="#id209" role="doc-backlink">Release Summary</a><a class="headerlink" href="#id1" title="Link to this heading"></a></h3>
+<h2><a class="toc-backref" href="#id215" role="doc-backlink">v9.2.0</a><a class="headerlink" href="#v9-2-0" title="Link to this heading"></a></h2>
+<section id="id3">
+<h3><a class="toc-backref" href="#id216" role="doc-backlink">Release Summary</a><a class="headerlink" href="#id3" title="Link to this heading"></a></h3>
 <p>This release includes a new module <code class="docutils literal notranslate"><span class="pre">route53_key_signing_key</span></code>, bug fixes, minor changes, and linting corrections across multiple modules.</p>
 </section>
-<section id="id2">
-<h3><a class="toc-backref" href="#id210" role="doc-backlink">Minor Changes</a><a class="headerlink" href="#id2" title="Link to this heading"></a></h3>
+<section id="id4">
+<h3><a class="toc-backref" href="#id217" role="doc-backlink">Minor Changes</a><a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
 <ul class="simple">
 <li><p>autoscaling_group - avoid assignment to unused variable in except block (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2464">https://github.com/ansible-collections/amazon.aws/pull/2464</a>).</p></li>
 <li><p>ec2_ami - avoid redefining <code class="docutils literal notranslate"><span class="pre">delete_snapshot</span></code> inside <code class="docutils literal notranslate"><span class="pre">DeregisterImage.do</span></code> (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2444">https://github.com/ansible-collections/amazon.aws/pull/2444</a>).</p></li>
@@ -694,8 +720,8 @@
 <li><p>s3_object_info - avoid assignment to unused variable in except block (<a class="reference external" href="https://github.com/ansible-collections/amazon.aws/pull/2464">https://github.com/ansible-collections/amazon.aws/pull/2464</a>).</p></li>
 </ul>
 </section>
-<section id="bugfixes">
-<h3><a class="toc-backref" href="#id211" role="doc-backlink">Bugfixes</a><a class="headerlink" href="#bugfixes" title="Link to this heading"></a></h3>
+<section id="id5">
+<h3><a class="toc-backref" href="#id218" role="doc-backlink">Bugfixes</a><a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
 <ul class="simple">
 <li><p>ec2_instance - Fix issue where EC2 instance module failed to apply security groups when both <code class="docutils literal notranslate"><sp

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/7346f18312a14c0f9f225adc93fcbcb3

ansible-galaxy-importer FAILURE in 5m 31s
✔️ build-ansible-collection SUCCESS in 10m 42s
✔️ ansible-test-splitter SUCCESS in 4m 12s
integration-amazon.aws-1 FAILURE in 9m 54s
integration-amazon.aws-2 FAILURE in 11m 23s
integration-amazon.aws-3 FAILURE in 12m 52s
integration-amazon.aws-4 FAILURE in 9m 47s
integration-amazon.aws-5 FAILURE in 18m 14s
integration-amazon.aws-6 FAILURE in 9m 28s
Skipped 38 jobs

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/0298c9bb8c9444669a352465ffd47ad1

ansible-galaxy-importer FAILURE in 3m 59s
✔️ build-ansible-collection SUCCESS in 10m 41s
✔️ ansible-test-splitter SUCCESS in 3m 52s
integration-amazon.aws-1 FAILURE in 9m 13s
integration-amazon.aws-2 FAILURE in 9m 30s
integration-amazon.aws-3 FAILURE in 10m 55s
integration-amazon.aws-4 FAILURE in 8m 53s
integration-amazon.aws-5 FAILURE in 17m 15s
integration-amazon.aws-6 FAILURE in 9m 41s
Skipped 38 jobs

@randoneering
Copy link
Author

Tried to understand what I'm missing in the failed checks, but also hoping to grab some help on the error I am receiving when trying to use the added feature. My past experience with KeyValue errors was that at variable or field was empty. Again, I could be missing a piece in the modify params function, but would love any help I can get. Thank you.

Copy link
Collaborator

@alinabuzachis alinabuzachis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@randoneering Thank you for working on these feature idea. Could you please add a changelog fragment https://docs.ansible.com/ansible/latest/community/development_process.html#creating-a-changelog-fragment. Also, could you add some integration tests to validate the new options?

@@ -97,6 +97,10 @@
description:
- The character set to associate with the DB cluster.
type: str
database_insights_mode
description:
- Indicates which mode of Database Insights to enable for the target DB cluster. Options are 'advanced' or 'standard'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to use choices: ['advanced', 'standard'] for this parameter

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are the values that are expected when modifying an rds cluster:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds/client/modify_db_cluster.html

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With choices it would look like this:

Suggested change
- Indicates which mode of Database Insights to enable for the target DB cluster. Options are 'advanced' or 'standard'
- Indicates which mode of Database Insights to enable for the target DB cluster.
choices:
- standard
- advanced

(You'll also have to add choices to the argument spec for that option.)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled in next commit

@alinabuzachis
Copy link
Collaborator

@randoneering Regarding the errors in the CI. It seems there's an unicode char, maybe this got introduced in the copy/paste process?

  amazon.aws.rds_cluster module: Missing documentation or could not parse documentation: amazon.aws.rds_cluster did not contain a DOCUMENTATION attribute (/home/runner/work/amazon.aws/amazon.aws/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py). Unable to parse documentation in python file '/home/runner/work/amazon.aws/amazon.aws/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py': while scanning a simple key
        in "<unicode string>", line 93, column 5
      could not find expected ':'
        in "<unicode string>", line 94, column 20. while scanning a simple key
        in "<unicode string>", line 93, column 5
      could not find expected ':'
        in "<unicode string>", line 94, column 20
  ~/work/amazon.aws/amazon.aws

While regarding the other job failing, it seems that inside changing_cluster_options it cannot access EnablePerformanceInsights key, that's why you see \nKeyError: 'EnablePerformanceInsights'\n",

   File "/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py", line 1235, in ensure_present
2025-03-06 04:26:08.760602 | controller |   File "/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py", line 1136, in changing_cluster_options
2025-03-06 04:26:08.760609 | controller | KeyError: 'EnablePerformanceInsights'
2025-03-06 04:26:08.760617 | controller | fatal: [testhost]: FAILED! => {
2025-03-06 04:26:08.760624 | controller |     "changed": false,
2025-03-06 04:26:08.760647 | controller |     "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 121, in <module>\n  File \"<stdin>\", line 113, in _ansiballz_main\n  File \"<stdin>\", line 61, in invoke_module\n  File \"<frozen runpy>\", line 226, in run_module\n  File \"<frozen runpy>\", line 98, in _run_module_code\n  File \"<frozen runpy>\", line 88, in _run_code\n  File \"/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1495, in <module>\n  File \"/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1473, in main\n  File \"/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1235, in ensure_present\n  File \"/tmp/ansible_amazon.aws.rds_cluster_payload_tfmbpec9/ansible_amazon.aws.rds_cluster_payload.zip/ansible_collections/amazon/aws/plugins/modules/rds_cluster.py\", line 1136, in changing_cluster_options\nKeyError: 'EnablePerformanceInsights'\n",
2025-03-06 04:26:08.760657 | controller |     "module_stdout": "",
2025-03-06 04:26:08.760665 | controller |     "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
2025-03-06 04:26:08.760675 | controller |     "rc": 1

Let me know please if it helps or if you need more information.

@randoneering
Copy link
Author

@alinabuzachis I added the requested changes, but will work on identifying why the changing_clusters_options cannot access the 'EnablePerformanceInsight' "key". I can also reach out in the forums if I cannot figure out why, but I will give it another look.

As far as the unicode issue, I went ahead and cleared out the lines that were called out in the previous error, and then manually typed in the text that was removed. But it seems that, despite having different lines called out, we are still getting the error. I will also look into this further tomorrow to Friday.

I did not see the documentation on contributing, so that is on me. Thank you for sharing that. I will ensure I am following the correct process on the next PR.

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/39786d720afb4f828d26c807a63227cf

ansible-galaxy-importer FAILURE in 4m 50s
✔️ build-ansible-collection SUCCESS in 10m 37s
✔️ ansible-test-splitter SUCCESS in 4m 13s
integration-amazon.aws-1 FAILURE in 8m 24s
integration-amazon.aws-2 FAILURE in 9m 12s
integration-amazon.aws-3 FAILURE in 9m 56s
integration-amazon.aws-4 FAILURE in 9m 11s
integration-amazon.aws-5 FAILURE in 16m 36s
integration-amazon.aws-6 FAILURE in 9m 12s
Skipped 38 jobs

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/f41d6f66b39841b6a63b10629fed37d2

ansible-galaxy-importer FAILURE in 4m 42s
✔️ build-ansible-collection SUCCESS in 10m 36s
✔️ ansible-test-splitter SUCCESS in 5m 09s
integration-amazon.aws-1 FAILURE in 9m 38s
integration-amazon.aws-2 FAILURE in 9m 48s
integration-amazon.aws-3 FAILURE in 10m 57s
integration-amazon.aws-4 FAILURE in 13m 58s
integration-amazon.aws-5 FAILURE in 16m 44s
integration-amazon.aws-6 FAILURE in 13m 11s
Skipped 38 jobs

@@ -97,6 +97,11 @@
description:
- The character set to associate with the DB cluster.
type: str
database_insights_mode
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's another one:

Suggested change
database_insights_mode
database_insights_mode:

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled in next commit.

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/07127a2741ef47699f6241caa6fbfca0

✔️ ansible-galaxy-importer SUCCESS in 5m 31s
✔️ build-ansible-collection SUCCESS in 10m 06s
✔️ ansible-test-splitter SUCCESS in 3m 49s
integration-amazon.aws-1 FAILURE in 9m 28s
integration-amazon.aws-2 FAILURE in 8m 32s
integration-amazon.aws-3 FAILURE in 10m 17s
integration-amazon.aws-4 FAILURE in 8m 29s
integration-amazon.aws-5 FAILURE in 16m 32s
integration-amazon.aws-6 FAILURE in 8m 28s
Skipped 38 jobs

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/c271684991ab4d149998443c085bd4e5

✔️ ansible-galaxy-importer SUCCESS in 4m 59s
✔️ build-ansible-collection SUCCESS in 10m 22s
✔️ ansible-test-splitter SUCCESS in 3m 54s
integration-amazon.aws-1 FAILURE in 9m 08s
integration-amazon.aws-2 FAILURE in 10m 00s
integration-amazon.aws-3 FAILURE in 12m 58s
integration-amazon.aws-4 FAILURE in 9m 08s
integration-amazon.aws-5 FAILURE in 18m 47s
integration-amazon.aws-6 FAILURE in 9m 11s
Skipped 38 jobs

Copy link
Contributor

@Andersson007 Andersson007 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@randoneering hello, thanks for the PR! I saw your forum post and see folks are already helping here. A couple of considerations from me:

  • Is there any relationships between the new arguments, e.g. one can be used only when another one is specified, etc? If yes, we should specify it when instantiating the AnsibleModule class, see the doc section, I'm talking of things like required_together, etc.
  • Can we have some tests for these arguments somewhere under the related test targets?

@@ -907,18 +938,22 @@ def get_restore_s3_options(params_dict):
"BacktrackWindow",
"BackupRetentionPeriod",
"CharacterSetName",
"DatabaseInsightsMode",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of these options are supported by https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds/client/restore_db_cluster_from_s3.html#RDS.Client.restore_db_cluster_from_s3. These attributes could be modified after restoring the cluster.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that when I was doing research last night. I haven't changed it yet but currently debugging in difference branch. Thank you for looking into it! If I didn't see it last night, your comment would have!

@@ -944,15 +983,19 @@ def get_restore_snapshot_options(params_dict):
options = [
"AvailabilityZones",
"BacktrackWindow",
"DatabaseInsightsMode",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment above-will fix in next commit!

@@ -969,12 +1012,16 @@ def get_restore_snapshot_options(params_dict):
def get_restore_cluster_options(params_dict):
options = [
"BacktrackWindow",
"DatabaseInsightsMode",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment, will fix in next commit!

- standard
- advanced
type: str
versions_added: 9.4.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new options have the field versions_added, which is causing the CI failure.

Suggested change
versions_added: 9.4.0
version_added: 9.4.0

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch-thanks!

@randoneering
Copy link
Author

Something I also noticed is additional info needed in the documentation to call out the requirements for enabling database insights to advance and moving back to standard. Additionally, disabling performance insights requires a method.

@randoneering
Copy link
Author

Spent plenty of time today at work on this. Got through several bits, but I think I found a bug with boto3 and/or awscli.

Here is me going to one of my ansible runners to test a theory that this is an actual boto3 bug:

[server]$ aws rds modify-db-cluster --db-cluster-identifier ansible-test --performance-insights-retention-period 465 --database-insights-mo de advanced --region us-east-1 


An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: To enable the Advanced mode of Database Insights, modify your cluster to enable Performance Insights and set the retention period for Performance Insights to at least 465 days. 

We can see that even when passing the required param value for retention of 465 (or higher), I still receive the error. So I removed the database insights parameter and ensured we were setting the retention correctly: (removed info not needed in output)

[server]$ aws rds modify-db-cluster --db-cluster-identifier ansible-test --performance-insights-retention-period 465 --region us-east-1 { ... "DBClusterIdentifier": "ansible-test", "DBClusterParameterGroup": "default.aurora-postgresql16", "DatabaseInsightsMode": "standard", "PerformanceInsightsEnabled": true, "PerformanceInsightsKMSKeyId": "redacted", "PerformanceInsightsRetentionPeriod": 465, "NetworkType": "IPV4", "LocalWriteForwardingStatus": "disabled", "EngineLifecycleSupport": "open-source-rds-extended-support-disabled" } } 

Now, to cover my basis, I check to verify that the required 465 or higher value is present for retetion. (removed info not needed from output)

[server]$ aws rds describe-db-clusters --db-cluster-identifier ansible-test --region us-east-1 { "DBClusters": [ { "AllocatedStorage": 1, "AvailabilityZones": [ "us-east-1c", "us-east-1d", "us-east-1a" ], "Status": "available", "MultiAZ": false, "DatabaseInsightsMode": "standard", "PerformanceInsightsEnabled": true, "PerformanceInsightsKMSKeyId": "redacted", "PerformanceInsightsRetentionPeriod": 465, "NetworkType": "IPV4", "LocalWriteForwardingStatus": "disabled", "EngineLifecycleSupport": "open-source-rds-extended-support-disabled" } ] } 

After this, and the same error accord as mentioned above. Therefore, I decided to try and upgrade boto3, botocore, and awscli on my laptop and the ansible runner server. Same error. Current version:

$ aws --version aws-cli/2.25.2 Python/3.12.9 Linux/5.14.0-503.15.1.el9_5.x86_64 exe/x86_64.rhel.9 

Good news is, if we wanted to, I can just exclude the database insights part and we can stick with just adding performance insights until the bug is resolved. I’ll get a ticket open in the boto3 repo. What you all think?

And as far as integration tests go…is it preferred that I modify an existing set of integration tests? Or should I create a single playbook to test, specially, the scenarios of enabling/disabling performance insights, using a specific KMS key?

@s-hertel
Copy link
Collaborator

I haven't tested this so perhaps there is a bug, but I'm wondering if this is just an awkward design. https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds/client/modify_db_cluster.html says:

DatabaseInsightsMode (string) –

Specifies the mode of Database Insights to enable for the DB cluster.

If you change the value from standard to advanced, you must set the PerformanceInsightsEnabled parameter to true and the PerformanceInsightsRetentionPeriod parameter to 465.

If you change the value from advanced to standard, you must set the PerformanceInsightsEnabled parameter to false.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Have you tried passing --enable-performance-insights too, since the DatabaseInsightsMode value is changing from standard to advanced?

aws rds modify-db-cluster --db-cluster-identifier ansible-test --performance-insights-retention-period 465 --database-insights-mode advanced --enable-performance-insights --region us-east-1

I know it's already enabled for the cluster, but the error type InvalidParameterCombination suggests there's something wrong with the request rather than an issue with the existing configuration.

@randoneering
Copy link
Author

I haven't tested this so perhaps there is a bug, but I'm wondering if this is just an awkward design. https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds/client/modify_db_cluster.html says:

DatabaseInsightsMode (string) –

Specifies the mode of Database Insights to enable for the DB cluster.

If you change the value from standard to advanced, you must set the PerformanceInsightsEnabled parameter to true and the PerformanceInsightsRetentionPeriod parameter to 465.

If you change the value from advanced to standard, you must set the PerformanceInsightsEnabled parameter to false.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Have you tried passing --enable-performance-insights too, since the DatabaseInsightsMode value is changing from standard to advanced?

aws rds modify-db-cluster --db-cluster-identifier ansible-test --performance-insights-retention-period 465 --database-insights-mode advanced --enable-performance-insights --region us-east-1

I know it's already enabled for the cluster, but the error type InvalidParameterCombination suggests there's something wrong with the request rather than an issue with the existing configuration.

Yup-that was it. Instead of what I expect --enable-performance-insights true, it needed --enable-performance-insights without a value.

I will look at the module and see how I can make that happen. Thanks!

@randoneering
Copy link
Author

Just moved over some changes I have been working on in local testing. Just haven't had enough time during work to focus on this. However, making headway with the errors I have encountered and the behaviors I have experienced. Because of how enable_performance_insights was implemented, as some of you have suggested, the pattern which you can apply particular settings needs to be exact. I will adjust my contribution accordingly.

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/d1b3625c04d14fbf8c23ee86401c2dcb

✔️ ansible-galaxy-importer SUCCESS in 3m 43s
✔️ build-ansible-collection SUCCESS in 10m 23s
✔️ ansible-test-splitter SUCCESS in 3m 56s
integration-amazon.aws-1 FAILURE in 8m 29s
integration-amazon.aws-2 FAILURE in 8m 14s
integration-amazon.aws-3 FAILURE in 9m 20s
integration-amazon.aws-4 FAILURE in 8m 20s
✔️ integration-amazon.aws-5 SUCCESS in 5m 40s
integration-amazon.aws-6 FAILURE in 15m 30s
integration-amazon.aws-7 FAILURE in 7m 48s
Skipped 37 jobs

Copy link
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/1dd19611cad94f15be9d9c5cbbf28ff8

✔️ ansible-galaxy-importer SUCCESS in 3m 51s
✔️ build-ansible-collection SUCCESS in 10m 41s
✔️ ansible-test-splitter SUCCESS in 3m 57s
integration-amazon.aws-1 FAILURE in 7m 50s
integration-amazon.aws-2 FAILURE in 8m 35s
integration-amazon.aws-3 FAILURE in 9m 33s
integration-amazon.aws-4 FAILURE in 14m 39s
✔️ integration-amazon.aws-5 SUCCESS in 4m 31s
integration-amazon.aws-6 FAILURE in 22m 54s
integration-amazon.aws-7 FAILURE in 9m 35s
Skipped 37 jobs

@randoneering
Copy link
Author

I'll take a look tomorrow at the failed integration tests.

@randoneering
Copy link
Author

I was hoping to get some help, and posted on the Ansible forums. But this PR is going to take awhile for me due to time commitment. I don't know the next time I'll have a break in my work to tackle this and I don't have much free time to do this outside of work. Sorry.

@randoneering
Copy link
Author

@eRadical here is the PR I had open for the performance insights. Feel free to snag whatever you want for the rds_instance implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants