Skip to content

Fix option names - #110

Open
alinabuzachis wants to merge 32 commits into
ansible-collections:mainfrom
alinabuzachis:fix_option_names
Open

Fix option names#110
alinabuzachis wants to merge 32 commits into
ansible-collections:mainfrom
alinabuzachis:fix_option_names

Conversation

@alinabuzachis

@alinabuzachis alinabuzachis commented Jun 30, 2023

Copy link
Copy Markdown
Collaborator
SUMMARY

Add the original option name as an alias to avoid issues when snake cased option names are not correctly reversed to the original CamelCase. Use the alias via the CloudControl API rather than performinng that CamelCase transformations.

Collection re-generated using ansible-community/ansible.content_builder#62

ISSUE TYPE
  • Bugfix Pull Request
COMPONENT NAME
ADDITIONAL INFORMATION

@github-actions

github-actions Bot commented Jun 30, 2023

Copy link
Copy Markdown

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.cloud/actions/runs/6029496303

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

File changes:

  • D collections/amazon/cloud/backup_framework_module.html
  • D collections/amazon/cloud/backup_report_plan_module.html
  • D collections/amazon/cloud/cloudtrail_event_data_store_module.html
  • D collections/amazon/cloud/ec2_placement_group_module.html
  • D collections/amazon/cloud/kms_replica_key_module.html
  • D collections/amazon/cloud/lambda_code_signing_config_module.html
  • D collections/amazon/cloud/lambda_event_source_mapping_module.html
  • D collections/amazon/cloud/logs_query_definition_module.html
  • D collections/amazon/cloud/ssm_resource_data_sync_module.html
  • D collections/amazon/cloud/wafv2_ip_set_module.html
  • D collections/amazon/cloud/wafv2_regex_pattern_set_module.html
  • M collections/amazon/cloud/autoscaling_launch_configuration_module.html
  • M collections/amazon/cloud/autoscaling_lifecycle_hook_module.html
  • M collections/amazon/cloud/autoscaling_warm_pool_module.html
  • M collections/amazon/cloud/backup_backup_vault_module.html
  • M collections/amazon/cloud/cloudtrail_trail_module.html
  • M collections/amazon/cloud/cloudwatch_composite_alarm_module.html
  • M collections/amazon/cloud/cloudwatch_metric_stream_module.html
  • M collections/amazon/cloud/dynamodb_global_table_module.html
  • M collections/amazon/cloud/ecr_repository_module.html
  • M collections/amazon/cloud/ecs_capacity_provider_module.html
  • M collections/amazon/cloud/ecs_cluster_capacity_provider_associations_module.html
  • M collections/amazon/cloud/ecs_cluster_module.html
  • M collections/amazon/cloud/ecs_primary_task_set_module.html
  • M collections/amazon/cloud/eks_addon_module.html
  • M collections/amazon/cloud/eks_cluster_module.html
  • M collections/amazon/cloud/eks_fargate_profile_module.html
  • M collections/amazon/cloud/iam_instance_profile_module.html
  • M collections/amazon/cloud/iam_role_module.html
  • M collections/amazon/cloud/iam_server_certificate_module.html
  • M collections/amazon/cloud/index.html
  • M collections/amazon/cloud/kms_alias_module.html
  • M collections/amazon/cloud/lambda_function_module.html
  • M collections/amazon/cloud/logs_log_group_module.html
  • M collections/amazon/cloud/logs_metric_filter_module.html
  • M collections/amazon/cloud/logs_resource_policy_module.html
  • M collections/amazon/cloud/memorydb_acl_module.html
  • M collections/amazon/cloud/memorydb_cluster_module.html
  • M collections/amazon/cloud/memorydb_parameter_group_module.html
  • M collections/amazon/cloud/memorydb_subnet_group_module.html
  • M collections/amazon/cloud/memorydb_user_module.html
  • M collections/amazon/cloud/rds_db_cluster_parameter_group_module.html
  • M collections/amazon/cloud/rds_db_instance_module.html
  • M collections/amazon/cloud/rds_db_proxy_endpoint_module.html
  • M collections/amazon/cloud/rds_db_proxy_module.html
  • M collections/amazon/cloud/rds_db_subnet_group_module.html
  • M collections/amazon/cloud/rds_global_cluster_module.html
  • M collections/amazon/cloud/rds_option_group_module.html
  • M collections/amazon/cloud/redshift_cluster_module.html
  • M collections/amazon/cloud/redshift_endpoint_access_module.html
  • M collections/amazon/cloud/redshift_endpoint_authorization_module.html
  • M collections/amazon/cloud/redshift_event_subscription_module.html
  • M collections/amazon/cloud/redshift_scheduled_action_module.html
  • M collections/amazon/cloud/route53_dnssec_module.html
  • M collections/amazon/cloud/route53_key_signing_key_module.html
  • M collections/amazon/cloud/s3_access_point_module.html
  • M collections/amazon/cloud/s3_bucket_module.html
  • M collections/amazon/cloud/s3_multi_region_access_point_module.html
  • M collections/amazon/cloud/s3_multi_region_access_point_policy_module.html
  • M collections/amazon/cloud/s3objectlambda_access_point_module.html
  • M collections/amazon/cloud/s3objectlambda_access_point_policy_module.html
  • M collections/amazon/cloud/ssm_document_module.html
  • M collections/amazon/cloud/wafv2_logging_configuration_module.html
  • M collections/amazon/cloud/wafv2_web_acl_association_module.html
  • M collections/index_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.cloud/amazon.cloud/docsbuild/base/collections/amazon/cloud/autoscaling_launch_configuration_module.html b/home/runner/work/amazon.cloud/amazon.cloud/docsbuild/head/collections/amazon/cloud/autoscaling_launch_configuration_module.html
