diff --git a/REFERENCE.md b/REFERENCE.md
index d430b87c..2951060f 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -44,6 +44,7 @@
### Data types
* [`Peadm::ConvertSteps`](#Peadm--ConvertSteps): type for the different steps where the peadm::convert plan can be started
+* [`Peadm::Download_mode`](#Peadm--Download_mode): download the installer to the bolt node and upload to targets, or let the targets download it directly
* [`Peadm::Known_hosts`](#Peadm--Known_hosts)
* [`Peadm::Ldap_config`](#Peadm--Ldap_config)
* [`Peadm::Pe_version`](#Peadm--Pe_version)
@@ -928,6 +929,12 @@ type for the different steps where the peadm::convert plan can be started
Alias of `Enum['modify-primary-certs', 'modify-infra-certs', 'convert-node-groups', 'finalize']`
+### `Peadm::Download_mode`
+
+download the installer to the bolt node and upload to targets, or let the targets download it directly
+
+Alias of `Enum['direct', 'bolthost']`
+
### `Peadm::Known_hosts`
The Peadm::Known_hosts data type.
@@ -2262,7 +2269,7 @@ Default value: `undef`
##### `download_mode`
-Data type: `Enum['direct', 'bolthost']`
+Data type: `Peadm::Download_mode`
@@ -2654,7 +2661,7 @@ Default value: `undef`
##### `download_mode`
-Data type: `Enum[direct,bolthost]`
+Data type: `Peadm::Download_mode`
diff --git a/plans/install.pp b/plans/install.pp
index 58b512ca..fc30e4be 100644
--- a/plans/install.pp
+++ b/plans/install.pp
@@ -71,7 +71,7 @@
Optional[String] $stagingdir = undef,
Optional[String] $uploaddir = undef,
Enum['running', 'stopped'] $final_agent_state = 'running',
- Enum['direct', 'bolthost'] $download_mode = 'bolthost',
+ Peadm::Download_mode $download_mode = 'bolthost',
Boolean $permit_unsafe_versions = false,
String $token_lifetime = '1y',
) {
diff --git a/plans/subplans/install.pp b/plans/subplans/install.pp
index d349e23e..693c056c 100644
--- a/plans/subplans/install.pp
+++ b/plans/subplans/install.pp
@@ -68,7 +68,7 @@
# Other
String $stagingdir = '/tmp',
String $uploaddir = '/tmp',
- Enum[direct,bolthost] $download_mode = 'bolthost',
+ Peadm::Download_mode $download_mode = 'bolthost',
Boolean $permit_unsafe_versions = false,
String $token_lifetime = '1y',
) {
diff --git a/plans/upgrade.pp b/plans/upgrade.pp
index cec28a0b..15b240fe 100644
--- a/plans/upgrade.pp
+++ b/plans/upgrade.pp
@@ -57,7 +57,7 @@
String $stagingdir = '/tmp',
String $uploaddir = '/tmp',
Enum['running', 'stopped'] $final_agent_state = 'running',
- Enum[direct,bolthost] $download_mode = 'bolthost',
+ Peadm::Download_mode $download_mode = 'bolthost',
Boolean $permit_unsafe_versions = false,
Optional[Peadm::UpgradeSteps] $begin_at_step = undef,
diff --git a/types/download_mode.pp b/types/download_mode.pp
new file mode 100644
index 00000000..0923090c
--- /dev/null
+++ b/types/download_mode.pp
@@ -0,0 +1,2 @@
+# @summary download the installer to the bolt node and upload to targets, or let the targets download it directly
+type Peadm::Download_mode = Enum['direct','bolthost']