diff --git a/plugins/module_utils/ironic.py b/plugins/module_utils/ironic.py
index a7ab19ef285b3399597a07ae976e2f9e979e1828..68ee80dc5c4c3b037e11cd050f1dac9945f27539 100644
--- a/plugins/module_utils/ironic.py
+++ b/plugins/module_utils/ironic.py
@@ -30,8 +30,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import o
 
 def ironic_argument_spec(**kwargs):
     spec = dict(
-        auth_type=dict(required=False),
-        ironic_url=dict(required=False),
+        auth_type=dict(),
+        ironic_url=dict(),
     )
     spec.update(kwargs)
     return openstack_full_argument_spec(**spec)
diff --git a/plugins/module_utils/openstack.py b/plugins/module_utils/openstack.py
index 329405fffec33874e7501cfb4214b5a3e6b7e738..8ea81a8db7837f9252dc5b135472bef3a2ec7bf8 100644
--- a/plugins/module_utils/openstack.py
+++ b/plugins/module_utils/openstack.py
@@ -89,24 +89,24 @@ def openstack_find_nova_addresses(addresses, ext_tag, key_name=None):
 
 def openstack_full_argument_spec(**kwargs):
     spec = dict(
-        cloud=dict(default=None, type='raw'),
-        auth_type=dict(default=None),
-        auth=dict(default=None, type='dict', no_log=True),
-        region_name=dict(default=None),
-        availability_zone=dict(default=None),
-        validate_certs=dict(default=None, type='bool', aliases=['verify']),
-        ca_cert=dict(default=None, aliases=['cacert']),
-        client_cert=dict(default=None, aliases=['cert']),
-        client_key=dict(default=None, no_log=True, aliases=['key']),
+        cloud=dict(type='raw'),
+        auth_type=dict(),
+        auth=dict(type='dict', no_log=True),
+        region_name=dict(),
+        availability_zone=dict(),
+        validate_certs=dict(type='bool', aliases=['verify']),
+        ca_cert=dict(aliases=['cacert']),
+        client_cert=dict(aliases=['cert']),
+        client_key=dict(no_log=True, aliases=['key']),
         wait=dict(default=True, type='bool'),
         timeout=dict(default=180, type='int'),
-        api_timeout=dict(default=None, type='int'),
+        api_timeout=dict(type='int'),
         interface=dict(
             default='public', choices=['public', 'internal', 'admin'],
             aliases=['endpoint_type']),
-        sdk_log_path=dict(default=None, type='str'),
+        sdk_log_path=dict(),
         sdk_log_level=dict(
-            default='INFO', type='str', choices=['INFO', 'DEBUG']),
+            default='INFO', choices=['INFO', 'DEBUG']),
     )
     # Filter out all our custom parameters before passing to AnsibleModule
     kwargs_copy = copy.deepcopy(kwargs)
diff --git a/plugins/modules/address_scope.py b/plugins/modules/address_scope.py
index eb5b187af949abf0be5621927ab56b3ea7f8b696..6cfd6ef919cc3d44d40aa17010ee0fbe9b820e92 100644
--- a/plugins/modules/address_scope.py
+++ b/plugins/modules/address_scope.py
@@ -111,8 +111,8 @@ class AddressScopeModule(OpenStackModule):
         state=dict(default='present', choices=['absent', 'present']),
         name=dict(required=True),
         shared=dict(default=False, type='bool'),
-        ip_version=dict(type='str', default='4', choices=['4', '6']),
-        project=dict(default=None),
+        ip_version=dict(default='4', choices=['4', '6']),
+        project=dict(),
         extra_specs=dict(type='dict', default=dict())
     )
 
diff --git a/plugins/modules/baremetal_inspect.py b/plugins/modules/baremetal_inspect.py
index f7d90d1c5e24c4225cc8bd92619bc9c832ed4edc..2ba32cecdfc4a62740515e0ae141ec9ec28fcd9c 100644
--- a/plugins/modules/baremetal_inspect.py
+++ b/plugins/modules/baremetal_inspect.py
@@ -95,10 +95,10 @@ def _choose_id_value(module):
 
 def main():
     argument_spec = ironic_argument_spec(
-        uuid=dict(required=False),
-        name=dict(required=False),
-        mac=dict(required=False),
-        timeout=dict(default=1200, type='int', required=False),
+        uuid=dict(),
+        name=dict(),
+        mac=dict(),
+        timeout=dict(default=1200, type='int'),
     )
     module_kwargs = openstack_module_kwargs()
     module = IronicModule(argument_spec, **module_kwargs)
diff --git a/plugins/modules/baremetal_node.py b/plugins/modules/baremetal_node.py
index aceb291c5e89c226652a5ec186eb912f6fc96dc4..3bdab3f977f2281213f3a07600c2eea6acec4f39 100644
--- a/plugins/modules/baremetal_node.py
+++ b/plugins/modules/baremetal_node.py
@@ -272,30 +272,30 @@ def _exit_node_not_updated(module, server):
 
 def main():
     argument_spec = ironic_argument_spec(
-        uuid=dict(required=False),
-        name=dict(required=False),
-        driver=dict(required=False),
-        resource_class=dict(required=False),
-        bios_interface=dict(required=False),
-        boot_interface=dict(required=False),
-        console_interface=dict(required=False),
-        deploy_interface=dict(required=False),
-        inspect_interface=dict(required=False),
-        management_interface=dict(required=False),
-        network_interface=dict(required=False),
-        power_interface=dict(required=False),
-        raid_interface=dict(required=False),
-        rescue_interface=dict(required=False),
-        storage_interface=dict(required=False),
-        vendor_interface=dict(required=False),
+        uuid=dict(),
+        name=dict(),
+        driver=dict(),
+        resource_class=dict(),
+        bios_interface=dict(),
+        boot_interface=dict(),
+        console_interface=dict(),
+        deploy_interface=dict(),
+        inspect_interface=dict(),
+        management_interface=dict(),
+        network_interface=dict(),
+        power_interface=dict(),
+        raid_interface=dict(),
+        rescue_interface=dict(),
+        storage_interface=dict(),
+        vendor_interface=dict(),
         driver_info=dict(type='dict', required=True),
         nics=dict(type='list', required=True, elements="dict"),
         properties=dict(type='dict', default={}),
-        chassis_uuid=dict(required=False),
-        skip_update_of_masked_password=dict(required=False, type='bool'),
-        state=dict(required=False, default='present', choices=['present', 'absent']),
-        wait=dict(type='bool', required=False, default=False),
-        timeout=dict(required=False, type='int', default=1800),
+        chassis_uuid=dict(),
+        skip_update_of_masked_password=dict(type='bool'),
+        state=dict(default='present', choices=['present', 'absent']),
+        wait=dict(type='bool', default=False),
+        timeout=dict(type='int', default=1800),
     )
     module_kwargs = openstack_module_kwargs()
     module = IronicModule(argument_spec, **module_kwargs)
diff --git a/plugins/modules/baremetal_node_action.py b/plugins/modules/baremetal_node_action.py
index 267e43088d4f8e6799eac8d1ff04048ee1826063..c6661b595f616849aa4fc6b22b6c35f5f90010dc 100644
--- a/plugins/modules/baremetal_node_action.py
+++ b/plugins/modules/baremetal_node_action.py
@@ -233,17 +233,17 @@ def _check_set_power_state(module, cloud, node):
 
 def main():
     argument_spec = ironic_argument_spec(
-        uuid=dict(required=False),
-        name=dict(required=False),
-        instance_info=dict(type='dict', required=False),
-        config_drive=dict(type='raw', required=False),
-        state=dict(required=False, default='present'),
-        maintenance=dict(required=False),
-        maintenance_reason=dict(required=False),
-        power=dict(required=False, default='present'),
-        deploy=dict(required=False, default='yes'),
-        wait=dict(type='bool', required=False, default=False),
-        timeout=dict(required=False, type='int', default=1800),
+        uuid=dict(),
+        name=dict(),
+        instance_info=dict(type='dict'),
+        config_drive=dict(type='raw'),
+        state=dict(default='present'),
+        maintenance=dict(),
+        maintenance_reason=dict(),
+        power=dict(default='present'),
+        deploy=dict(default='yes'),
+        wait=dict(type='bool', default=False),
+        timeout=dict(type='int', default=1800),
     )
     module_kwargs = openstack_module_kwargs()
     module = IronicModule(argument_spec, **module_kwargs)
diff --git a/plugins/modules/baremetal_node_info.py b/plugins/modules/baremetal_node_info.py
index e70f2cc02054df2408d44916d69d3af63de4c1b8..ea31421e6ceeedd3f6ce535a58208ccd1abd3186 100644
--- a/plugins/modules/baremetal_node_info.py
+++ b/plugins/modules/baremetal_node_info.py
@@ -574,8 +574,8 @@ def get_ports_and_portgroups(cloud, machine):
 
 def main():
     argument_spec = ironic_argument_spec(
-        node=dict(required=False),
-        mac=dict(required=False),
+        node=dict(),
+        mac=dict(),
     )
     module_kwargs = openstack_module_kwargs()
     module_kwargs['supports_check_mode'] = True
