diff --git a/manifests/api.pp b/manifests/api.pp
index ef6b0a9c..6e270ef4 100644
--- a/manifests/api.pp
+++ b/manifests/api.pp
@@ -72,9 +72,9 @@ class manila::api (
   $package_ensure               = 'present',
   $bind_host                    = '0.0.0.0',
   $default_share_type           = $facts['os_service_default'],
-  $enabled                      = true,
-  $sync_db                      = true,
-  $manage_service               = true,
+  Boolean $enabled              = true,
+  Boolean $sync_db              = true,
+  Boolean $manage_service       = true,
   $service_name                 = $::manila::params::api_service,
   $ratelimits                   = undef,
   $ratelimits_factory           = 'manila.api.v1.limits:RateLimitingMiddleware.factory',
@@ -89,10 +89,6 @@ class manila::api (
   include manila::policy
   require keystone::client
 
-  validate_legacy(Boolean, 'validate_bool', $manage_service)
-  validate_legacy(Boolean, 'validate_bool', $enabled)
-  validate_legacy(Boolean, 'validate_bool', $sync_db)
-
   if $::manila::params::api_package {
     package { 'manila-api':
       ensure => $package_ensure,
diff --git a/manifests/backend/dellemc_isilon.pp b/manifests/backend/dellemc_isilon.pp
index 43f1095b..cd2cf86c 100644
--- a/manifests/backend/dellemc_isilon.pp
+++ b/manifests/backend/dellemc_isilon.pp
@@ -61,9 +61,9 @@
 #  }
 #
 define manila::backend::dellemc_isilon (
-  $emc_nas_login,
-  $emc_nas_password,
-  $emc_nas_server,
+  String[1] $emc_nas_login,
+  String[1] $emc_nas_password,
+  String[1] $emc_nas_server,
   $emc_share_backend            = 'isilon',
   $share_backend_name           = $name,
   $backend_availability_zone    = $facts['os_service_default'],
@@ -78,8 +78,6 @@ define manila::backend::dellemc_isilon (
   include manila::deps
   include manila::params
 
-  validate_legacy(String, 'validate_string', $emc_nas_password)
-
   if $driver_handles_share_servers != undef {
     warning('The driver_handles_share_servers parameter has been deprecated and has no effect')
   }
diff --git a/manifests/backend/dellemc_powermax.pp b/manifests/backend/dellemc_powermax.pp
index 9124ef0e..4f2deacf 100644
--- a/manifests/backend/dellemc_powermax.pp
+++ b/manifests/backend/dellemc_powermax.pp
@@ -70,9 +70,9 @@
 #  }
 #
 define manila::backend::dellemc_powermax (
-  $emc_nas_login,
-  $emc_nas_password,
-  $emc_nas_server,
+  String[1] $emc_nas_login,
+  String[1] $emc_nas_password,
+  String[1] $emc_nas_server,
   $emc_share_backend         = 'powermax',
   $share_backend_name        = $name,
   $backend_availability_zone = $facts['os_service_default'],
@@ -87,8 +87,6 @@ define manila::backend::dellemc_powermax (
 
   include manila::deps
 
-  validate_legacy(String, 'validate_string', $emc_nas_password)
-
   $powermax_share_driver = 'manila.share.drivers.dell_emc.driver.EMCShareDriver'
 
   manila_config {
diff --git a/manifests/backend/dellemc_unity.pp b/manifests/backend/dellemc_unity.pp
index 06d36edc..ef11f549 100644
--- a/manifests/backend/dellemc_unity.pp
+++ b/manifests/backend/dellemc_unity.pp
@@ -93,10 +93,10 @@
 #
 define manila::backend::dellemc_unity (
   $driver_handles_share_servers,
-  $emc_nas_login,
-  $emc_nas_password,
-  $emc_nas_server,
-  $unity_server_meta_pool,
+  String[1] $emc_nas_login,
+  String[1] $emc_nas_password,
+  String[1] $emc_nas_server,
+  String[1] $unity_server_meta_pool,
   $emc_share_backend              = 'unity',
   $share_backend_name             = $name,
   $backend_availability_zone      = $facts['os_service_default'],
diff --git a/manifests/backend/dellemc_vnx.pp b/manifests/backend/dellemc_vnx.pp
index 6c1f063b..069215da 100644
--- a/manifests/backend/dellemc_vnx.pp
+++ b/manifests/backend/dellemc_vnx.pp
@@ -84,9 +84,9 @@
 #  }
 #
 define manila::backend::dellemc_vnx (
-  $emc_nas_login,
-  $emc_nas_password,
-  $emc_nas_server,
+  String[1] $emc_nas_login,
+  String[1] $emc_nas_password,
+  String[1] $emc_nas_server,
   $emc_share_backend            = 'vnx',
   $share_backend_name           = $name,
   $backend_availability_zone    = $facts['os_service_default'],
@@ -103,8 +103,6 @@ define manila::backend::dellemc_vnx (
   include manila::deps
   include manila::params
 
-  validate_legacy(String, 'validate_string', $emc_nas_password)
-
   if $driver_handles_share_servers != undef {
     warning('The driver_handles_share_servers parameter has been deprecated and has no effect')
   }
diff --git a/manifests/backend/flashblade.pp b/manifests/backend/flashblade.pp
index ed0f7a34..6037ece3 100644
--- a/manifests/backend/flashblade.pp
+++ b/manifests/backend/flashblade.pp
@@ -40,9 +40,9 @@
 #  }
 #
 define manila::backend::flashblade (
-  $flashblade_api,
-  $flashblade_data_vip,
-  $flashblade_mgmt_vip,
+  String[1] $flashblade_api,
+  String[1] $flashblade_data_vip,
+  String[1] $flashblade_mgmt_vip,
   $flashblade_eradicate      = true,
   $share_backend_name        = $name,
   $backend_availability_zone = $facts['os_service_default'],
@@ -52,8 +52,6 @@ define manila::backend::flashblade (
   include manila::deps
   include manila::params
 
-  validate_legacy(String, 'validate_string', $flashblade_api)
-
   $flashblade_share_driver = 'manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver'
 
   manila_config {
diff --git a/manifests/backend/hitachi_hnas.pp b/manifests/backend/hitachi_hnas.pp
index d5d38d97..9202128d 100644
--- a/manifests/backend/hitachi_hnas.pp
+++ b/manifests/backend/hitachi_hnas.pp
@@ -57,11 +57,11 @@
 #  }
 
 define manila::backend::hitachi_hnas (
-  $hitachi_hnas_user,
-  $hitachi_hnas_password,
-  $hitachi_hnas_ip,
-  $hitachi_hnas_evs_id,
-  $hitachi_hnas_evs_ip,
+  String[1] $hitachi_hnas_user,
+  String[1] $hitachi_hnas_password,
+  String[1] $hitachi_hnas_ip,
+  String[1] $hitachi_hnas_evs_id,
+  String[1] $hitachi_hnas_evs_ip,
   $hitachi_hnas_file_system_name,
   $driver_handles_share_servers = false,
   $share_backend_name           = $name,
@@ -72,8 +72,6 @@ define manila::backend::hitachi_hnas (
   include manila::deps
   include manila::params
 
-  validate_legacy(String, 'validate_string', $hitachi_hnas_password)
-
   $hitachi_share_driver = 'manila.share.drivers.hitachi.hds_hnas.HDSHNASDriver'
 
   manila_config {
diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp
index 426edc69..f0622bf3 100644
--- a/manifests/backend/netapp.pp
+++ b/manifests/backend/netapp.pp
@@ -112,9 +112,9 @@
 #
 define manila::backend::netapp (
   $driver_handles_share_servers,
-  $netapp_login,
-  $netapp_password,
-  $netapp_server_hostname,
+  String[1] $netapp_login,
+  String[1] $netapp_password,
+  String[1] $netapp_server_hostname,
   $share_backend_name                   = $name,
   $backend_availability_zone            = $facts['os_service_default'],
   $netapp_transport_type                = $facts['os_service_default'],
diff --git a/manifests/config.pp b/manifests/config.pp
index eef82890..c71db85f 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -31,17 +31,13 @@
 #   or Puppet catalog compilation will fail with duplicate resources.
 #
 class manila::config (
-  $manila_config          = {},
-  $api_paste_ini_config   = {},
-  $manila_rootwrap_config = {},
+  Hash $manila_config          = {},
+  Hash $api_paste_ini_config   = {},
+  Hash $manila_rootwrap_config = {},
 ) {
 
   include manila::deps
 
-  validate_legacy(Hash, 'validate_hash', $manila_config)
-  validate_legacy(Hash, 'validate_hash', $api_paste_ini_config)
-  validate_legacy(Hash, 'validate_hash', $manila_rootwrap_config)
-
   create_resources('manila_config', $manila_config)
   create_resources('manila_api_paste_ini', $api_paste_ini_config)
   create_resources('manila_rootwrap_config', $manila_rootwrap_config)
diff --git a/manifests/data.pp b/manifests/data.pp
index 4c7cab83..f838e979 100644
--- a/manifests/data.pp
+++ b/manifests/data.pp
@@ -26,19 +26,16 @@
 #   Defaults to $facts['os_service_default'].
 #
 class manila::data (
-  $package_ensure     = 'present',
-  $enabled            = true,
-  $manage_service     = true,
-  $mount_tmp_location = $facts['os_service_default'],
-  $check_hash         = $facts['os_service_default'],
+  $package_ensure         = 'present',
+  Boolean $enabled        = true,
+  Boolean $manage_service = true,
+  $mount_tmp_location     = $facts['os_service_default'],
+  $check_hash             = $facts['os_service_default'],
 ) {
 
   include manila::deps
   include manila::params
 
-  validate_legacy(Boolean, 'validate_bool', $manage_service)
-  validate_legacy(Boolean, 'validate_bool', $enabled)
-
   if $::manila::params::data_package {
     package { 'manila-data':
       ensure => $package_ensure,
diff --git a/manifests/db/mysql.pp b/manifests/db/mysql.pp
index 77a1a9dc..60e2501f 100644
--- a/manifests/db/mysql.pp
+++ b/manifests/db/mysql.pp
@@ -35,7 +35,7 @@
 #   Defaults to 'localzone'.
 #
 class manila::db::mysql (
-  $password,
+  String[1] $password,
   $dbname        = 'manila',
   $user          = 'manila',
   $host          = '127.0.0.1',
@@ -47,8 +47,6 @@ class manila::db::mysql (
 
   include manila::deps
 
-  validate_legacy(String, 'validate_string', $password)
-
   ::openstacklib::db::mysql { 'manila':
     user          => $user,
     password      => $password,
diff --git a/manifests/policy.pp b/manifests/policy.pp
index 1dd03f54..88a528c8 100644
--- a/manifests/policy.pp
+++ b/manifests/policy.pp
@@ -48,7 +48,7 @@
 class manila::policy (
   $enforce_scope        = $facts['os_service_default'],
   $enforce_new_defaults = $facts['os_service_default'],
-  $policies             = {},
+  Hash $policies        = {},
   $policy_path          = '/etc/manila/policy.yaml',
   $policy_default_rule  = $facts['os_service_default'],
   $policy_dirs          = $facts['os_service_default'],
@@ -58,8 +58,6 @@ class manila::policy (
   include manila::deps
   include manila::params
 
-  validate_legacy(Hash, 'validate_hash', $policies)
-
   $policy_parameters = {
     policies     => $policies,
     policy_path  => $policy_path,
diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp
index d7caacca..ccf116ad 100644
--- a/manifests/scheduler.pp
+++ b/manifests/scheduler.pp
@@ -21,18 +21,15 @@
 #   Defaults to true.
 #
 class manila::scheduler (
-  $scheduler_driver = $facts['os_service_default'],
-  $package_ensure   = 'present',
-  $enabled          = true,
-  $manage_service   = true
+  $scheduler_driver       = $facts['os_service_default'],
+  $package_ensure         = 'present',
+  Boolean $enabled        = true,
+  Boolean $manage_service = true
 ) {
 
   include manila::deps
   include manila::params
 
-  validate_legacy(Boolean, 'validate_bool', $manage_service)
-  validate_legacy(Boolean, 'validate_bool', $enabled)
-
   if $scheduler_driver {
     manila_config {
       'DEFAULT/scheduler_driver': value => $scheduler_driver
diff --git a/manifests/share.pp b/manifests/share.pp
index 99289090..6b38928d 100644
--- a/manifests/share.pp
+++ b/manifests/share.pp
@@ -16,17 +16,14 @@
 #
 # $share_name_template = share-%s
 class manila::share (
-  $package_ensure = 'present',
-  $enabled        = true,
-  $manage_service = true
+  $package_ensure         = 'present',
+  Boolean $enabled        = true,
+  Boolean $manage_service = true
 ) {
 
   include manila::deps
   include manila::params
 
-  validate_legacy(Boolean, 'validate_bool', $manage_service)
-  validate_legacy(Boolean, 'validate_bool', $enabled)
-
   if $::manila::params::share_package {
     package { 'manila-share':
       ensure => $package_ensure,