From 04252cf90db9cc19760c21f585905eae75d77584 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Fri, 18 Oct 2019 17:01:52 +0200 Subject: [PATCH] Improve validation of module return values (#63411) * Add contains: validation for return values. * Only require returned: on top level. * Fix various return value problems. * Update ignore.txt. * Two more. --- .../modules/cloud/alicloud/ali_instance.py | 3 +- .../cloud/alicloud/ali_instance_info.py | 3 +- .../amazon/aws_application_scaling_policy.py | 3 +- lib/ansible/modules/cloud/amazon/ec2_eni.py | 6 +- .../modules/cloud/amazon/ec2_instance.py | 12 ++-- .../modules/cloud/amazon/ec2_instance_info.py | 12 ++-- .../modules/cloud/amazon/ec2_vpc_nacl_info.py | 9 ++- .../modules/cloud/amazon/ecs_attribute.py | 3 +- .../modules/cloud/amazon/ecs_service.py | 12 ++-- .../modules/cloud/amazon/ecs_service_info.py | 6 +- lib/ansible/modules/cloud/amazon/ecs_task.py | 6 +- .../cloud/openstack/os_networks_info.py | 3 +- .../modules/cloud/openstack/os_stack.py | 6 +- .../cloud/openstack/os_subnets_info.py | 6 +- .../network/meraki/meraki_mx_l7_firewall.py | 4 +- lib/ansible/modules/windows/win_feature.py | 3 +- lib/ansible/modules/windows/win_updates.py | 6 +- .../validate_modules/schema.py | 26 ++++++++- test/sanity/ignore.txt | 57 ++++++++++++++++++- 19 files changed, 149 insertions(+), 37 deletions(-) diff --git a/lib/ansible/modules/cloud/alicloud/ali_instance.py b/lib/ansible/modules/cloud/alicloud/ali_instance.py index 444d92da70c..0e001d6132a 100644 --- a/lib/ansible/modules/cloud/alicloud/ali_instance.py +++ b/lib/ansible/modules/cloud/alicloud/ali_instance.py @@ -468,7 +468,8 @@ instances: security_groups: description: One or more security groups for the instance. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. diff --git a/lib/ansible/modules/cloud/alicloud/ali_instance_info.py b/lib/ansible/modules/cloud/alicloud/ali_instance_info.py index bb96aada8e3..170a09ba6b4 100644 --- a/lib/ansible/modules/cloud/alicloud/ali_instance_info.py +++ b/lib/ansible/modules/cloud/alicloud/ali_instance_info.py @@ -309,7 +309,8 @@ instances: security_groups: description: One or more security groups for the instance. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. diff --git a/lib/ansible/modules/cloud/amazon/aws_application_scaling_policy.py b/lib/ansible/modules/cloud/amazon/aws_application_scaling_policy.py index 420016fbded..4a707620cb8 100644 --- a/lib/ansible/modules/cloud/amazon/aws_application_scaling_policy.py +++ b/lib/ansible/modules/cloud/amazon/aws_application_scaling_policy.py @@ -210,7 +210,8 @@ step_scaling_policy_configuration: step_adjustments: description: A set of adjustments that enable you to scale based on the size of the alarm breach returned: when state present and the policy type is StepScaling - type: list of complex + type: list + elements: dict target_tracking_scaling_policy_configuration: description: The target tracking policy. returned: when state present and the policy type is TargetTrackingScaling diff --git a/lib/ansible/modules/cloud/amazon/ec2_eni.py b/lib/ansible/modules/cloud/amazon/ec2_eni.py index 10eb7203d31..80dcbb7f922 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_eni.py +++ b/lib/ansible/modules/cloud/amazon/ec2_eni.py @@ -209,7 +209,8 @@ interface: sample: Firewall network interface groups: description: list of security groups - type: list of dictionaries + type: list + elements: dict sample: [ { "sg-f8a8a9da": "default" } ] id: description: network interface id @@ -229,7 +230,8 @@ interface: sample: 10.20.30.40 private_ip_addresses: description: list of all private ip addresses associated to this interface - type: list of dictionaries + type: list + elements: dict sample: [ { "primary_address": true, "private_ip_address": "10.20.30.40" } ] source_dest_check: description: value of source/dest check flag diff --git a/lib/ansible/modules/cloud/amazon/ec2_instance.py b/lib/ansible/modules/cloud/amazon/ec2_instance.py index 591c13e9e7b..e2f1ea11e7f 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_instance.py +++ b/lib/ansible/modules/cloud/amazon/ec2_instance.py @@ -477,7 +477,8 @@ instances: groups: description: One or more security groups. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. @@ -522,7 +523,8 @@ instances: private_ip_addresses: description: The private IPv4 addresses associated with the network interface. returned: always - type: list of complex + type: list + elements: dict contains: association: description: The association information for an Elastic IP address (IPv4) associated with the network interface. @@ -607,7 +609,8 @@ instances: product_codes: description: One or more product codes. returned: always - type: list of complex + type: list + elements: dict contains: product_code_id: description: The product code. @@ -642,7 +645,8 @@ instances: security_groups: description: One or more security groups for the instance. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. diff --git a/lib/ansible/modules/cloud/amazon/ec2_instance_info.py b/lib/ansible/modules/cloud/amazon/ec2_instance_info.py index 0a41183e9da..f306114c29c 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_instance_info.py +++ b/lib/ansible/modules/cloud/amazon/ec2_instance_info.py @@ -263,7 +263,8 @@ instances: groups: description: One or more security groups. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. @@ -308,7 +309,8 @@ instances: private_ip_addresses: description: The private IPv4 addresses associated with the network interface. returned: always - type: list of complex + type: list + elements: dict contains: association: description: The association information for an Elastic IP address (IPv4) associated with the network interface. @@ -393,7 +395,8 @@ instances: product_codes: description: One or more product codes. returned: always - type: list of complex + type: list + elements: dict contains: product_code_id: description: The product code. @@ -428,7 +431,8 @@ instances: security_groups: description: One or more security groups for the instance. returned: always - type: list of complex + type: list + elements: dict contains: group_id: description: The ID of the security group. diff --git a/lib/ansible/modules/cloud/amazon/ec2_vpc_nacl_info.py b/lib/ansible/modules/cloud/amazon/ec2_vpc_nacl_info.py index e6aeb86af04..adbcb5747c9 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_vpc_nacl_info.py +++ b/lib/ansible/modules/cloud/amazon/ec2_vpc_nacl_info.py @@ -87,20 +87,23 @@ nacls: subnets: description: A list of subnet IDs that are associated with the NACL. returned: always - type: list of string + type: list + elements: str ingress: description: - A list of NACL ingress rules with the following format. - "C([rule no, protocol, allow/deny, v4 or v6 cidr, icmp_type, icmp_code, port from, port to])" returned: always - type: list of list + type: list + elements: list sample: [[100, 'tcp', 'allow', '0.0.0.0/0', null, null, 22, 22]] egress: description: - A list of NACL egress rules with the following format. - "C([rule no, protocol, allow/deny, v4 or v6 cidr, icmp_type, icmp_code, port from, port to])" returned: always - type: list of list + type: list + elements: list sample: [[100, 'all', 'allow', '0.0.0.0/0', null, null, null, null]] ''' diff --git a/lib/ansible/modules/cloud/amazon/ecs_attribute.py b/lib/ansible/modules/cloud/amazon/ecs_attribute.py index 12f716c06f7..e96da27290c 100644 --- a/lib/ansible/modules/cloud/amazon/ecs_attribute.py +++ b/lib/ansible/modules/cloud/amazon/ecs_attribute.py @@ -94,7 +94,8 @@ attributes: type: str attributes: description: list of attributes - type: list of complex + type: list + elements: dict contains: name: description: name of the attribute diff --git a/lib/ansible/modules/cloud/amazon/ecs_service.py b/lib/ansible/modules/cloud/amazon/ecs_service.py index f46d0f7a62c..ed519ea2904 100644 --- a/lib/ansible/modules/cloud/amazon/ecs_service.py +++ b/lib/ansible/modules/cloud/amazon/ecs_service.py @@ -267,7 +267,8 @@ service: deployments: description: list of service deployments returned: always - type: list of complex + type: list + elements: dict deploymentConfiguration: description: dictionary of deploymentConfiguration returned: always @@ -284,11 +285,13 @@ service: events: description: list of service events returned: always - type: list of complex + type: list + elements: dict placementConstraints: description: List of placement constraints objects returned: always - type: list of complex + type: list + elements: dict contains: type: description: The type of constraint. Valid values are distinctInstance and memberOf. @@ -302,7 +305,8 @@ service: placementStrategy: description: List of placement strategy objects returned: always - type: list of complex + type: list + elements: dict contains: type: description: The type of placement strategy. Valid values are random, spread and binpack. diff --git a/lib/ansible/modules/cloud/amazon/ecs_service_info.py b/lib/ansible/modules/cloud/amazon/ecs_service_info.py index 4aeb17e375e..9d6623a9bc0 100644 --- a/lib/ansible/modules/cloud/amazon/ecs_service_info.py +++ b/lib/ansible/modules/cloud/amazon/ecs_service_info.py @@ -125,11 +125,13 @@ services: deployments: description: list of service deployments returned: always - type: list of complex + type: list + elements: dict events: description: list of service events returned: when events is true - type: list of complex + type: list + elements: dict ''' # NOQA try: diff --git a/lib/ansible/modules/cloud/amazon/ecs_task.py b/lib/ansible/modules/cloud/amazon/ecs_task.py index 94b9603e679..eeeec240a55 100644 --- a/lib/ansible/modules/cloud/amazon/ecs_task.py +++ b/lib/ansible/modules/cloud/amazon/ecs_task.py @@ -149,7 +149,8 @@ task: overrides: description: The container overrides set for this task. returned: only when details is true - type: list of complex + type: list + elements: dict lastStatus: description: The last recorded status of the task. returned: only when details is true @@ -161,7 +162,8 @@ task: containers: description: The container details. returned: only when details is true - type: list of complex + type: list + elements: dict startedBy: description: The used who started the task. returned: only when details is true diff --git a/lib/ansible/modules/cloud/openstack/os_networks_info.py b/lib/ansible/modules/cloud/openstack/os_networks_info.py index 0033ec685ac..d580f467283 100644 --- a/lib/ansible/modules/cloud/openstack/os_networks_info.py +++ b/lib/ansible/modules/cloud/openstack/os_networks_info.py @@ -111,7 +111,8 @@ openstack_networks: subnets: description: Subnet(s) included in this network. returned: success - type: list of strings + type: list + elements: str tenant_id: description: Tenant id associated with this network. returned: success diff --git a/lib/ansible/modules/cloud/openstack/os_stack.py b/lib/ansible/modules/cloud/openstack/os_stack.py index b6f11957156..617d5093c31 100644 --- a/lib/ansible/modules/cloud/openstack/os_stack.py +++ b/lib/ansible/modules/cloud/openstack/os_stack.py @@ -127,11 +127,13 @@ stack: sample: "test-stack/97a3f543-8136-4570-920e-fd7605c989d6" links: description: Links to the current Stack. - type: list of dict + type: list + elements: dict sample: "[{'href': 'http://foo:8004/v1/7f6a/stacks/test-stack/97a3f543-8136-4570-920e-fd7605c989d6']" outputs: description: Output returned by the Stack. - type: list of dict + type: list + elements: dict sample: "{'description': 'IP address of server1 in private network', 'output_key': 'server1_private_ip', 'output_value': '10.1.10.103'}" diff --git a/lib/ansible/modules/cloud/openstack/os_subnets_info.py b/lib/ansible/modules/cloud/openstack/os_subnets_info.py index de97a0ee15d..fe0c307cc76 100644 --- a/lib/ansible/modules/cloud/openstack/os_subnets_info.py +++ b/lib/ansible/modules/cloud/openstack/os_subnets_info.py @@ -130,11 +130,13 @@ openstack_subnets: dns_nameservers: description: DNS name servers for this subnet. returned: success - type: list of strings + type: list + elements: str allocation_pools: description: Allocation pools associated with this subnet. returned: success - type: list of dicts + type: list + elements: dict ''' from ansible.module_utils.basic import AnsibleModule diff --git a/lib/ansible/modules/network/meraki/meraki_mx_l7_firewall.py b/lib/ansible/modules/network/meraki/meraki_mx_l7_firewall.py index 48dfce4e9df..f8f87a2eafa 100644 --- a/lib/ansible/modules/network/meraki/meraki_mx_l7_firewall.py +++ b/lib/ansible/modules/network/meraki/meraki_mx_l7_firewall.py @@ -250,12 +250,12 @@ data: id: description: URI of application category. returned: success - type: string + type: str sample: Email name: description: Descriptive name of application category. returned: success - type: string + type: str sample: layer7/category/1 ''' diff --git a/lib/ansible/modules/windows/win_feature.py b/lib/ansible/modules/windows/win_feature.py index 773538dcd53..62e310b282b 100644 --- a/lib/ansible/modules/windows/win_feature.py +++ b/lib/ansible/modules/windows/win_feature.py @@ -117,7 +117,8 @@ feature_result: message: description: Any messages returned from the feature subsystem that occurred during installation or removal of this feature. returned: always - type: list of strings + type: list + elements: str sample: [] reboot_required: description: True when the target server requires a reboot as a result of installing or removing this feature. diff --git a/lib/ansible/modules/windows/win_updates.py b/lib/ansible/modules/windows/win_updates.py index d2f2419f3a9..b88143eedc7 100644 --- a/lib/ansible/modules/windows/win_updates.py +++ b/lib/ansible/modules/windows/win_updates.py @@ -216,7 +216,8 @@ updates: kb: description: A list of KB article IDs that apply to the update. returned: always - type: list of strings + type: list + elements: str sample: [ '3004365' ] id: description: Internal Windows Update GUID. @@ -231,7 +232,8 @@ updates: categories: description: A list of category strings for this update. returned: always - type: list of strings + type: list + elements: str sample: [ 'Critical Updates', 'Windows Server 2012 R2' ] failure_hresult_code: description: The HRESULT code from a failed update. diff --git a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py index 816c8e956f7..58b1e416e48 100644 --- a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py +++ b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py @@ -130,6 +130,30 @@ def return_contains(v): return v +return_contains_schema = Any( + All( + Schema( + { + Required('description'): Any(list_string_types, *string_types), + 'returned': Any(*string_types), # only returned on top level + Required('type'): Any('bool', 'complex', 'dict', 'float', 'int', 'list', 'str'), + 'version_added': Any(float, *string_types), + 'sample': Any(None, list, dict, int, float, *string_types), + 'example': Any(None, list, dict, int, float, *string_types), + 'contains': Any(None, *list({str_type: Self} for str_type in string_types)), + # in case of type='list' elements define type of individual item in list + 'elements': Any(None, 'bits', 'bool', 'bytes', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'raw', 'sid', 'str'), + } + ), + Schema(return_contains) + ), + Schema(type(None)), +) + +# This generates list of dicts with keys from string_types and return_contains_schema value +# for example in Python 3: {str: return_contains_schema} +list_dict_return_contains_schema = [{str_type: return_contains_schema} for str_type in string_types] + return_schema = Any( All( Schema( @@ -141,7 +165,7 @@ return_schema = Any( 'version_added': Any(float, *string_types), 'sample': Any(None, list, dict, int, float, *string_types), 'example': Any(None, list, dict, int, float, *string_types), - 'contains': object, + 'contains': Any(None, *list_dict_return_contains_schema), # in case of type='list' elements define type of individual item in list 'elements': Any(None, 'bits', 'bool', 'bytes', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'raw', 'sid', 'str'), } diff --git a/test/sanity/ignore.txt b/test/sanity/ignore.txt index c8c642a16af..4e9cb251afc 100644 --- a/test/sanity/ignore.txt +++ b/test/sanity/ignore.txt @@ -567,6 +567,7 @@ lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py validate-modules: lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/aws_direct_connect_gateway.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py future-import-boilerplate lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py validate-modules:parameter-type-not-in-doc @@ -707,6 +708,7 @@ lib/ansible/modules/cloud/amazon/ec2_ami_copy.py validate-modules:doc-missing-ty lib/ansible/modules/cloud/amazon/ec2_ami_info.py future-import-boilerplate lib/ansible/modules/cloud/amazon/ec2_ami_info.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ec2_ami_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/amazon/ec2_ami_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_asg.py future-import-boilerplate lib/ansible/modules/cloud/amazon/ec2_asg.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:doc-default-does-not-match-spec @@ -724,6 +726,7 @@ lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py future-import-boilerpla lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py future-import-boilerplate lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py validate-modules:parameter-type-not-in-doc @@ -757,7 +760,9 @@ lib/ansible/modules/cloud/amazon/ec2_group_info.py validate-modules:parameter-ty lib/ansible/modules/cloud/amazon/ec2_instance.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/amazon/ec2_instance.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_instance.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ec2_instance.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_instance_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/amazon/ec2_instance_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_key.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_key.py validate-modules:doc-missing-type lib/ansible/modules/cloud/amazon/ec2_launch_template.py validate-modules:nonexistent-parameter-documented @@ -771,10 +776,12 @@ lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-default-does-not lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_lc_find.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_lc_find.py validate-modules:doc-missing-type lib/ansible/modules/cloud/amazon/ec2_lc_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_lc_info.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ec2_metadata_facts.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:doc-missing-type @@ -825,6 +832,7 @@ lib/ansible/modules/cloud/amazon/ec2_vpc_nat_gateway.py validate-modules:doc-mis lib/ansible/modules/cloud/amazon/ec2_vpc_nat_gateway_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_vpc_net.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ec2_vpc_net.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ec2_vpc_net.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ec2_vpc_net_info.py future-import-boilerplate lib/ansible/modules/cloud/amazon/ec2_vpc_net_info.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ec2_vpc_net_info.py validate-modules:parameter-type-not-in-doc @@ -868,6 +876,7 @@ lib/ansible/modules/cloud/amazon/ecs_service.py future-import-boilerplate lib/ansible/modules/cloud/amazon/ecs_service.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/ecs_service.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ecs_service.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/ecs_service.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/ecs_service_info.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/amazon/ecs_service_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/ecs_service_info.py validate-modules:doc-missing-type @@ -892,6 +901,7 @@ lib/ansible/modules/cloud/amazon/elasticache.py validate-modules:doc-missing-typ lib/ansible/modules/cloud/amazon/elasticache_info.py future-import-boilerplate lib/ansible/modules/cloud/amazon/elasticache_info.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/elasticache_info.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/amazon/elasticache_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/elasticache_parameter_group.py future-import-boilerplate lib/ansible/modules/cloud/amazon/elasticache_parameter_group.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/elasticache_parameter_group.py validate-modules:doc-choices-do-not-match-spec @@ -933,6 +943,7 @@ lib/ansible/modules/cloud/amazon/elb_target_group.py validate-modules:doc-choice lib/ansible/modules/cloud/amazon/elb_target_group.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/elb_target_group.py validate-modules:doc-missing-type lib/ansible/modules/cloud/amazon/elb_target_group_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/amazon/elb_target_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/execute_lambda.py future-import-boilerplate lib/ansible/modules/cloud/amazon/execute_lambda.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/execute_lambda.py validate-modules:doc-default-does-not-match-spec @@ -1034,6 +1045,7 @@ lib/ansible/modules/cloud/amazon/redshift_subnet_group.py validate-modules:doc-m lib/ansible/modules/cloud/amazon/route53.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/amazon/route53.py validate-modules:doc-default-incompatible-type lib/ansible/modules/cloud/amazon/route53.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/amazon/route53.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/route53_health_check.py future-import-boilerplate lib/ansible/modules/cloud/amazon/route53_health_check.py metaclass-boilerplate lib/ansible/modules/cloud/amazon/route53_health_check.py validate-modules:doc-default-does-not-match-spec @@ -1060,6 +1072,7 @@ lib/ansible/modules/cloud/amazon/s3_sync.py validate-modules:parameter-type-not- lib/ansible/modules/cloud/amazon/s3_sync.py validate-modules:doc-missing-type lib/ansible/modules/cloud/amazon/s3_website.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/amazon/s3_website.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/amazon/s3_website.py validate-modules:return-syntax-error lib/ansible/modules/cloud/amazon/sns.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/amazon/sns.py validate-modules:doc-missing-type lib/ansible/modules/cloud/amazon/sns_topic.py validate-modules:parameter-type-not-in-doc @@ -1100,6 +1113,7 @@ lib/ansible/modules/cloud/azure/azure_rm_azurefirewall.py validate-modules:missi lib/ansible/modules/cloud/azure/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_containerinstance.py validate-modules:doc-type-does-not-match-spec @@ -1112,36 +1126,53 @@ lib/ansible/modules/cloud/azure/azure_rm_cosmosdbaccount.py validate-modules:non lib/ansible/modules/cloud/azure/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_deployment.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_deployment_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlab_info.py validate-modules:return-syntax-error +lib/ansible/modules/cloud/azure/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error +lib/ansible/modules/cloud/azure/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabenvironment.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter lib/ansible/modules/cloud/azure/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented lib/ansible/modules/cloud/azure/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset.py validate-modules:doc-missing-type lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_dnsrecordset_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_dnszone_info.py validate-modules:doc-type-does-not-match-spec lib/ansible/modules/cloud/azure/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_dnszone_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_galleryimage_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec lib/ansible/modules/cloud/azure/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/azure/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_image.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_image_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_image_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/azure/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_keyvault_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/azure/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec @@ -1151,18 +1182,23 @@ lib/ansible/modules/cloud/azure/azure_rm_loganalyticsworkspace.py validate-modul lib/ansible/modules/cloud/azure/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_manageddisk_info.py validate-modules:doc-type-does-not-match-spec +lib/ansible/modules/cloud/azure/azure_rm_manageddisk_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_mariadbconfiguration.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_mysqlserver.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_networkinterface.py validate-modules:doc-missing-type lib/ansible/modules/cloud/azure/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_networkinterface_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py validate-modules:parameter-type-not-in-doc @@ -1183,6 +1219,7 @@ lib/ansible/modules/cloud/azure/azure_rm_roledefinition.py validate-modules:inva lib/ansible/modules/cloud/azure/azure_rm_roledefinition.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_roledefinition.py validate-modules:missing-suboption-docs lib/ansible/modules/cloud/azure/azure_rm_roledefinition_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_roledefinition_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_route.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc @@ -1207,6 +1244,7 @@ lib/ansible/modules/cloud/azure/azure_rm_sqlserver_info.py validate-modules:para lib/ansible/modules/cloud/azure/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_storageaccount.py validate-modules:doc-missing-type lib/ansible/modules/cloud/azure/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/cloud/azure/azure_rm_storageaccount_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/azure/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/azure/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc @@ -1476,12 +1514,14 @@ lib/ansible/modules/cloud/google/gcpubsub_info.py validate-modules:undocumented- lib/ansible/modules/cloud/google/gcpubsub_info.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/google/gcpubsub_info.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/google/gcpubsub_info.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/hcloud/hcloud_network_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/heroku/heroku_collaborator.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/kubevirt/kubevirt_cdi_upload.py validate-modules:doc-missing-type lib/ansible/modules/cloud/kubevirt/kubevirt_preset.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/kubevirt/kubevirt_preset.py validate-modules:doc-missing-type lib/ansible/modules/cloud/kubevirt/kubevirt_pvc.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/kubevirt/kubevirt_pvc.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/kubevirt/kubevirt_pvc.py validate-modules:return-syntax-error lib/ansible/modules/cloud/kubevirt/kubevirt_rs.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/kubevirt/kubevirt_rs.py validate-modules:doc-missing-type lib/ansible/modules/cloud/kubevirt/kubevirt_template.py validate-modules:doc-missing-type @@ -1529,6 +1569,7 @@ lib/ansible/modules/cloud/misc/proxmox_template.py validate-modules:doc-missing- lib/ansible/modules/cloud/misc/terraform.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/cloud/misc/terraform.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/misc/terraform.py validate-modules:doc-missing-type +lib/ansible/modules/cloud/misc/terraform.py validate-modules:return-syntax-error lib/ansible/modules/cloud/misc/virt.py validate-modules:undocumented-parameter lib/ansible/modules/cloud/misc/virt.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/cloud/misc/virt.py validate-modules:parameter-type-not-in-doc @@ -1551,8 +1592,8 @@ lib/ansible/modules/cloud/oneandone/oneandone_server.py validate-modules:doc-cho lib/ansible/modules/cloud/oneandone/oneandone_server.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/oneandone/oneandone_server.py validate-modules:doc-missing-type lib/ansible/modules/cloud/online/_online_server_facts.py validate-modules:return-syntax-error -lib/ansible/modules/cloud/online/_online_user_facts.py validate-modules:return-syntax-error lib/ansible/modules/cloud/online/online_server_info.py validate-modules:return-syntax-error +lib/ansible/modules/cloud/online/_online_user_facts.py validate-modules:return-syntax-error lib/ansible/modules/cloud/online/online_user_info.py validate-modules:return-syntax-error lib/ansible/modules/cloud/opennebula/one_host.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/cloud/opennebula/one_host.py validate-modules:doc-missing-type @@ -2164,14 +2205,17 @@ lib/ansible/modules/clustering/etcd3.py validate-modules:parameter-type-not-in-d lib/ansible/modules/clustering/k8s/k8s.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/clustering/k8s/k8s.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/k8s/k8s.py validate-modules:doc-missing-type +lib/ansible/modules/clustering/k8s/k8s.py validate-modules:return-syntax-error lib/ansible/modules/clustering/k8s/k8s_auth.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/k8s/k8s_auth.py validate-modules:doc-missing-type lib/ansible/modules/clustering/k8s/k8s_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/k8s/k8s_info.py validate-modules:doc-missing-type lib/ansible/modules/clustering/k8s/k8s_scale.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/k8s/k8s_scale.py validate-modules:doc-missing-type +lib/ansible/modules/clustering/k8s/k8s_scale.py validate-modules:return-syntax-error lib/ansible/modules/clustering/k8s/k8s_service.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/k8s/k8s_service.py validate-modules:doc-missing-type +lib/ansible/modules/clustering/k8s/k8s_service.py validate-modules:return-syntax-error lib/ansible/modules/clustering/pacemaker_cluster.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/clustering/znode.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/clustering/znode.py validate-modules:parameter-type-not-in-doc @@ -2180,6 +2224,7 @@ lib/ansible/modules/commands/command.py validate-modules:undocumented-parameter lib/ansible/modules/commands/command.py validate-modules:nonexistent-parameter-documented lib/ansible/modules/commands/command.py validate-modules:doc-missing-type lib/ansible/modules/commands/expect.py validate-modules:doc-missing-type +lib/ansible/modules/crypto/acme/acme_account_info.py validate-modules:return-syntax-error lib/ansible/modules/database/influxdb/influxdb_database.py validate-modules:doc-default-does-not-match-spec lib/ansible/modules/database/influxdb/influxdb_database.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/database/influxdb/influxdb_query.py validate-modules:doc-default-does-not-match-spec @@ -3607,6 +3652,7 @@ lib/ansible/modules/network/exos/exos_config.py validate-modules:parameter-type- lib/ansible/modules/network/exos/exos_config.py validate-modules:doc-missing-type lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:doc-missing-type +lib/ansible/modules/network/f5/bigip_device_info.py validate-modules:return-syntax-error lib/ansible/modules/network/f5/_bigip_facts.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:doc-missing-type @@ -3627,6 +3673,7 @@ lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:doc-choices lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:doc-missing-type lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:missing-suboption-docs +lib/ansible/modules/network/f5/bigiq_device_info.py validate-modules:return-syntax-error lib/ansible/modules/network/fortimanager/fmgr_device.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/fortimanager/fmgr_device_config.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/fortimanager/fmgr_device_group.py validate-modules:parameter-type-not-in-doc @@ -3722,6 +3769,7 @@ lib/ansible/modules/network/illumos/ipadm_prop.py validate-modules:doc-choices-d lib/ansible/modules/network/illumos/ipadm_prop.py validate-modules:doc-missing-type lib/ansible/modules/network/ingate/ig_config.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/ingate/ig_config.py validate-modules:doc-missing-type +lib/ansible/modules/network/ingate/ig_config.py validate-modules:return-syntax-error lib/ansible/modules/network/ingate/ig_unit_information.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/ios/ios_banner.py future-import-boilerplate lib/ansible/modules/network/ios/ios_banner.py metaclass-boilerplate @@ -4019,8 +4067,10 @@ lib/ansible/modules/network/netconf/netconf_config.py validate-modules:doc-choic lib/ansible/modules/network/netconf/netconf_config.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/netconf/netconf_config.py validate-modules:doc-missing-type lib/ansible/modules/network/netconf/netconf_get.py validate-modules:doc-missing-type +lib/ansible/modules/network/netconf/netconf_get.py validate-modules:return-syntax-error lib/ansible/modules/network/netconf/netconf_rpc.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/netconf/netconf_rpc.py validate-modules:doc-missing-type +lib/ansible/modules/network/netconf/netconf_rpc.py validate-modules:return-syntax-error lib/ansible/modules/network/netscaler/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented lib/ansible/modules/network/netscaler/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/netscaler/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc @@ -4094,6 +4144,7 @@ lib/ansible/modules/network/nos/nos_command.py validate-modules:parameter-type-n lib/ansible/modules/network/nos/nos_command.py validate-modules:doc-missing-type lib/ansible/modules/network/nos/nos_config.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/nos/nos_config.py validate-modules:doc-missing-type +lib/ansible/modules/network/nso/nso_config.py validate-modules:return-syntax-error lib/ansible/modules/network/nos/nos_facts.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/nso/nso_action.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/network/nso/nso_action.py validate-modules:doc-missing-type @@ -4971,6 +5022,7 @@ lib/ansible/modules/packaging/os/opkg.py validate-modules:parameter-invalid lib/ansible/modules/packaging/os/opkg.py validate-modules:doc-missing-type lib/ansible/modules/packaging/os/package_facts.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/packaging/os/package_facts.py validate-modules:doc-missing-type +lib/ansible/modules/packaging/os/package_facts.py validate-modules:return-syntax-error lib/ansible/modules/packaging/os/pacman.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/packaging/os/pacman.py validate-modules:parameter-invalid lib/ansible/modules/packaging/os/pacman.py validate-modules:parameter-type-not-in-doc @@ -5394,6 +5446,7 @@ lib/ansible/modules/storage/netapp/netapp_e_asup.py validate-modules:parameter-t lib/ansible/modules/storage/netapp/netapp_e_auditlog.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/storage/netapp/netapp_e_auth.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/storage/netapp/netapp_e_auth.py validate-modules:doc-missing-type +lib/ansible/modules/storage/netapp/netapp_e_facts.py validate-modules:return-syntax-error lib/ansible/modules/storage/netapp/netapp_e_flashcache.py validate-modules:undocumented-parameter lib/ansible/modules/storage/netapp/netapp_e_flashcache.py validate-modules:doc-choices-do-not-match-spec lib/ansible/modules/storage/netapp/netapp_e_flashcache.py validate-modules:parameter-type-not-in-doc @@ -5478,6 +5531,7 @@ lib/ansible/modules/system/mksysb.py validate-modules:doc-missing-type lib/ansible/modules/system/modprobe.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/system/nosh.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/system/nosh.py validate-modules:doc-missing-type +lib/ansible/modules/system/nosh.py validate-modules:return-syntax-error lib/ansible/modules/system/openwrt_init.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/system/openwrt_init.py validate-modules:doc-missing-type lib/ansible/modules/system/pam_limits.py validate-modules:parameter-type-not-in-doc @@ -5593,6 +5647,7 @@ lib/ansible/modules/web_infrastructure/sophos_utm/utm_dns_host.py validate-modul lib/ansible/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py validate-modules:return-syntax-error lib/ansible/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py validate-modules:parameter-type-not-in-doc lib/ansible/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:parameter-type-not-in-doc