index f05c59f..81a527a 100644
--- a/home/runner/work/amazon.cloud/amazon.cloud/docsbuild/base/collections/amazon/cloud/autoscaling_launch_configuration_module.html
+++ b/home/runner/work/amazon.cloud/amazon.cloud/docsbuild/head/collections/amazon/cloud/autoscaling_launch_configuration_module.html
@@ -196,8 +196,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-associate_public_ip_address"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-associate-public-ip-address"><strong>associate_public_ip_address</strong></p>
-<a class="ansibleOptionLink" href="#parameter-associate_public_ip_address" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-associate_public_ip_address"></div>
+<div class="ansibleOptionAnchor" id="parameter-AssociatePublicIpAddress"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-associatepublicipaddress"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-associate-public-ip-address"></span><strong>associate_public_ip_address</strong></p>
+<a class="ansibleOptionLink" href="#parameter-associate_public_ip_address" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: AssociatePublicIpAddress</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether to assign a public IP address to the groups instances.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -224,29 +226,47 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-block_device_mappings"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings"><strong>block_device_mappings</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings" 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 class="ansibleOptionAnchor" id="parameter-block_device_mappings"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings"></span><strong>block_device_mappings</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: BlockDeviceMappings</span></p>
+<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><em>block_device_mapping</em> is a property of AWS::AutoScaling::LaunchConfiguration that describes a block device mapping for an Auto Scaling group.</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-block_device_mappings/device_name"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-device-name"><strong>device_name</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/device_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/device_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/device_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/DeviceName"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/DeviceName"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-devicename"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-device-name"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-devicename"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-device-name"></span><strong>device_name</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/device_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: DeviceName</span></p>
+<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 device name exposed to the EC2 instance (for example, /dev/sdh or xvdh).</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-block_device_mappings/ebs"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs"><strong>ebs</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs"></span><strong>ebs</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: Ebs</span></p>
+<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>Parameters used to automatically set up EBS volumes when an instance is launched.<em>block_device</em> is a subproperty of <em>block_device_mapping</em> that describes an Amazon EBS volume.</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-block_device_mappings/ebs/delete_on_termination"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-delete-on-termination"><strong>delete_on_termination</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/delete_on_termination" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/delete_on_termination"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/delete_on_termination"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/delete_on_termination"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/delete_on_termination"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/DeleteOnTermination"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/DeleteOnTermination"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/DeleteOnTermination"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/DeleteOnTermination"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-deleteontermination"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-delete-on-termination"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-deleteontermination"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-delete-on-termination"></span><strong>delete_on_termination</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/delete_on_termination" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: DeleteOnTermination</span></p>
+<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>Indicates whether the volume is deleted on instance termination.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -257,8 +277,16 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </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-block_device_mappings/ebs/encrypted"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-encrypted"><strong>encrypted</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/encrypted" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/Encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/Encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/Encrypted"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/Encrypted"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-encrypted"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-encrypted"></span><strong>encrypted</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/encrypted" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: Encrypted</span></p>
+<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>Specifies whether the volume should be encrypted.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -269,43 +297,87 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </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-block_device_mappings/ebs/iops"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-iops"><strong>iops</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/iops" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/Iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/Iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/Iops"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/Iops"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-iops"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-iops"></span><strong>iops</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/iops" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: Iops</span></p>
+<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 input/output (I/O) operations per second (IOPS) to provision for the volume.</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-block_device_mappings/ebs/snapshot_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-snapshot-id"><strong>snapshot_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/snapshot_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/snapshot_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/snapshot_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/snapshot_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/snapshot_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/SnapshotId"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/SnapshotId"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/SnapshotId"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/SnapshotId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-snapshotid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-snapshot-id"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-snapshotid"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-snapshot-id"></span><strong>snapshot_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/snapshot_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: SnapshotId</span></p>
+<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 snapshot ID of the volume to use.</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-block_device_mappings/ebs/throughput"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-throughput"><strong>throughput</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/throughput" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/Throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/Throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/Throughput"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/Throughput"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-throughput"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-throughput"></span><strong>throughput</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/throughput" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: Throughput</span></p>
+<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 throughput (MiBps) to provision for a gp3 volume.</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-block_device_mappings/ebs/volume_size"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volume-size"><strong>volume_size</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/volume_size" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/volume_size"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/volume_size"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/volume_size"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/volume_size"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/VolumeSize"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/VolumeSize"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/VolumeSize"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/VolumeSize"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-volumesize"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-volume-size"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volumesize"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volume-size"></span><strong>volume_size</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/volume_size" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: VolumeSize</span></p>
+<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 volume size, in GiBs.</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-block_device_mappings/ebs/volume_type"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volume-type"><strong>volume_type</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/volume_type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/volume_type"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/volume_type"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/volume_type"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/volume_type"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/ebs/VolumeType"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/ebs/VolumeType"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/Ebs/VolumeType"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/Ebs/VolumeType"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-volumetype"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-ebs-volume-type"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volumetype"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-ebs-volume-type"></span><strong>volume_type</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/ebs/volume_type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: VolumeType</span></p>
+<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 volume type.</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-block_device_mappings/no_device"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-no-device"><strong>no_device</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/no_device" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/no_device"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/no_device"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/NoDevice"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/NoDevice"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-nodevice"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-no-device"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-nodevice"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-no-device"></span><strong>no_device</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/no_device" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: NoDevice</span></p>
+<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-cell"><p>Setting this value to true suppresses the specified device included in the block device mapping of the AMI.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -316,22 +388,30 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/virtual_name"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-virtual-name"><strong>virtual_name</strong></p>
-<a class="ansibleOptionLink" href="#parameter-block_device_mappings/virtual_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/virtual_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/virtual_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-block_device_mappings/VirtualName"></div>
+<div class="ansibleOptionAnchor" id="parameter-BlockDeviceMappings/VirtualName"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-virtualname"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-blockdevicemappings-virtual-name"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-virtualname"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-block-device-mappings-virtual-name"></span><strong>virtual_name</strong></p>
+<a class="ansibleOptionLink" href="#parameter-block_device_mappings/virtual_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: VirtualName</span></p>
+<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 name of the virtual device.</p>
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-classic_link_vpc_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classic-link-vpc-id"><strong>classic_link_vpc_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-classic_link_vpc_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-classic_link_vpc_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-ClassicLinkVPCId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classiclinkvpcid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classic-link-vpc-id"></span><strong>classic_link_vpc_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-classic_link_vpc_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ClassicLinkVPCId</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.</p>
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-classic_link_vpc_security_groups"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classic-link-vpc-security-groups"><strong>classic_link_vpc_security_groups</strong></p>
-<a class="ansibleOptionLink" href="#parameter-classic_link_vpc_security_groups" 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 class="ansibleOptionAnchor" id="parameter-classic_link_vpc_security_groups"></div>
+<div class="ansibleOptionAnchor" id="parameter-ClassicLinkVPCSecurityGroups"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classiclinkvpcsecuritygroups"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-classic-link-vpc-security-groups"></span><strong>classic_link_vpc_security_groups</strong></p>
+<a class="ansibleOptionLink" href="#parameter-classic_link_vpc_security_groups" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ClassicLinkVPCSecurityGroups</span></p>
+<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-cell"><p>The IDs of one or more security groups for the VPC that you specified in the ClassicLinkVPCId property.</p>
 </div></td>