diff --git a/plugins/modules/baremetal_port.py b/plugins/modules/baremetal_port.py
index a72c1da6c61bdbcc53e96c598964a827f4421ba6..80a0255db617114971f1d91cb1b71b4c4a5df3a1 100644
--- a/plugins/modules/baremetal_port.py
+++ b/plugins/modules/baremetal_port.py
@@ -339,16 +339,15 @@ def remove_port(module, cloud):
 
 def main():
     argument_spec = ironic_argument_spec(
-        uuid=dict(required=False),
-        node=dict(required=False),
-        address=dict(required=False),
-        portgroup=dict(required=False),
-        local_link_connection=dict(required=False, type='dict'),
-        is_pxe_enabled=dict(required=False, type='bool'),
-        physical_network=dict(required=False),
-        extra=dict(required=False, type='dict'),
-        state=dict(required=False,
-                   default='present',
+        uuid=dict(),
+        node=dict(),
+        address=dict(),
+        portgroup=dict(),
+        local_link_connection=dict(type='dict'),
+        is_pxe_enabled=dict(type='bool'),
+        physical_network=dict(),
+        extra=dict(type='dict'),
+        state=dict(default='present',
                    choices=['present', 'absent'])
     )
 
diff --git a/plugins/modules/baremetal_port_info.py b/plugins/modules/baremetal_port_info.py
index d70c284dddc134960e74f684a7fafe1c7b87e16f..30b3a1d40105984c8e1023780aa91b18b45eda48 100644
--- a/plugins/modules/baremetal_port_info.py
+++ b/plugins/modules/baremetal_port_info.py
@@ -153,9 +153,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (
 
 def main():
     argument_spec = ironic_argument_spec(
-        uuid=dict(required=False),
-        address=dict(required=False),
-        node=dict(required=False),
+        uuid=dict(),
+        address=dict(),
+        node=dict(),
     )
     module_kwargs = openstack_module_kwargs()
     module_kwargs['supports_check_mode'] = True
diff --git a/plugins/modules/catalog_service.py b/plugins/modules/catalog_service.py
index 9017db6f3faa9756a5bdcaeec0c8e19df03a2f19..b21019bd5e2544c87e73e3ad5f4697871849fdd3 100644
--- a/plugins/modules/catalog_service.py
+++ b/plugins/modules/catalog_service.py
@@ -105,7 +105,7 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityCatalogServiceModule(OpenStackModule):
     argument_spec = dict(
-        description=dict(default=None),
+        description=dict(),
         is_enabled=dict(default=True, aliases=['enabled'], type='bool'),
         name=dict(required=True),
         type=dict(required=True, aliases=['service_type']),
diff --git a/plugins/modules/coe_cluster.py b/plugins/modules/coe_cluster.py
index feb202a3bd9cd2bac7f57ce1aaf18f6be5aff38d..1911d0db0eec7b946c23b1d1ea34cdf1df84a203 100644
--- a/plugins/modules/coe_cluster.py
+++ b/plugins/modules/coe_cluster.py
@@ -212,13 +212,13 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class CoeClusterModule(OpenStackModule):
     argument_spec = dict(
         cluster_template_id=dict(required=True),
-        discovery_url=dict(default=None),
+        discovery_url=dict(),
         docker_volume_size=dict(type='int'),
-        flavor_id=dict(default=None),
-        keypair=dict(default=None, no_log=False),
-        labels=dict(default=None, type='raw'),
+        flavor_id=dict(),
+        keypair=dict(no_log=False),
+        labels=dict(type='raw'),
         master_count=dict(type='int', default=1),
-        master_flavor_id=dict(default=None),
+        master_flavor_id=dict(),
         name=dict(required=True),
         node_count=dict(type='int', default=1),
         state=dict(default='present', choices=['absent', 'present']),
diff --git a/plugins/modules/coe_cluster_template.py b/plugins/modules/coe_cluster_template.py
index 0596f39b7d1a3bd4711c2960f152f18774c092d9..d3daee71c6befa9ea0a9f37622dd6674b655fd9c 100644
--- a/plugins/modules/coe_cluster_template.py
+++ b/plugins/modules/coe_cluster_template.py
@@ -290,21 +290,21 @@ class CoeClusterTemplateModule(OpenStackModule):
         dns_nameserver=dict(default='8.8.8.8'),
         docker_storage_driver=dict(choices=['devicemapper', 'overlay', 'overlay2']),
         docker_volume_size=dict(type='int'),
-        external_network_id=dict(default=None),
-        fixed_network=dict(default=None),
-        fixed_subnet=dict(default=None),
-        flavor_id=dict(default=None),
+        external_network_id=dict(),
+        fixed_network=dict(),
+        fixed_subnet=dict(),
+        flavor_id=dict(),
         floating_ip_enabled=dict(type='bool', default=True),
-        keypair_id=dict(default=None),
+        keypair_id=dict(),
         image_id=dict(required=True),
-        labels=dict(default=None, type='raw'),
-        http_proxy=dict(default=None),
-        https_proxy=dict(default=None),
+        labels=dict(type='raw'),
+        http_proxy=dict(),
+        https_proxy=dict(),
         master_lb_enabled=dict(type='bool', default=False),
-        master_flavor_id=dict(default=None),
+        master_flavor_id=dict(),
         name=dict(required=True),
         network_driver=dict(choices=['flannel', 'calico', 'docker']),
-        no_proxy=dict(default=None),
+        no_proxy=dict(),
         public=dict(type='bool', default=False),
         registry_enabled=dict(type='bool', default=False),
         server_type=dict(default="vm", choices=['vm', 'bm']),
diff --git a/plugins/modules/compute_flavor.py b/plugins/modules/compute_flavor.py
index 8a993ca511aae48541a2c2794bb234695127ffd7..68f87da12789307d87f531b4c53dc4ba1a920e03 100644
--- a/plugins/modules/compute_flavor.py
+++ b/plugins/modules/compute_flavor.py
@@ -165,21 +165,21 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class ComputeFlavorModule(OpenStackModule):
     argument_spec = dict(
-        state=dict(required=False, default='present',
+        state=dict(default='present',
                    choices=['absent', 'present']),
         name=dict(required=True),
 
         # required when state is 'present'
-        ram=dict(required=False, type='int'),
-        vcpus=dict(required=False, type='int'),
+        ram=dict(type='int'),
+        vcpus=dict(type='int'),
 
-        disk=dict(required=False, default=0, type='int'),
-        ephemeral=dict(required=False, default=0, type='int'),
-        swap=dict(required=False, default=0, type='int'),
-        rxtx_factor=dict(required=False, default=1.0, type='float'),
-        is_public=dict(required=False, default=True, type='bool'),
-        flavorid=dict(required=False, default="auto"),
-        extra_specs=dict(required=False, default=None, type='dict'),
+        disk=dict(default=0, type='int'),
+        ephemeral=dict(default=0, type='int'),
+        swap=dict(default=0, type='int'),
+        rxtx_factor=dict(default=1.0, type='float'),
+        is_public=dict(default=True, type='bool'),
+        flavorid=dict(default="auto"),
+        extra_specs=dict(type='dict'),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/compute_flavor_info.py b/plugins/modules/compute_flavor_info.py
index 05644eda1efb1486b3c4d6bda312b1565c368d00..819356b3189a34431496d3103ba4991cd6a70c0b 100644
--- a/plugins/modules/compute_flavor_info.py
+++ b/plugins/modules/compute_flavor_info.py
@@ -189,11 +189,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class ComputeFlavorInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        ram=dict(required=False, default=None),
-        vcpus=dict(required=False, default=None),
-        limit=dict(required=False, default=None, type='int'),
-        ephemeral=dict(required=False, default=None),
+        name=dict(),
+        ram=dict(),
+        vcpus=dict(),
+        limit=dict(type='int'),
+        ephemeral=dict(),
     )
     module_kwargs = dict(
         mutually_exclusive=[
diff --git a/plugins/modules/compute_service_info.py b/plugins/modules/compute_service_info.py
index 03ebf534e697130576ac237f3d2b85418acbd23d..4890f654ada812343f1bb719a6715d7718ff8c9a 100644
--- a/plugins/modules/compute_service_info.py
+++ b/plugins/modules/compute_service_info.py
@@ -98,8 +98,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class ComputeServiceInfoModule(OpenStackModule):
     argument_spec = dict(
-        binary=dict(required=False, default=None, min_ver='0.53.0'),
-        host=dict(required=False, default=None, min_ver='0.53.0'),
+        binary=dict(min_ver='0.53.0'),
+        host=dict(min_ver='0.53.0'),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/config.py b/plugins/modules/config.py
index 94036e499af4b56235c6b041cdb8c5e3337ebea2..7a16ab74fe101136b6845e7e40a358f3b806dd99 100644
--- a/plugins/modules/config.py
+++ b/plugins/modules/config.py
@@ -52,7 +52,7 @@ from ansible.module_utils.basic import AnsibleModule
 
 def main():
     module = AnsibleModule(argument_spec=dict(
-        clouds=dict(required=False, type='list', default=[], elements='str'),
+        clouds=dict(type='list', default=[], elements='str'),
     ))
 
     if not HAS_OPENSTACKSDK:
diff --git a/plugins/modules/dns_zone.py b/plugins/modules/dns_zone.py
index 98cf655e3fcd74b3b60b764f5a47443a55edc250..a827b041b91ebf80fbbfbd3764ccec3df508b375 100644
--- a/plugins/modules/dns_zone.py
+++ b/plugins/modules/dns_zone.py
@@ -120,13 +120,13 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class DnsZoneModule(OpenStackModule):
 
     argument_spec = dict(
-        name=dict(required=True, type='str'),
-        zone_type=dict(required=False, choices=['primary', 'secondary'], type='str'),
-        email=dict(required=False, type='str'),
-        description=dict(required=False, type='str'),
-        ttl=dict(required=False, type='int'),
-        masters=dict(required=False, type='list', elements='str'),
-        state=dict(default='present', choices=['absent', 'present'], type='str'),
+        name=dict(required=True),
+        zone_type=dict(choices=['primary', 'secondary']),
+        email=dict(),
+        description=dict(),
+        ttl=dict(type='int'),
+        masters=dict(type='list', elements='str'),
+        state=dict(default='present', choices=['absent', 'present']),
     )
 
     def _system_state_change(self, state, email, description, ttl, masters, zone):
diff --git a/plugins/modules/dns_zone_info.py b/plugins/modules/dns_zone_info.py
index 22a3da5c7223349ac2fa8616f6acf60c3361ac67..c65fa2ff80d40565091fb99015d8eff13ab4f5d5 100644
--- a/plugins/modules/dns_zone_info.py
+++ b/plugins/modules/dns_zone_info.py
@@ -130,11 +130,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class DnsZoneInfoModule(OpenStackModule):
 
     argument_spec = dict(
-        name=dict(required=False, type='str'),
-        type=dict(required=False, choices=['primary', 'secondary'], type='str'),
-        email=dict(required=False, type='str'),
-        description=dict(required=False, type='str'),
-        ttl=dict(required=False, type='int')
+        name=dict(),
+        type=dict(choices=['primary', 'secondary']),
+        email=dict(),
+        description=dict(),
+        ttl=dict(type='int')
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/endpoint.py b/plugins/modules/endpoint.py
index c904ae2170158821b4b553ea6431a839002124eb..07d6f5f74d5074df388298a56a857b0d626a388f 100644
--- a/plugins/modules/endpoint.py
+++ b/plugins/modules/endpoint.py
@@ -118,12 +118,12 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityEndpointModule(OpenStackModule):
     argument_spec = dict(
-        service=dict(type='str', required=True),
-        endpoint_interface=dict(type='str', required=True, choices=['admin', 'public', 'internal']),
-        url=dict(type='str', required=True),
-        region=dict(type='str'),
+        service=dict(required=True),
+        endpoint_interface=dict(required=True, choices=['admin', 'public', 'internal']),
+        url=dict(required=True),
+        region=dict(),
         enabled=dict(type='bool', default=True),
-        state=dict(type='str', default='present', choices=['absent', 'present']),
+        state=dict(default='present', choices=['absent', 'present']),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/floating_ip.py b/plugins/modules/floating_ip.py
index 6b5fb0d66d893f0404cf38fc134dcfe47f8fc99d..a0147313125b81f59f419f9cc97104244454761a 100644
--- a/plugins/modules/floating_ip.py
+++ b/plugins/modules/floating_ip.py
@@ -127,15 +127,14 @@ class NetworkingFloatingIPModule(OpenStackModule):
     argument_spec = dict(
         server=dict(required=True),
         state=dict(default='present', choices=['absent', 'present']),
-        network=dict(required=False, default=None),
-        floating_ip_address=dict(required=False, default=None),
-        reuse=dict(required=False, type='bool', default=False),
-        fixed_address=dict(required=False, default=None),
-        nat_destination=dict(required=False, default=None,
-                             aliases=['fixed_network', 'internal_network']),
-        wait=dict(required=False, type='bool', default=False),
-        timeout=dict(required=False, type='int', default=60),
-        purge=dict(required=False, type='bool', default=False),
+        network=dict(),
+        floating_ip_address=dict(),
+        reuse=dict(type='bool', default=False),
+        fixed_address=dict(),
+        nat_destination=dict(aliases=['fixed_network', 'internal_network']),
+        wait=dict(type='bool', default=False),
+        timeout=dict(type='int', default=60),
+        purge=dict(type='bool', default=False),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/floating_ip_info.py b/plugins/modules/floating_ip_info.py
index 50e7c879f9d08b0acca5dca5b50d99709878b0bb..ecb49542dc513fd22fdb4c0b517e5bc80794b5dc 100644
--- a/plugins/modules/floating_ip_info.py
+++ b/plugins/modules/floating_ip_info.py
@@ -141,14 +141,14 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class FloatingIPInfoModule(OpenStackModule):
     argument_spec = dict(
-        description=dict(required=False),
-        fixed_ip_address=dict(required=False),
-        floating_ip_address=dict(required=False),
-        floating_network=dict(required=False),
-        port=dict(required=False),
-        project_id=dict(required=False),
-        router=dict(required=False),
-        status=dict(required=False, choices=['active', 'down']),
+        description=dict(),
+        fixed_ip_address=dict(),
+        floating_ip_address=dict(),
+        floating_network=dict(),
+        port=dict(),
+        project_id=dict(),
+        router=dict(),
+        status=dict(choices=['active', 'down']),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/host_aggregate.py b/plugins/modules/host_aggregate.py
index 6ecd9e92f37975ccaa8bfc650ccaa2a66f32e555..0b81fd426747f7bfce5ba7fbc001a38048c88e33 100644
--- a/plugins/modules/host_aggregate.py
+++ b/plugins/modules/host_aggregate.py
@@ -129,9 +129,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ComputeHostAggregateModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        metadata=dict(required=False, default=None, type='dict'),
-        availability_zone=dict(required=False, default=None),
-        hosts=dict(required=False, default=None, type='list', elements='str'),
+        metadata=dict(type='dict'),
+        availability_zone=dict(),
+        hosts=dict(type='list', elements='str'),
         purge_hosts=dict(default=True, type='bool'),
         state=dict(default='present', choices=['absent', 'present']),
     )
diff --git a/plugins/modules/identity_domain.py b/plugins/modules/identity_domain.py
index 660748c49aacc4a7540c840fd28489a6b2bf8021..0ae500d2d72937a0dc7426d01f5f22b1fa7992da 100644
--- a/plugins/modules/identity_domain.py
+++ b/plugins/modules/identity_domain.py
@@ -91,7 +91,7 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class IdentityDomainModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        description=dict(default=None),
+        description=dict(),
         enabled=dict(default=True, type='bool'),
         state=dict(default='present', choices=['absent', 'present']),
     )
diff --git a/plugins/modules/identity_domain_info.py b/plugins/modules/identity_domain_info.py
index c9f43d2cef16bc5684b5fe4b33b6616841a9bb3e..4654c82dc73df2eec906b01cd9aebbcf72227c72 100644
--- a/plugins/modules/identity_domain_info.py
+++ b/plugins/modules/identity_domain_info.py
@@ -89,8 +89,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityDomainInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        filters=dict(required=False, type='dict', default=None),
+        name=dict(),
+        filters=dict(type='dict'),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/identity_group.py b/plugins/modules/identity_group.py
index 5b45efa4b38b70ddded0a4283c4172aeb2c03883..9de1a186b00d2df2416b3d58e25628db63ecebf2 100644
--- a/plugins/modules/identity_group.py
+++ b/plugins/modules/identity_group.py
@@ -92,8 +92,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class IdentityGroupModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        description=dict(required=False, default=None),
-        domain_id=dict(required=False, default=None),
+        description=dict(),
+        domain_id=dict(),
         state=dict(default='present', choices=['absent', 'present']),
     )
 
diff --git a/plugins/modules/identity_group_info.py b/plugins/modules/identity_group_info.py
index 21f3b443f332f12a6e122abbaa74288d27528f3c..446fe035487e627f6291730e841a3b042e351b6a 100644
--- a/plugins/modules/identity_group_info.py
+++ b/plugins/modules/identity_group_info.py
@@ -116,9 +116,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityGroupInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        domain=dict(required=False, default=None),
-        filters=dict(required=False, type='dict', default=None),
+        name=dict(),
+        domain=dict(),
+        filters=dict(type='dict'),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/identity_role_info.py b/plugins/modules/identity_role_info.py
index d211a7ca4bbc99939ba64b3d352ff7069e08c22c..753c3c4ed7956fe311685d6ef60ba5b04a4126d8 100644
--- a/plugins/modules/identity_role_info.py
+++ b/plugins/modules/identity_role_info.py
@@ -82,8 +82,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityRoleInfoModule(OpenStackModule):
     argument_spec = dict(
-        domain_id=dict(type='str', required=False),
-        name=dict(type='str', required=False),
+        domain_id=dict(),
+        name=dict(),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/identity_user.py b/plugins/modules/identity_user.py
index 99aeda029ce49440773a7053d665c31f43c46090..1389d5d799ccba2a680aabb6b6ef19424e162eee 100644
--- a/plugins/modules/identity_user.py
+++ b/plugins/modules/identity_user.py
@@ -166,11 +166,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class IdentityUserModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        password=dict(required=False, default=None, no_log=True),
-        email=dict(required=False, default=None),
-        default_project=dict(required=False, default=None),
-        description=dict(type='str'),
-        domain=dict(required=False, default=None),
+        password=dict(no_log=True),
+        email=dict(),
+        default_project=dict(),
+        description=dict(),
+        domain=dict(),
         enabled=dict(default=True, type='bool'),
         state=dict(default='present', choices=['absent', 'present']),
         update_password=dict(default='on_create', choices=['always', 'on_create']),
diff --git a/plugins/modules/identity_user_info.py b/plugins/modules/identity_user_info.py
index 7fa03a856ed9ac1c9b1f8daa005547d9995f75b5..d095d5f6e44d3c7acbb3f57cccb1a34a063d786d 100644
--- a/plugins/modules/identity_user_info.py
+++ b/plugins/modules/identity_user_info.py
@@ -133,9 +133,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityUserInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        domain=dict(required=False, default=None),
-        filters=dict(required=False, type='dict', default={}),
+        name=dict(),
+        domain=dict(),
+        filters=dict(type='dict', default={}),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/image.py b/plugins/modules/image.py
index 8e0daf091926e5f87f71c669a12ad56ec26dd557..fe976ad92511917f640e9ac0ec40b99bf03975b9 100644
--- a/plugins/modules/image.py
+++ b/plugins/modules/image.py
@@ -448,26 +448,26 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ImageModule(OpenStackModule):
 
     argument_spec = dict(
-        name=dict(required=True, type='str'),
-        id=dict(type='str'),
-        checksum=dict(type='str'),
+        name=dict(required=True),
+        id=dict(),
+        checksum=dict(),
         disk_format=dict(default='qcow2',
                          choices=['ami', 'ari', 'aki', 'vhd', 'vmdk', 'raw', 'qcow2', 'vdi', 'iso', 'vhdx', 'ploop']),
         container_format=dict(default='bare', choices=['ami', 'aki', 'ari', 'bare', 'ovf', 'ova', 'docker']),
-        owner=dict(type='str', aliases=['project']),
-        owner_domain=dict(type='str', aliases=['project_domain']),
+        owner=dict(aliases=['project']),
+        owner_domain=dict(aliases=['project_domain']),
         min_disk=dict(type='int', default=0),
         min_ram=dict(type='int', default=0),
         is_public=dict(type='bool', default=False),
         is_protected=dict(type='bool', aliases=['protected']),
-        filename=dict(type='str'),
-        ramdisk=dict(type='str'),
-        kernel=dict(type='str'),
+        filename=dict(),
+        ramdisk=dict(),
+        kernel=dict(),
         properties=dict(type='dict', default={}),
-        volume=dict(type='str'),
+        volume=dict(),
         tags=dict(type='list', default=[], elements='str'),
         state=dict(default='present', choices=['absent', 'present']),
-        visibility=dict(type='str', choices=['public', 'private', 'shared', 'community']),
+        visibility=dict(choices=['public', 'private', 'shared', 'community']),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/image_info.py b/plugins/modules/image_info.py
index 8fdf9064dfbda51c9f7746387fd30aa230949f07..4e7ace629bd94f7896a5c49073006a0fa8a214c3 100644
--- a/plugins/modules/image_info.py
+++ b/plugins/modules/image_info.py
@@ -375,8 +375,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ImageInfoModule(OpenStackModule):
 
     argument_spec = dict(
-        image=dict(type='str', required=False),
-        filters=dict(type='dict', required=False, aliases=['properties']),
+        image=dict(),
+        filters=dict(type='dict', aliases=['properties']),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/keypair.py b/plugins/modules/keypair.py
index 04763eaf235a611c8d1c9580e1ff21176989e93e..5d86e5f35af6fdf5ca0bf147de1d964010f708da 100644
--- a/plugins/modules/keypair.py
+++ b/plugins/modules/keypair.py
@@ -87,8 +87,8 @@ class KeyPairModule(OpenStackModule):
 
     argument_spec = dict(
         name=dict(required=True),
-        public_key=dict(default=None),
-        public_key_file=dict(default=None),
+        public_key=dict(),
+        public_key_file=dict(),
         state=dict(default='present',
                    choices=['absent', 'present', 'replace']),
     )
diff --git a/plugins/modules/keypair_info.py b/plugins/modules/keypair_info.py
index 3cbb3f67bc2c20c3a2a9f945f2a07b50d93d87c9..4b97898858bd987c19bee9d353e042a031d2a23f 100644
--- a/plugins/modules/keypair_info.py
+++ b/plugins/modules/keypair_info.py
@@ -111,10 +111,10 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (
 
 class KeyPairInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(type='str', required=False),
-        user_id=dict(type='str', required=False),
-        limit=dict(type='int', required=False),
-        marker=dict(type='str', required=False)
+        name=dict(),
+        user_id=dict(),
+        limit=dict(type='int'),
+        marker=dict()
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/lb_health_monitor.py b/plugins/modules/lb_health_monitor.py
index 94de4485ec4abe45d45078d8a01e5368af77dd98..ce4131a9150d9b26085d2b630b076af398e54452 100644
--- a/plugins/modules/lb_health_monitor.py
+++ b/plugins/modules/lb_health_monitor.py
@@ -217,16 +217,16 @@ class HealthMonitorModule(OpenStackModule):
         name=dict(required=True),
         delay=dict(required=True),
         max_retries=dict(required=True),
-        max_retries_down=dict(required=False, default="3"),
+        max_retries_down=dict(default="3"),
         resp_timeout=dict(required=True, type='int'),
         pool=dict(required=True),
-        expected_codes=dict(required=False, default="200"),
-        admin_state_up=dict(required=False, default=True, type='bool'),
+        expected_codes=dict(default="200"),
+        admin_state_up=dict(default=True, type='bool'),
         state=dict(default='present', choices=['absent', 'present']),
-        http_method=dict(default="GET", required=False, choices=["GET", "CONNECT", "DELETE",
-                                                                 "HEAD", "OPTIONS", "PATCH",
-                                                                 "POST", "PUT", "TRACE"]),
-        url_path=dict(default="/", required=False),
+        http_method=dict(default="GET", choices=["GET", "CONNECT", "DELETE",
+                                                 "HEAD", "OPTIONS", "PATCH",
+                                                 "POST", "PUT", "TRACE"]),
+        url_path=dict(default="/"),
         type=dict(default='HTTP',
                   choices=['HTTP', 'HTTPS', 'PING', 'SCTP', 'TCP', 'TLS-HELLO', 'UDP-CONNECT']))
 
diff --git a/plugins/modules/lb_listener.py b/plugins/modules/lb_listener.py
index f4cdad48af3cfbe75b4394daf0d08ffbc1fab846..cf15c57345980d9d3f3261bc0e983c1ea14fcb96 100644
--- a/plugins/modules/lb_listener.py
+++ b/plugins/modules/lb_listener.py
@@ -183,9 +183,9 @@ class LoadbalancerListenerModule(OpenStackModule):
         loadbalancer=dict(required=True),
         protocol=dict(default='HTTP',
                       choices=['HTTP', 'HTTPS', 'TCP', 'TERMINATED_HTTPS', 'UDP', 'SCTP']),
-        protocol_port=dict(default=80, type='int', required=False),
-        timeout_client_data=dict(default=50000, type='int', required=False),
-        timeout_member_data=dict(default=50000, type='int', required=False),
+        protocol_port=dict(default=80, type='int'),
+        timeout_client_data=dict(default=50000, type='int'),
+        timeout_member_data=dict(default=50000, type='int'),
     )
     module_kwargs = dict()
 
diff --git a/plugins/modules/lb_member.py b/plugins/modules/lb_member.py
index 264f2b8e696df7cf84441f3baa0891a8b3919759..65684af9cbce81aa1320e0e394efc49fc05d5f80 100644
--- a/plugins/modules/lb_member.py
+++ b/plugins/modules/lb_member.py
@@ -146,11 +146,11 @@ class LoadbalancerMemberModule(OpenStackModule):
         name=dict(required=True),
         state=dict(default='present', choices=['absent', 'present']),
         pool=dict(required=True),
-        address=dict(default=None),
+        address=dict(),
         protocol_port=dict(default=80, type='int'),
-        subnet_id=dict(default=None),
-        monitor_address=dict(default=None),
-        monitor_port=dict(default=None, type='int')
+        subnet_id=dict(),
+        monitor_address=dict(),
+        monitor_port=dict(type='int')
     )
     module_kwargs = dict()
 
diff --git a/plugins/modules/lb_pool.py b/plugins/modules/lb_pool.py
index 6f73ea1ce6adb54ff14e3e811716183c23b4d29c..775578db4a92e617d0331dad58e182a38fba23b2 100644
--- a/plugins/modules/lb_pool.py
+++ b/plugins/modules/lb_pool.py
@@ -156,8 +156,8 @@ class LoadbalancerPoolModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
         state=dict(default='present', choices=['absent', 'present']),
-        loadbalancer=dict(default=None),
-        listener=dict(default=None),
+        loadbalancer=dict(),
+        listener=dict(),
         protocol=dict(default='HTTP',
                       choices=['HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY']),
         lb_algorithm=dict(
diff --git a/plugins/modules/loadbalancer.py b/plugins/modules/loadbalancer.py
index 336da966c67137165295fe6a00c60d8c8fc90339..b4ff22c0d2588c651dada83c71c21669a486b2e8 100644
--- a/plugins/modules/loadbalancer.py
+++ b/plugins/modules/loadbalancer.py
@@ -362,17 +362,17 @@ class LoadBalancerModule(OpenStackModule):
 
     argument_spec = dict(
         name=dict(required=True),
-        flavor=dict(required=False),
+        flavor=dict(),
         state=dict(default='present', choices=['absent', 'present']),
-        vip_network=dict(required=False),
-        vip_subnet=dict(required=False),
-        vip_port=dict(required=False),
-        vip_address=dict(required=False),
+        vip_network=dict(),
+        vip_subnet=dict(),
+        vip_port=dict(),
+        vip_address=dict(),
         listeners=dict(type='list', default=[], elements='dict'),
-        public_ip_address=dict(required=False, default=None),
-        auto_public_ip=dict(required=False, default=False, type='bool'),
-        public_network=dict(required=False),
-        delete_public_ip=dict(required=False, default=False, type='bool'),
+        public_ip_address=dict(),
+        auto_public_ip=dict(default=False, type='bool'),
+        public_network=dict(),
+        delete_public_ip=dict(default=False, type='bool'),
     )
     module_kwargs = dict(supports_check_mode=True)
 
diff --git a/plugins/modules/network.py b/plugins/modules/network.py
index a10585082754733f71263fa5a5f46270feb70dd7..3aa9ef7da53c2c5dc80e558419eae4174022104d 100644
--- a/plugins/modules/network.py
+++ b/plugins/modules/network.py
@@ -196,14 +196,14 @@ class NetworkModule(OpenStackModule):
         shared=dict(default=False, type='bool'),
         admin_state_up=dict(default=True, type='bool'),
         external=dict(default=False, type='bool'),
-        provider_physical_network=dict(required=False),
-        provider_network_type=dict(required=False),
-        provider_segmentation_id=dict(required=False, type='int'),
+        provider_physical_network=dict(),
+        provider_network_type=dict(),
+        provider_segmentation_id=dict(type='int'),
         state=dict(default='present', choices=['absent', 'present']),
-        project=dict(default=None),
+        project=dict(),
         port_security_enabled=dict(type='bool'),
-        mtu=dict(required=False, type='int', aliases=['mtu_size']),
-        dns_domain=dict(required=False)
+        mtu=dict(type='int', aliases=['mtu_size']),
+        dns_domain=dict()
     )
 
     def run(self):
diff --git a/plugins/modules/networks_info.py b/plugins/modules/networks_info.py
index 88dca30a3f3dae992930aee7b618f25fa951a64f..442c68478bf77a12bc9e1583144b346a63939f0b 100644
--- a/plugins/modules/networks_info.py
+++ b/plugins/modules/networks_info.py
@@ -173,8 +173,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class NetworkInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        filters=dict(required=False, type='dict', default=None)
+        name=dict(),
+        filters=dict(type='dict')
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/object.py b/plugins/modules/object.py
index 4a22604ed87eb6f35778b15756b9a5526a8c95d4..22886955109d510615f0e8ddefc8ff4711202f6b 100644
--- a/plugins/modules/object.py
+++ b/plugins/modules/object.py
@@ -70,9 +70,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class SwiftObjectModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None),
+        name=dict(),
         container=dict(required=True),
-        filename=dict(required=False, default=None),
+        filename=dict(),
         container_access=dict(default='private', choices=['private', 'public']),
         state=dict(default='present', choices=['absent', 'present']),
     )
diff --git a/plugins/modules/object_container.py b/plugins/modules/object_container.py
index 23ed38e5409a437b0db4fca647412acea082adc0..0af0189c0a123d878b97d02ac4805cdb5703d73c 100644
--- a/plugins/modules/object_container.py
+++ b/plugins/modules/object_container.py
@@ -114,11 +114,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ContainerModule(OpenStackModule):
 
     argument_spec = dict(
-        container=dict(type='str', required=True),
-        metadata=dict(type='dict', required=False),
-        keys=dict(type='list', required=False, elements='str', no_log=False),
-        state=dict(type='str', required=False, default='present', choices=['present', 'absent']),
-        delete_with_all_objects=dict(type='bool', default=False, required=False)
+        container=dict(required=True),
+        metadata=dict(type='dict'),
+        keys=dict(type='list', elements='str', no_log=False),
+        state=dict(default='present', choices=['present', 'absent']),
+        delete_with_all_objects=dict(type='bool', default=False)
     )
 
     def create(self, container):
diff --git a/plugins/modules/port.py b/plugins/modules/port.py
index accef4fcc4e120776b0c89150d195c7bdf140312..eb1f826dcab32d33ea88327e791ab60aa1e9787b 100644
--- a/plugins/modules/port.py
+++ b/plugins/modules/port.py
@@ -294,25 +294,24 @@ except ImportError:
 
 class NetworkPortModule(OpenStackModule):
     argument_spec = dict(
-        network=dict(required=False),
-        name=dict(required=False),
-        fixed_ips=dict(type='list', default=None, elements='dict'),
-        admin_state_up=dict(type='bool', default=None),
-        mac_address=dict(default=None),
-        security_groups=dict(default=None, type='list', elements='str'),
+        network=dict(),
+        name=dict(),
+        fixed_ips=dict(type='list', elements='dict'),
+        admin_state_up=dict(type='bool'),
+        mac_address=dict(),
+        security_groups=dict(type='list', elements='str'),
         no_security_groups=dict(default=False, type='bool'),
-        allowed_address_pairs=dict(type='list', default=None, elements='dict'),
-        extra_dhcp_opts=dict(type='list', default=None, elements='dict'),
-        device_owner=dict(default=None),
-        device_id=dict(default=None),
+        allowed_address_pairs=dict(type='list', elements='dict'),
+        extra_dhcp_opts=dict(type='list', elements='dict'),
+        device_owner=dict(),
+        device_id=dict(),
         state=dict(default='present', choices=['absent', 'present']),
-        vnic_type=dict(default=None,
-                       choices=['normal', 'direct', 'direct-physical',
+        vnic_type=dict(choices=['normal', 'direct', 'direct-physical',
                                 'macvtap', 'baremetal', 'virtio-forwarder']),
-        port_security_enabled=dict(default=None, type='bool'),
-        binding_profile=dict(default=None, type='dict'),
-        dns_name=dict(type='str', default=None),
-        dns_domain=dict(type='str', default=None)
+        port_security_enabled=dict(type='bool'),
+        binding_profile=dict(type='dict'),
+        dns_name=dict(),
+        dns_domain=dict()
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/port_info.py b/plugins/modules/port_info.py
index 41010fa2715c6c012c9f1e6bcb9a1061e9884443..66b10579d730097594b2ad4806837b8b27d6416f 100644
--- a/plugins/modules/port_info.py
+++ b/plugins/modules/port_info.py
@@ -254,8 +254,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class NetworkPortInfoModule(OpenStackModule):
     argument_spec = dict(
-        port=dict(type='str', required=False),
-        filters=dict(type='dict', required=False, default={}),
+        port=dict(),
+        filters=dict(type='dict', default={}),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/project.py b/plugins/modules/project.py
index 41fa3e0f6d056e0e6208ab067f04e18e014dbccd..75cdeeb5699547f5dad6378bb018dcb0c462fd23 100644
--- a/plugins/modules/project.py
+++ b/plugins/modules/project.py
@@ -122,10 +122,10 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class IdentityProjectModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        description=dict(required=False),
-        domain=dict(required=False, aliases=['domain_id']),
+        description=dict(),
+        domain=dict(aliases=['domain_id']),
         is_enabled=dict(default=True, type='bool', aliases=['enabled']),
-        properties=dict(required=False, type='dict', min_ver='0.45.1'),
+        properties=dict(type='dict', min_ver='0.45.1'),
         state=dict(default='present', choices=['absent', 'present'])
     )
     module_kwargs = dict(
diff --git a/plugins/modules/project_access.py b/plugins/modules/project_access.py
index c49a84495408161729fce00ea34ff2028114b43a..7e7c2aa0c6487e46bd2061a7f261146fc5b54dbe 100644
--- a/plugins/modules/project_access.py
+++ b/plugins/modules/project_access.py
@@ -96,11 +96,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityProjectAccess(OpenStackModule):
     argument_spec = dict(
-        state=dict(required=False, default='present',
+        state=dict(default='present',
                    choices=['absent', 'present']),
-        target_project_id=dict(required=True, type='str'),
-        resource_type=dict(required=True, type='str'),
-        resource_name=dict(required=True, type='str'),
+        target_project_id=dict(required=True),
+        resource_type=dict(required=True),
+        resource_name=dict(required=True),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/project_info.py b/plugins/modules/project_info.py
index 5ed3344eec633905bca0cb005dd507dbec275333..3c0f06425f891cf5834743d80093df4fcfa8ee34 100644
--- a/plugins/modules/project_info.py
+++ b/plugins/modules/project_info.py
@@ -120,9 +120,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class IdentityProjectInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False),
-        domain=dict(required=False),
-        filters=dict(required=False, type='dict'),
+        name=dict(),
+        domain=dict(),
+        filters=dict(type='dict'),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/quota.py b/plugins/modules/quota.py
index 0d6a4f04c2bbed18174462cceef3a43c475a9276..75bff8eab23cb4da4b12fbd39341b111f536f442 100644
--- a/plugins/modules/quota.py
+++ b/plugins/modules/quota.py
@@ -267,40 +267,40 @@ class QuotaModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
         state=dict(default='present', choices=['absent', 'present']),
-        backup_gigabytes=dict(required=False, type='int', default=None),
-        backups=dict(required=False, type='int', default=None),
-        cores=dict(required=False, type='int', default=None),
-        fixed_ips=dict(required=False, type='int', default=None),
-        floating_ips=dict(required=False, type='int', default=None, aliases=['compute_floating_ips']),
-        floatingip=dict(required=False, type='int', default=None, aliases=['network_floating_ips']),
-        gigabytes=dict(required=False, type='int', default=None),
-        gigabytes_types=dict(required=False, type='dict', default={}),
-        injected_file_size=dict(required=False, type='int', default=None),
-        injected_files=dict(required=False, type='int', default=None),
-        injected_path_size=dict(required=False, type='int', default=None),
-        instances=dict(required=False, type='int', default=None),
-        key_pairs=dict(required=False, type='int', default=None, no_log=False),
-        loadbalancer=dict(required=False, type='int', default=None),
-        metadata_items=dict(required=False, type='int', default=None),
-        network=dict(required=False, type='int', default=None),
-        per_volume_gigabytes=dict(required=False, type='int', default=None),
-        pool=dict(required=False, type='int', default=None),
-        port=dict(required=False, type='int', default=None),
-        project=dict(required=False, type='int', default=None),
-        properties=dict(required=False, type='int', default=None),
-        ram=dict(required=False, type='int', default=None),
-        rbac_policy=dict(required=False, type='int', default=None),
-        router=dict(required=False, type='int', default=None),
-        security_group_rule=dict(required=False, type='int', default=None),
-        security_group=dict(required=False, type='int', default=None),
-        server_group_members=dict(required=False, type='int', default=None),
-        server_groups=dict(required=False, type='int', default=None),
-        snapshots=dict(required=False, type='int', default=None),
-        snapshots_types=dict(required=False, type='dict', default={}),
-        subnet=dict(required=False, type='int', default=None),
-        subnetpool=dict(required=False, type='int', default=None),
-        volumes=dict(required=False, type='int', default=None),
-        volumes_types=dict(required=False, type='dict', default={})
+        backup_gigabytes=dict(type='int'),
+        backups=dict(type='int'),
+        cores=dict(type='int'),
+        fixed_ips=dict(type='int'),
+        floating_ips=dict(type='int', aliases=['compute_floating_ips']),
+        floatingip=dict(type='int', aliases=['network_floating_ips']),
+        gigabytes=dict(type='int'),
+        gigabytes_types=dict(type='dict', default={}),
+        injected_file_size=dict(type='int'),
+        injected_files=dict(type='int'),
+        injected_path_size=dict(type='int'),
+        instances=dict(type='int'),
+        key_pairs=dict(type='int', no_log=False),
+        loadbalancer=dict(type='int'),
+        metadata_items=dict(type='int'),
+        network=dict(type='int'),
+        per_volume_gigabytes=dict(type='int'),
+        pool=dict(type='int'),
+        port=dict(type='int'),
+        project=dict(type='int'),
+        properties=dict(type='int'),
+        ram=dict(type='int'),
+        rbac_policy=dict(type='int'),
+        router=dict(type='int'),
+        security_group_rule=dict(type='int'),
+        security_group=dict(type='int'),
+        server_group_members=dict(type='int'),
+        server_groups=dict(type='int'),
+        snapshots=dict(type='int'),
+        snapshots_types=dict(type='dict', default={}),
+        subnet=dict(type='int'),
+        subnetpool=dict(type='int'),
+        volumes=dict(type='int'),
+        volumes_types=dict(type='dict', default={})
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/recordset.py b/plugins/modules/recordset.py
index f36cee33ee40607e512ae0e16a9c639ccc73dfc1..98831d4cb2cf92ee3efccfab16ae178d6ccea735 100644
--- a/plugins/modules/recordset.py
+++ b/plugins/modules/recordset.py
@@ -164,12 +164,12 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class DnsRecordsetModule(OpenStackModule):
     argument_spec = dict(
-        description=dict(required=False, default=None),
+        description=dict(),
         name=dict(required=True),
-        records=dict(required=False, type='list', elements='str'),
-        recordset_type=dict(required=False, choices=['a', 'aaaa', 'mx', 'cname', 'txt', 'ns', 'srv', 'ptr', 'caa']),
+        records=dict(type='list', elements='str'),
+        recordset_type=dict(choices=['a', 'aaaa', 'mx', 'cname', 'txt', 'ns', 'srv', 'ptr', 'caa']),
         state=dict(default='present', choices=['absent', 'present']),
-        ttl=dict(required=False, type='int'),
+        ttl=dict(type='int'),
         zone=dict(required=True),
     )
 
diff --git a/plugins/modules/role_assignment.py b/plugins/modules/role_assignment.py
index 21c514c67d2b6609a36b623611209a514ec893e6..e5cc35ddc556c90abc2262830101c46496ad970f 100644
--- a/plugins/modules/role_assignment.py
+++ b/plugins/modules/role_assignment.py
@@ -84,11 +84,11 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class IdentityRoleAssignmentModule(OpenStackModule):
     argument_spec = dict(
         role=dict(required=True),
-        user=dict(required=False),
-        group=dict(required=False),
-        project=dict(required=False),
-        domain=dict(required=False),
-        system=dict(required=False),
+        user=dict(),
+        group=dict(),
+        project=dict(),
+        domain=dict(),
+        system=dict(),
         state=dict(default='present', choices=['absent', 'present']),
     )
 
diff --git a/plugins/modules/router.py b/plugins/modules/router.py
index 58c5c124ee082a1d28ae432fe9317ce42449dd78..762a629a40e8a905acd52dee6d83503e4eed73b3 100644
--- a/plugins/modules/router.py
+++ b/plugins/modules/router.py
@@ -220,10 +220,10 @@ class RouterModule(OpenStackModule):
         name=dict(required=True),
         admin_state_up=dict(type='bool', default=True),
         enable_snat=dict(type='bool'),
-        network=dict(default=None),
-        interfaces=dict(type='list', default=None, elements='raw'),
-        external_fixed_ips=dict(type='list', default=None, elements='dict'),
-        project=dict(default=None)
+        network=dict(),
+        interfaces=dict(type='list', elements='raw'),
+        external_fixed_ips=dict(type='list', elements='dict'),
+        project=dict()
     )
 
     def _get_subnet_ids_from_ports(self, ports):
diff --git a/plugins/modules/routers_info.py b/plugins/modules/routers_info.py
index 5c08bfd6581ec3a3a680b3a93fc82cb08629873b..9b424058dd5a580084923270e370f4af84fca49c 100644
--- a/plugins/modules/routers_info.py
+++ b/plugins/modules/routers_info.py
@@ -192,8 +192,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class RouterInfoModule(OpenStackModule):
 
     argument_spec = dict(
-        name=dict(required=False, default=None),
-        filters=dict(required=False, type='dict', default={})
+        name=dict(),
+        filters=dict(type='dict', default={})
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/security_group.py b/plugins/modules/security_group.py
index 8208a1c220a9bf92eec448c3c70fcccdd7671852..a67255a8bc825a5adf6465aeb9d0b7ef0fce9bba 100644
--- a/plugins/modules/security_group.py
+++ b/plugins/modules/security_group.py
@@ -73,7 +73,7 @@ class SecurityGroupModule(OpenStackModule):
         name=dict(required=True),
         description=dict(default=''),
         state=dict(default='present', choices=['absent', 'present']),
-        project=dict(default=None),
+        project=dict(),
     )
 
     def _needs_update(self, secgroup):
diff --git a/plugins/modules/security_group_info.py b/plugins/modules/security_group_info.py
index f436acbb1dce1b0938bc02007fa38c3aadd03b75..5075ab9df31f139211c7fdfd0f97573bbacea088 100644
--- a/plugins/modules/security_group_info.py
+++ b/plugins/modules/security_group_info.py
@@ -153,14 +153,14 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (
 
 class SecurityGroupInfoModule(OpenStackModule):
     argument_spec = dict(
-        description=dict(required=False, type='str'),
-        name=dict(required=False, type='str'),
-        project_id=dict(required=False, type='str'),
-        revision_number=dict(required=False, type='int'),
-        tags=dict(required=False, type='list', elements='str'),
-        any_tags=dict(required=False, type='list', elements='str'),
-        not_tags=dict(required=False, type='list', elements='str'),
-        not_any_tags=dict(required=False, type='list', elements='str')
+        description=dict(),
+        name=dict(),
+        project_id=dict(),
+        revision_number=dict(type='int'),
+        tags=dict(type='list', elements='str'),
+        any_tags=dict(type='list', elements='str'),
+        not_tags=dict(type='list', elements='str'),
+        not_any_tags=dict(type='list', elements='str')
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/security_group_rule.py b/plugins/modules/security_group_rule.py
index c4a530ed09042f32b1ca4fe44cc87febfd2e220f..61f43454916f07fa60352aeb3746bc3d732c7d21 100644
--- a/plugins/modules/security_group_rule.py
+++ b/plugins/modules/security_group_rule.py
@@ -306,11 +306,11 @@ class SecurityGroupRuleModule(OpenStackModule):
 
     argument_spec = dict(
         security_group=dict(required=True),
-        protocol=dict(type='str'),
-        port_range_min=dict(required=False, type='int'),
-        port_range_max=dict(required=False, type='int'),
-        remote_ip_prefix=dict(required=False),
-        remote_group=dict(required=False),
+        protocol=dict(),
+        port_range_min=dict(type='int'),
+        port_range_max=dict(type='int'),
+        remote_ip_prefix=dict(),
+        remote_group=dict(),
         ether_type=dict(default='IPv4',
                         choices=['IPv4', 'IPv6'],
                         aliases=['ethertype']),
@@ -318,8 +318,8 @@ class SecurityGroupRuleModule(OpenStackModule):
                        choices=['egress', 'ingress']),
         state=dict(default='present',
                    choices=['absent', 'present']),
-        description=dict(required=False, default=None),
-        project=dict(default=None),
+        description=dict(),
+        project=dict(),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/security_group_rule_info.py b/plugins/modules/security_group_rule_info.py
index b00f71927ecb4578acdd1e1ae8049daeac8b8657..ac52e5679d51dac32779cbb2e61d8ba8b09b79f0 100644
--- a/plugins/modules/security_group_rule_info.py
+++ b/plugins/modules/security_group_rule_info.py
@@ -154,24 +154,18 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (
 
 class SecurityGroupRuleInfoModule(OpenStackModule):
     argument_spec = dict(
-        description=dict(required=False, type='str'),
-        direction=dict(required=False,
-                       type='str',
-                       choices=['egress', 'ingress']),
-        ethertype=dict(required=False,
-                       type='str',
-                       choices=['IPv4', 'IPv6']),
-        port_range_min=dict(required=False, type='int', min_ver="0.32.0"),
-        port_range_max=dict(required=False, type='int', min_ver="0.32.0"),
-        project=dict(required=False, type='str'),
-        protocol=dict(required=False,
-                      type='str',
-                      choices=['any', 'tcp', 'udp', 'icmp', '112', '132']),
-        remote_group=dict(required=False, type='str'),
-        remote_ip_prefix=dict(required=False, type='str', min_ver="0.32.0"),
-        revision_number=dict(required=False, type='int'),
-        rule=dict(required=False, type='str'),
-        security_group=dict(required=False, type='str')
+        description=dict(),
+        direction=dict(choices=['egress', 'ingress']),
+        ethertype=dict(choices=['IPv4', 'IPv6']),
+        port_range_min=dict(type='int', min_ver="0.32.0"),
+        port_range_max=dict(type='int', min_ver="0.32.0"),
+        project=dict(),
+        protocol=dict(choices=['any', 'tcp', 'udp', 'icmp', '112', '132']),
+        remote_group=dict(),
+        remote_ip_prefix=dict(min_ver="0.32.0"),
+        revision_number=dict(type='int'),
+        rule=dict(),
+        security_group=dict()
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/server.py b/plugins/modules/server.py
index b2818143835ebb148b20125bac8097c5f8d3d248..a37b22a95f49d580a8a20d48b9ab561540116645 100644
--- a/plugins/modules/server.py
+++ b/plugins/modules/server.py
@@ -484,31 +484,31 @@ class ServerModule(OpenStackModule):
 
     argument_spec = dict(
         name=dict(required=True),
-        image=dict(default=None),
+        image=dict(),
         image_exclude=dict(default='(deprecated)'),
-        flavor=dict(default=None),
-        flavor_ram=dict(default=None, type='int'),
-        flavor_include=dict(default=None),
-        key_name=dict(default=None),
+        flavor=dict(),
+        flavor_ram=dict(type='int'),
+        flavor_include=dict(),
+        key_name=dict(),
         security_groups=dict(default=['default'], type='list', elements='str'),
-        network=dict(default=None),
+        network=dict(),
         nics=dict(default=[], type='list', elements='raw'),
-        meta=dict(default=None, type='raw'),
-        userdata=dict(default=None, aliases=['user_data']),
+        meta=dict(type='raw'),
+        userdata=dict(aliases=['user_data']),
         config_drive=dict(default=False, type='bool'),
         auto_ip=dict(default=True, type='bool', aliases=['auto_floating_ip', 'public_ip']),
-        floating_ips=dict(default=None, type='list', elements='str'),
-        floating_ip_pools=dict(default=None, type='list', elements='str'),
-        volume_size=dict(default=None, type='int'),
+        floating_ips=dict(type='list', elements='str'),
+        floating_ip_pools=dict(type='list', elements='str'),
+        volume_size=dict(type='int'),
         boot_from_volume=dict(default=False, type='bool'),
-        boot_volume=dict(default=None, aliases=['root_volume']),
+        boot_volume=dict(aliases=['root_volume']),
         terminate_volume=dict(default=False, type='bool'),
         volumes=dict(default=[], type='list', elements='str'),
-        scheduler_hints=dict(default=None, type='dict'),
+        scheduler_hints=dict(type='dict'),
         state=dict(default='present', choices=['absent', 'present']),
         delete_fip=dict(default=False, type='bool'),
         reuse_ips=dict(default=True, type='bool'),
-        description=dict(default=None, type='str'),
+        description=dict(),
     )
     module_kwargs = dict(
         mutually_exclusive=[
diff --git a/plugins/modules/server_action.py b/plugins/modules/server_action.py
index c49d6c44be5d300ad39890516e3f155f86b88156..eac09c3fde9e9b352e46d824ee79e1050cf5e0fc 100644
--- a/plugins/modules/server_action.py
+++ b/plugins/modules/server_action.py
@@ -117,14 +117,14 @@ _admin_actions = ['pause', 'unpause', 'suspend', 'resume', 'lock', 'unlock', 'sh
 
 class ServerActionModule(OpenStackModule):
     argument_spec = dict(
-        server=dict(required=True, type='str'),
-        action=dict(required=True, type='str',
+        server=dict(required=True),
+        action=dict(required=True,
                     choices=['stop', 'start', 'pause', 'unpause',
                              'lock', 'unlock', 'suspend', 'resume',
                              'rebuild', 'shelve', 'shelve_offload', 'unshelve']),
-        image=dict(required=False, type='str'),
-        admin_password=dict(required=False, type='str', no_log=True),
-        all_projects=dict(required=False, type='bool', default=False),
+        image=dict(),
+        admin_password=dict(no_log=True),
+        all_projects=dict(type='bool', default=False),
     )
     module_kwargs = dict(
         required_if=[('action', 'rebuild', ['image'])],
diff --git a/plugins/modules/server_group.py b/plugins/modules/server_group.py
index 84f59e6cbe3d538411543e949c595fd52477ef5f..9f3ab22c181e1a614554a16ba0011f57aeef008e 100644
--- a/plugins/modules/server_group.py
+++ b/plugins/modules/server_group.py
@@ -102,7 +102,7 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ServerGroupModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        policies=dict(required=False, type='list', elements='str'),
+        policies=dict(type='list', elements='str'),
         state=dict(default='present', choices=['absent', 'present']),
     )
 
diff --git a/plugins/modules/server_info.py b/plugins/modules/server_info.py
index f8d6a4e4fbfcf01bd5615bc7a295e5a85a8ca752..a9862b8b0efc562d92408af3f5b7099bf88604b0 100644
--- a/plugins/modules/server_info.py
+++ b/plugins/modules/server_info.py
@@ -61,10 +61,10 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class ServerInfoModule(OpenStackModule):
 
     argument_spec = dict(
-        server=dict(required=False),
-        detailed=dict(required=False, type='bool', default=False),
-        filters=dict(required=False, type='dict', default=None),
-        all_projects=dict(required=False, type='bool', default=False),
+        server=dict(),
+        detailed=dict(type='bool', default=False),
+        filters=dict(type='dict'),
+        all_projects=dict(type='bool', default=False),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/server_volume.py b/plugins/modules/server_volume.py
index 1deb8fa6e536518d909ce354338753a68943addb..07c4e81a1866ab36d5105bd7d2c97fb0e3e21ee8 100644
--- a/plugins/modules/server_volume.py
+++ b/plugins/modules/server_volume.py
@@ -76,7 +76,7 @@ class ServerVolumeModule(OpenStackModule):
     argument_spec = dict(
         server=dict(required=True),
         volume=dict(required=True),
-        device=dict(default=None),  # None == auto choose device name
+        device=dict(),  # None == auto choose device name
         state=dict(default='present', choices=['absent', 'present']),
     )
 
diff --git a/plugins/modules/stack.py b/plugins/modules/stack.py
index 95b7bef5e1798df2b8adecf555a120a72e87e646..3591c80cf6a75b3c63ba81feec63d1172b2903b5 100644
--- a/plugins/modules/stack.py
+++ b/plugins/modules/stack.py
@@ -152,9 +152,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class StackModule(OpenStackModule):
     argument_spec = dict(
         name=dict(required=True),
-        tag=dict(required=False, default=None, min_ver='0.28.0'),
-        template=dict(default=None),
-        environment=dict(default=None, type='list', elements='str'),
+        tag=dict(min_ver='0.28.0'),
+        template=dict(),
+        environment=dict(type='list', elements='str'),
         parameters=dict(default={}, type='dict'),
         rollback=dict(default=False, type='bool'),
         timeout=dict(default=3600, type='int'),
diff --git a/plugins/modules/stack_info.py b/plugins/modules/stack_info.py
index ce56995a4cd2a65f52829323f4468a305db48611..3aeba36076b0192566aaf546ecd28c38fa0fcd6d 100644
--- a/plugins/modules/stack_info.py
+++ b/plugins/modules/stack_info.py
@@ -75,10 +75,10 @@ class StackInfoModule(OpenStackModule):
     module_min_sdk_version = '0.53.0'
 
     argument_spec = dict(
-        name=dict(required=False, type='str'),
-        status=dict(required=False, type='str'),
-        project_id=dict(required=False, type='str'),
-        owner_id=dict(required=False, type='str')
+        name=dict(),
+        status=dict(),
+        project_id=dict(),
+        owner_id=dict()
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/subnet.py b/plugins/modules/subnet.py
index 4791baba0ffd3b3ddb3f17d1b6b817d777d7d541..9ff312919ee106457a8932efdf3e3a6bc55c20e1 100644
--- a/plugins/modules/subnet.py
+++ b/plugins/modules/subnet.py
@@ -290,30 +290,30 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class SubnetModule(OpenStackModule):
     ipv6_mode_choices = ['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac']
     argument_spec = dict(
-        name=dict(type='str', required=True),
-        network=dict(type='str', aliases=['network_name']),
-        cidr=dict(type='str'),
-        description=dict(type='str'),
+        name=dict(required=True),
+        network=dict(aliases=['network_name']),
+        cidr=dict(),
+        description=dict(),
         ip_version=dict(type='int', default=4, choices=[4, 6]),
         is_dhcp_enabled=dict(type='bool', default=True,
                              aliases=['enable_dhcp']),
-        gateway_ip=dict(type='str'),
+        gateway_ip=dict(),
         disable_gateway_ip=dict(
             type='bool', default=False, aliases=['no_gateway_ip']),
-        dns_nameservers=dict(type='list', default=None, elements='str'),
-        allocation_pool_start=dict(type='str'),
-        allocation_pool_end=dict(type='str'),
-        host_routes=dict(type='list', default=None, elements='dict'),
-        ipv6_ra_mode=dict(type='str', choices=ipv6_mode_choices),
-        ipv6_address_mode=dict(type='str', choices=ipv6_mode_choices),
-        subnet_pool=dict(type='str'),
-        prefix_length=dict(type='str'),
+        dns_nameservers=dict(type='list', elements='str'),
+        allocation_pool_start=dict(),
+        allocation_pool_end=dict(),
+        host_routes=dict(type='list', elements='dict'),
+        ipv6_ra_mode=dict(choices=ipv6_mode_choices),
+        ipv6_address_mode=dict(choices=ipv6_mode_choices),
+        subnet_pool=dict(),
+        prefix_length=dict(),
         use_default_subnet_pool=dict(
             type='bool', aliases=['use_default_subnetpool']),
         extra_attrs=dict(type='dict', default=dict(), aliases=['extra_specs']),
-        state=dict(type='str', default='present',
+        state=dict(default='present',
                    choices=['absent', 'present']),
-        project=dict(type='str'),
+        project=dict(),
     )
 
     module_kwargs = dict(
diff --git a/plugins/modules/subnet_pool.py b/plugins/modules/subnet_pool.py
index 4272438fd3cda573df8a4c4b76011ed7aa6907ea..a4f8186c32778f4c81cb5f5d9b2076cfd050e72f 100644
--- a/plugins/modules/subnet_pool.py
+++ b/plugins/modules/subnet_pool.py
@@ -211,15 +211,15 @@ class SubnetPoolModule(OpenStackModule):
         state=dict(default='present', choices=['absent', 'present']),
         name=dict(required=True),
         shared=dict(default=False, type='bool'),
-        minimum_prefix_length=dict(default=None, type='int'),
-        maximum_prefix_length=dict(default=None, type='int'),
-        default_prefix_length=dict(default=None, type='int'),
-        description=dict(default=None, type='str'),
-        default_quota=dict(default=None, type='int'),
+        minimum_prefix_length=dict(type='int'),
+        maximum_prefix_length=dict(type='int'),
+        default_prefix_length=dict(type='int'),
+        description=dict(),
+        default_quota=dict(type='int'),
         prefixes=dict(type='list', elements='str'),
         is_default=dict(default=False, type='bool'),
-        address_scope=dict(default=None),
-        project=dict(default=None),
+        address_scope=dict(),
+        project=dict(),
         extra_specs=dict(type='dict', default=dict())
     )
 
diff --git a/plugins/modules/subnets_info.py b/plugins/modules/subnets_info.py
index c0b374b2f2f932442c15a1f7cb42c05044bb04a3..035085059fbc03bd0db3dff6e7149e4c1c81b4cd 100644
--- a/plugins/modules/subnets_info.py
+++ b/plugins/modules/subnets_info.py
@@ -132,8 +132,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 
 class SubnetInfoModule(OpenStackModule):
     argument_spec = dict(
-        name=dict(required=False, default=None, aliases=['subnet']),
-        filters=dict(required=False, type='dict', default=None)
+        name=dict(aliases=['subnet']),
+        filters=dict(type='dict')
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/volume.py b/plugins/modules/volume.py
index 3a50c05a82b127ee912309705e01e2e35bec9835..9a7a1ade8d98ff2b102053fb3dd1490ebe6351ca 100644
--- a/plugins/modules/volume.py
+++ b/plugins/modules/volume.py
@@ -106,13 +106,13 @@ class VolumeModule(OpenStackModule):
 
     argument_spec = dict(
         size=dict(type='int'),
-        volume_type=dict(type='str'),
-        display_name=dict(required=True, aliases=['name'], type='str'),
-        display_description=dict(aliases=['description'], type='str'),
-        image=dict(type='str'),
-        snapshot_id=dict(type='str'),
-        volume=dict(type='str'),
-        state=dict(default='present', choices=['absent', 'present'], type='str'),
+        volume_type=dict(),
+        display_name=dict(required=True, aliases=['name']),
+        display_description=dict(aliases=['description']),
+        image=dict(),
+        snapshot_id=dict(),
+        volume=dict(),
+        state=dict(default='present', choices=['absent', 'present']),
         scheduler_hints=dict(type='dict'),
         metadata=dict(type='dict'),
         bootable=dict(type='bool', default=False)
diff --git a/plugins/modules/volume_backup.py b/plugins/modules/volume_backup.py
index 43cacc72b2d0a869b795b92005779a90f6e7464f..77f926667e046d8fceb8730d9adf6627f3da2e0f 100644
--- a/plugins/modules/volume_backup.py
+++ b/plugins/modules/volume_backup.py
@@ -101,15 +101,14 @@ class VolumeBackupModule(OpenStackModule):
     module_min_sdk_version = '0.49.0'
 
     argument_spec = dict(
-        display_name=dict(required=True, aliases=['name'], type='str'),
-        display_description=dict(required=False, aliases=['description'],
-                                 type='str'),
-        volume=dict(required=False, type='str'),
-        snapshot=dict(required=False, type='str'),
-        state=dict(default='present', type='str', choices=['absent', 'present']),
+        display_name=dict(required=True, aliases=['name']),
+        display_description=dict(aliases=['description']),
+        volume=dict(),
+        snapshot=dict(),
+        state=dict(default='present', choices=['absent', 'present']),
         force=dict(default=False, type='bool'),
-        metadata=dict(required=False, type='dict'),
-        incremental=dict(required=False, default=False, type='bool')
+        metadata=dict(type='dict'),
+        incremental=dict(default=False, type='bool')
     )
     module_kwargs = dict(
         required_if=[
diff --git a/plugins/modules/volume_backup_info.py b/plugins/modules/volume_backup_info.py
index fdb61834cf0e555d4aee8f6b16147565147ab707..54eb81c0589e4335e926daee1e2662b798d94cd8 100644
--- a/plugins/modules/volume_backup_info.py
+++ b/plugins/modules/volume_backup_info.py
@@ -87,8 +87,8 @@ class VolumeBackupInfoModule(OpenStackModule):
     module_min_sdk_version = '0.49.0'
 
     argument_spec = dict(
-        name=dict(required=False, type='str'),
-        volume=dict(required=False, type='str')
+        name=dict(),
+        volume=dict()
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/volume_info.py b/plugins/modules/volume_info.py
index bcce49940a6092eafd53cf3b23ee12bc1a40aece..f4afc6cdb10df852042737b3129e452d7124d4fc 100644
--- a/plugins/modules/volume_info.py
+++ b/plugins/modules/volume_info.py
@@ -119,10 +119,10 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class VolumeInfoModule(OpenStackModule):
 
     argument_spec = dict(
-        details=dict(type='bool', required=False),
-        all_projects=dict(type='bool', required=False, min_ver='0.19'),
-        name=dict(type='str', required=False),
-        status=dict(type='str', required=False),
+        details=dict(type='bool'),
+        all_projects=dict(type='bool', min_ver='0.19'),
+        name=dict(),
+        status=dict(),
     )
     module_kwargs = dict(
         supports_check_mode=True
diff --git a/plugins/modules/volume_snapshot.py b/plugins/modules/volume_snapshot.py
index 8625984c6df0520333ed731ac0adcfbf5fb21fc3..e6349a3599a57eefaa8620614e8662ac09d84d25 100644
--- a/plugins/modules/volume_snapshot.py
+++ b/plugins/modules/volume_snapshot.py
@@ -89,9 +89,9 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
 class VolumeSnapshotModule(OpenStackModule):
     argument_spec = dict(
         display_name=dict(required=True, aliases=['name']),
-        display_description=dict(default=None, aliases=['description']),
+        display_description=dict(aliases=['description']),
         volume=dict(required=True),
-        force=dict(required=False, default=False, type='bool'),
+        force=dict(default=False, type='bool'),
         state=dict(default='present', choices=['absent', 'present']),
     )
 
diff --git a/plugins/modules/volume_snapshot_info.py b/plugins/modules/volume_snapshot_info.py
index fa50055da2ccb1b8320ff772be7d2d708fe4b35e..e826b9ef197781d0965b2a9c91f618e09ee0cbca 100644
--- a/plugins/modules/volume_snapshot_info.py
+++ b/plugins/modules/volume_snapshot_info.py
@@ -89,10 +89,9 @@ class VolumeSnapshotInfoModule(OpenStackModule):
 
     argument_spec = dict(
         details=dict(default=True, type='bool'),
-        name=dict(required=False, type='str'),
-        volume=dict(required=False, type='str'),
-        status=dict(required=False, type='str',
-                    choices=['creating', 'available', 'error',
+        name=dict(),
+        volume=dict(),
+        status=dict(choices=['creating', 'available', 'error',
                              'deleting', 'error_deleting', 'rollbacking',
                              'backing-up']),
     )