@@ -350,8 +430,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-ebs_optimized"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ebs-optimized"><strong>ebs_optimized</strong></p>
-<a class="ansibleOptionLink" href="#parameter-ebs_optimized" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-ebs_optimized"></div>
+<div class="ansibleOptionAnchor" id="parameter-EbsOptimized"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ebsoptimized"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ebs-optimized"></span><strong>ebs_optimized</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ebs_optimized" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: EbsOptimized</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Specifies whether the launch configuration is optimized for EBS I/O (true) or not (false).</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -389,30 +471,38 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-iam_instance_profile"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-iam-instance-profile"><strong>iam_instance_profile</strong></p>
-<a class="ansibleOptionLink" href="#parameter-iam_instance_profile" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-iam_instance_profile"></div>
+<div class="ansibleOptionAnchor" id="parameter-IamInstanceProfile"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-iaminstanceprofile"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-iam-instance-profile"></span><strong>iam_instance_profile</strong></p>
+<a class="ansibleOptionLink" href="#parameter-iam_instance_profile" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: IamInstanceProfile</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Provides the name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.</p>
 <p>The instance profile contains the IAM role.</p>
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-image_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-image-id"><strong>image_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-image_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-image_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-ImageId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-imageid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-image-id"></span><strong>image_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-image_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ImageId</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Provides the unique ID of the Amazon Machine Image (AMI) that was assigned during registration.</p>
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-instance_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-id"><strong>instance_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-instance_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-instance_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-InstanceId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instanceid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-id"></span><strong>instance_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-instance_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: InstanceId</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The ID of the Amazon EC2 instance you want to use to create the launch configuration.</p>
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-instance_monitoring"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-monitoring"><strong>instance_monitoring</strong></p>
-<a class="ansibleOptionLink" href="#parameter-instance_monitoring" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<div class="ansibleOptionAnchor" id="parameter-instance_monitoring"></div>
+<div class="ansibleOptionAnchor" id="parameter-InstanceMonitoring"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instancemonitoring"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-monitoring"></span><strong>instance_monitoring</strong></p>
+<a class="ansibleOptionLink" href="#parameter-instance_monitoring" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: InstanceMonitoring</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Controls whether instances in this group are launched with detailed (true) or basic (false) monitoring.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
@@ -423,65 +513,89 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-instance_type"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-type"><strong>instance_type</strong></p>
-<a class="ansibleOptionLink" href="#parameter-instance_type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-instance_type"></div>
+<div class="ansibleOptionAnchor" id="parameter-InstanceType"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instancetype"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-instance-type"></span><strong>instance_type</strong></p>
+<a class="ansibleOptionLink" href="#parameter-instance_type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: InstanceType</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Specifies the instance type of the EC2 instance.</p>
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-kernel_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-kernel-id"><strong>kernel_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-kernel_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-kernel_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-KernelId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-kernelid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-kernel-id"></span><strong>kernel_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-kernel_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: KernelId</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Provides the ID of the kernel associated with the EC2 AMI.</p>
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-key_name"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-key-name"><strong>key_name</strong></p>
-<a class="ansibleOptionLink" href="#parameter-key_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-key_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-KeyName"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-keyname"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-key-name"></span><strong>key_name</strong></p>
+<a class="ansibleOptionLink" href="#parameter-key_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: KeyName</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Provides the name of the EC2 key pair.</p>
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-launch_configuration_name"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-launch-configuration-name"><strong>launch_configuration_name</strong></p>
-<a class="ansibleOptionLink" href="#parameter-launch_configuration_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-launch_configuration_name"></div>
+<div class="ansibleOptionAnchor" id="parameter-LaunchConfigurationName"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-launchconfigurationname"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-launch-configuration-name"></span><strong>launch_configuration_name</strong></p>
+<a class="ansibleOptionLink" href="#parameter-launch_configuration_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: LaunchConfigurationName</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The name of the launch configuration.</p>
 <p>This name must be unique per Region per account.</p>
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-metadata_options"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options"><strong>metadata_options</strong></p>
-<a class="ansibleOptionLink" href="#parameter-metadata_options" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options"></span><strong>metadata_options</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metadata_options" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: MetadataOptions</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The metadata options for the instances.<em>metadata_options</em> is a property of AWS::AutoScaling::LaunchConfiguration that describes metadata options for the instances.</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-metadata_options/http_endpoint"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-endpoint"><strong>http_endpoint</strong></p>
-<a class="ansibleOptionLink" href="#parameter-metadata_options/http_endpoint" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/http_endpoint"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/http_endpoint"></div>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/HttpEndpoint"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/HttpEndpoint"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-httpendpoint"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-http-endpoint"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-httpendpoint"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-endpoint"></span><strong>http_endpoint</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metadata_options/http_endpoint" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: HttpEndpoint</span></p>
+<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>This parameter enables or disables the HTTP metadata endpoint on your instances.</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-metadata_options/http_put_response_hop_limit"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-put-response-hop-limit"><strong>http_put_response_hop_limit</strong></p>
-<a class="ansibleOptionLink" href="#parameter-metadata_options/http_put_response_hop_limit" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/http_put_response_hop_limit"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/http_put_response_hop_limit"></div>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/HttpPutResponseHopLimit"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/HttpPutResponseHopLimit"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-httpputresponsehoplimit"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-http-put-response-hop-limit"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-httpputresponsehoplimit"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-put-response-hop-limit"></span><strong>http_put_response_hop_limit</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metadata_options/http_put_response_hop_limit" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: HttpPutResponseHopLimit</span></p>
+<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 desired HTTP PUT response hop limit for instance metadata requests.</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-metadata_options/http_tokens"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-tokens"><strong>http_tokens</strong></p>
-<a class="ansibleOptionLink" href="#parameter-metadata_options/http_tokens" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/http_tokens"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/http_tokens"></div>
+<div class="ansibleOptionAnchor" id="parameter-metadata_options/HttpTokens"></div>
+<div class="ansibleOptionAnchor" id="parameter-MetadataOptions/HttpTokens"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-httptokens"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadataoptions-http-tokens"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-httptokens"></span><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-metadata-options-http-tokens"></span><strong>http_tokens</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metadata_options/http_tokens" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: HttpTokens</span></p>
+<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 state of token usage for your instance metadata requests.</p>
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-placement_tenancy"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-placement-tenancy"><strong>placement_tenancy</strong></p>
-<a class="ansibleOptionLink" href="#parameter-placement_tenancy" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-placement_tenancy"></div>
+<div class="ansibleOptionAnchor" id="parameter-PlacementTenancy"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-placementtenancy"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-placement-tenancy"></span><strong>placement_tenancy</strong></p>
+<a class="ansibleOptionLink" href="#parameter-placement_tenancy" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: PlacementTenancy</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The tenancy of the instance, either default or dedicated.</p>
 </div></td>
@@ -499,8 +613,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-ram_disk_id"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ram-disk-id"><strong>ram_disk_id</strong></p>
-<a class="ansibleOptionLink" href="#parameter-ram_disk_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-ram_disk_id"></div>
+<div class="ansibleOptionAnchor" id="parameter-RamDiskId"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ramdiskid"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-ram-disk-id"></span><strong>ram_disk_id</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ram_disk_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: RamDiskId</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The ID of the RAM disk to select.</p>
 </div></td>
@@ -538,8 +654,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-security_groups"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-security-groups"><strong>security_groups</strong></p>
-<a class="ansibleOptionLink" href="#parameter-security_groups" 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 class="ansibleOptionAnchor" id="parameter-security_groups"></div>
+<div class="ansibleOptionAnchor" id="parameter-SecurityGroups"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-securitygroups"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-security-groups"></span><strong>security_groups</strong></p>
+<a class="ansibleOptionLink" href="#parameter-security_groups" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: SecurityGroups</span></p>
+<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-cell"><p>A list that contains the security groups to assign to the instances in the Auto Scaling group.</p>
 </div></td>
@@ -563,8 +681,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-spot_price"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-spot-price"><strong>spot_price</strong></p>
-<a class="ansibleOptionLink" href="#parameter-spot_price" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-spot_price"></div>
+<div class="ansibleOptionAnchor" id="parameter-SpotPrice"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-spotprice"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-spot-price"></span><strong>spot_price</strong></p>
+<a class="ansibleOptionLink" href="#parameter-spot_price" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: SpotPrice</span></p>
+<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The maximum hourly price you are willing to pay for any Spot Instances launched to fulfill the request.</p>
 </div></td>
@@ -589,8 +709,10 @@ see <a class="reference internal" href="#ansible-collections-amazon-cloud-autosc
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-user_data"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-user-data"><strong>user_data</strong></p>
-<a class="ansibleOptionLink" href="#parameter-user_data" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<div class="ansibleOptionAnchor" id="parameter-user_data"></div>
+<div class="ansibleOptionAnchor" id="parameter-UserData"></div><p class="ansible-option-title" id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-userdata"><span id="ansible-collections-amazon-cloud-autoscaling-launch-configuration-module-parameter-user-data"></span><strong>user_data</strong></p>
+<a class="ansibleOptionLink" href="#parameter-user_data" title="Permalink to this option"></a><p class="ansible-option-ty

@alinabuzachis
alinabuzachis force-pushed the fix_option_names branch 3 times, most recently from eb85b35 to 9480ebf Compare July 6, 2023 18:15
@alinabuzachis
alinabuzachis force-pushed the fix_option_names branch 14 times, most recently from 52b59a0 to 23ac040 Compare August 10, 2023 12:53
@alinabuzachis alinabuzachis changed the title [WIP] Fix option names Fix option names Aug 10, 2023
Comment thread plugins/module_utils/core.py Outdated
_primary_identifier = [id.split("/")[-1] for id in primary_identifier]
self.module.fail_json(
f"""You must specify both {*primary_identifier, } to create a new resource.
f"""You must specify together {*_primary_identifier, } to create a new resource.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm not sure I understand this change. Is it because there may be more than two?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

There might be, that's why I wanted to make it more generic.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

OK, I would suggest a change to wording in that case. Something like You must specify all of the following to create a new resource: {*_primary_identifier, }.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done, thanks!

Comment thread plugins/module_utils/utils.py Outdated
return {
k: v
for k, v in a_dict.items()
if not any(k in item for item in list_of_keys_to_remove)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What was the reason for this change?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Reverted!

Comment thread plugins/module_utils/utils.py Outdated
Comment on lines +311 to +313
if matching_dicts:
for k, v in dict2.items():
matching_dicts[0][k] = v

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't understand the logic here. matching_dicts should contain only dictionaries that dict2 is a subset of. If that's the case, going through and manually copying each key/value pair from dict2 to the first dictionary in matching_dicts would be a noop, wouldn't it? Also, what happens here if dict2 is a subset of more than one dictionary in list2?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It was an outdated code for merge_dicts. Thanks! Updated the code and added a unit test.

Comment thread tests/sanity/ignore-2.10.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should be able to delete the ignore files for 2.10, 2.11 and 2.12.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done!

@alinabuzachis
alinabuzachis force-pushed the fix_option_names branch 2 times, most recently from ac1d9b9 to 5adfd50 Compare August 11, 2023 18:24
@alinabuzachis
alinabuzachis requested a review from gravesm August 14, 2023 17:33
Comment thread plugins/module_utils/utils.py Outdated
dict1 = matching_dicts[0]
for key, value in dict2.items():
try:
value_dict = ast.literal_eval(value)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why do we need to do this? I guess I don't understand the context in which merge_dicts is being called. In what cases are we getting python code as a string?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

For example iam_role asks for policy_document as a str https://github.com/ansible-collections/amazon.cloud/blob/main/plugins/modules/iam_role.py#L60

What happens is that if I do not convert it to a dict, this function will try to compare a string with a dict (policy_document is returned as a dict from the API).

- name: Create minimal lambda role
      amazon.cloud.iam_role:
        role_name: '{{ lambda_role_name }}'
        assume_role_policy_document: '{{ lookup("file", "lambda-minimal-policy.json") }}'
        policies:
          - policy_name: "{{ lambda_policy_name }}"
            policy_document: '{{ lookup("file", "lambda-policy.json") }}'
        managed_policy_arns:
          - "arn:aws:iam::{{ _caller_info.account }}:policy/{{ lambda_policy_name }}"
        wait: true
      register: _create_iam_role_result
      ignore_errors: true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Isn't the policy document JSON, not a python dict? json.loads() would be a better option if this is the case.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yeah, done!

Comment thread plugins/module_utils/utils.py Outdated
]

if matching_dicts:
dict1 = matching_dicts[0]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What happens if there is more than one matching dict?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Checking on this one and will let you know.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Should be fixed now!

cloud/aws

# Missing permissions
disabled

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Will mattclay/aws-terminator#291 not allow us to run these tests?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I disabled the tests because at that time there wasn't a PR with the terminator policies. I assume (but have to test), tests will pass.

@alinabuzachis
alinabuzachis requested a review from gravesm August 17, 2023 13:55
Comment thread plugins/module_utils/utils.py Outdated
return json_object


def merge_dicts(list1: List, list2) -> List:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What's the problem that this function is trying to solve? Is there an example of a resource property that needs this? It makes some assumptions about the structure of the arguments that at the very least should probably be documented. I'm worried that those assumptions may not always be true. For example, the following will raise an exception:

old = [
    {"foo": "bar"}
]
new = [
    {"foo": "gaz", "someotherkey": {"blah": "asdf"}}
]
merge_dicts(old, new)

@alinabuzachis alinabuzachis Aug 25, 2023

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@gravesm I fixed that corner case and add a test case for it. However, this function handles the case when two list of dictionaries (with keys different than Key) needs to merged. For example:

  • If I create the role below and then try to re-run the same task (because I want to check idempotency or update the role) it will fail because it will be unable to compare list of dicts inside policies parameter.
    - name: Create minimal lambda role
      amazon.cloud.iam_role:
        role_name: '{{ lambda_role_name }}'
        assume_role_policy_document: '{{ lookup("file", "lambda-minimal-policy.json") }}'
        policies:
          - policy_name: "{{ lambda_policy_name }}"
            policy_document: '{{ lookup("file", "lambda-policy.json") }}'
        managed_policy_arns:
          - "arn:aws:iam::{{ _caller_info.account }}:policy/{{ lambda_policy_name }}"
        wait: true
      register: _create_iam_role_result 

Also, policy_document returned by the API will be a dictionary while the one the user will specify will be a string, so, that's why I created safe_json().

We should also ensure the right quotes are used within the policy_document and that's why I had to add QuoteSwappingEncoder. The test case I added covers exactly the case where we need this quotes swapping.

@alinabuzachis
alinabuzachis requested a review from gravesm August 25, 2023 14:54
@alinabuzachis
alinabuzachis force-pushed the fix_option_names branch 2 times, most recently from 8c99988 to 7f4fbe7 Compare August 25, 2023 17:20
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
…nd 2.12, revert change

Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
…gration tests

Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
@alinabuzachis
alinabuzachis force-pushed the fix_option_names branch 2 times, most recently from 493f622 to 814c592 Compare August 30, 2023 17:00
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
…installing the community.aws collection

Signed-off-by: Alina Buzachis <abuzachis@redhat.com>
@alinabuzachis

alinabuzachis commented Aug 30, 2023

Copy link
Copy Markdown
Collaborator Author

The same issue, the CI does not use the fork's branch, but the main repo's branch, that's why the eke tests are still failing.


def merge_lists(list1, list2):
merged_list: List = []
matched_list: List = []

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's not clear to me what purpose matched_list is serving in this function. Is it necessary?


if matching_indices:
for index in matching_indices:
if isinstance(merged_list, list):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This check seems unnecessary. At least according to the type hinting, merged_list is always a list.

for index in matching_indices:
if isinstance(merged_list, list):
dict1 = merged_list[index]
if isinstance(dict2, dict) and isinstance(dict1, dict):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is there a case when this isn't true? The logic in line 393 seems to assume it is always true, which would make this unnecessary.

Comment on lines +403 to +407
if (
dict1.get(key, {})
and isinstance(value_dict, dict)
and isinstance(dict1[key], dict)
):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
if (
dict1.get(key, {})
and isinstance(value_dict, dict)
and isinstance(dict1[key], dict)
):
if (
isinstance(value_dict, dict)
and isinstance(dict1.get(key), dict)
):

Comment on lines +409 to +413
elif (
dict1.get(key, [])
and isinstance(value_dict, list)
and isinstance(dict1[key], list)
):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
elif (
dict1.get(key, [])
and isinstance(value_dict, list)
and isinstance(dict1[key], list)
):
elif (
isinstance(value_dict, list)
and isinstance(dict1.get(key), list)
):

):
# Easy merge
if all(
isinstance(item, (str, int, float))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we care about bool? A better type comparison here would probably be to use collections.abc.Hashable because that's what we really care about.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
5.1% Duplication on New Code (required ≤ 3%)
B Security Rating on New Code (required ≥ A)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Comment thread tools/update_constants.py
Comment on lines +47 to +52
logger.info(
"-- %s -- match variable [%s] with value [%s]",
item.name,
variable_name,
m.group(1),
)
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.

3 participants