diff --git a/REFERENCE.md b/REFERENCE.md
index b2722eb..339557b 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -35,6 +35,9 @@
* [`nexus::resource::repository::npm::group`](#nexus--resource--repository--npm--group): Resource to manage npm group repository
* [`nexus::resource::repository::npm::hosted`](#nexus--resource--repository--npm--hosted): Resource to manage npm hosted repository
* [`nexus::resource::repository::npm::proxy`](#nexus--resource--repository--npm--proxy): Resource to manage npm proxy repository
+* [`nexus::resource::repository::pypi::proxy`](#nexus--resource--repository--pypi--proxy): Resource to manage PyPi proxy repository
+* [`nexus::resource::repository::raw::hosted`](#nexus--resource--repository--raw--hosted): Resource to manage raw hosted repository
+* [`nexus::resource::repository::rubygems::proxy`](#nexus--resource--repository--rubygems--proxy): Resource to manage RubyGems proxy repository
* [`nexus::resource::repository::yum::hosted`](#nexus--resource--repository--yum--hosted): Resource to manage yum hosted repository
* [`nexus::resource::repository::yum::proxy`](#nexus--resource--repository--yum--proxy): Resource to manage yum proxy repository
@@ -42,9 +45,9 @@
* [`nexus_blobstore`](#nexus_blobstore): Raw provider to configure blobstore over the nexus repository manager rest api. Please use the defined types instead of this one directly.
* [`nexus_repository`](#nexus_repository): Raw provider to configure repository over the nexus repository manager rest api. Please use the defined types instead of this one directly.
+* [`nexus_role`](#nexus_role): Manage nexus repository roles
* [`nexus_setting`](#nexus_setting): Raw provider to set settings over the nexus repository manager rest api. Please use nexus::config::* classes instead of this one directly.
* [`nexus_user`](#nexus_user): Manage nexus repository users
-* [`nexus_role`](#nexus_role): Manage nexus repository roles
## Classes
@@ -69,10 +72,8 @@ class{ 'nexus':
The following parameters are available in the `nexus` class:
-* [`version`](#-nexus--version)
* [`download_folder`](#-nexus--download_folder)
* [`download_site`](#-nexus--download_site)
-* [`download_proxy`](#-nexus--download_proxy)
* [`install_root`](#-nexus--install_root)
* [`work_dir`](#-nexus--work_dir)
* [`user`](#-nexus--user)
@@ -85,12 +86,12 @@ The following parameters are available in the `nexus` class:
* [`manage_work_dir`](#-nexus--manage_work_dir)
* [`purge_installations`](#-nexus--purge_installations)
* [`purge_default_repositories`](#-nexus--purge_default_repositories)
-
-##### `version`
-
-Data type: `Pattern[/3.\d+.\d+-\d+/]`
-
-The version to download, install and manage.
+* [`package_type`](#-nexus--package_type)
+* [`package_ensure`](#-nexus--package_ensure)
+* [`download_proxy`](#-nexus--download_proxy)
+* [`version`](#-nexus--version)
+* [`java_runtime`](#-nexus--java_runtime)
+* [`package_name`](#-nexus--package_name)
##### `download_folder`
@@ -104,12 +105,6 @@ Data type: `Stdlib::HTTPUrl`
Download uri which will be appended with filename of the archive to download.
-##### `download_proxy`
-
-Data type: `Optional[Stdlib::HTTPUrl]`
-
-Proxyserver address which will be used to download the archive file.
-
##### `install_root`
Data type: `Stdlib::Absolutepath`
@@ -182,6 +177,51 @@ Data type: `Boolean`
Set this option if you want to remove the default created maven and nuget repositories.
+##### `package_type`
+
+Data type: `Enum['src', 'pkg']`
+
+Select 'src' for Source download & install. 'pkg' will fetch te specified package and version
+from repos you must provide.
+
+##### `package_ensure`
+
+Data type: `String`
+
+The version to install. See https://puppet.com/docs/puppet/7/types/package.html#package-attribute-ensure
+
+##### `download_proxy`
+
+Data type: `Optional[Stdlib::HTTPUrl]`
+
+Proxyserver address which will be used to download the archive file.
+
+Default value: `undef`
+
+##### `version`
+
+Data type: `Optional[Pattern[/3.\d+.\d+-\d+/]]`
+
+The version to download, install and manage.
+
+Default value: `undef`
+
+##### `java_runtime`
+
+Data type: `Optional[Enum['java8', 'java11']]`
+
+The Java runtime to be utilized. Relevant only for Nexus versions >= 3.67.0-03.
+
+Default value: `undef`
+
+##### `package_name`
+
+Data type: `Optional[String]`
+
+The name of the package to install. Default 'nexus'
+
+Default value: `undef`
+
### `nexus::config::admin`
Manage the nexus repository manager administrator account
@@ -376,7 +416,7 @@ Default value: `''`
##### `password`
-Data type: `Optional[String]`
+Data type: `Optional[String[1]]`
The password to connect to the smtp server.
@@ -392,11 +432,11 @@ Default value: `'nexus@example.org'`
##### `subject_prefix`
-Data type: `String`
+Data type: `Optional[String[1]]`
Prefix which will be added to all emails.
-Default value: `''`
+Default value: `undef`
##### `start_tls_enabled`
@@ -550,6 +590,7 @@ The following parameters are available in the `nexus::resource::repository::apt:
* [`storage_blob_store_name`](#-nexus--resource--repository--apt--proxy--storage_blob_store_name)
* [`storage_strict_content_type_validation`](#-nexus--resource--repository--apt--proxy--storage_strict_content_type_validation)
* [`storage_write_policy`](#-nexus--resource--repository--apt--proxy--storage_write_policy)
+* [`cleanup_policy_names`](#-nexus--resource--repository--apt--proxy--cleanup_policy_names)
##### `apt_distribution`
@@ -660,6 +701,14 @@ Controls if deployments of and updates to artifacts are allowed.
Default value: `'ALLOW'`
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
### `nexus::resource::repository::docker::group`
Resource to manage docker group repository
@@ -690,6 +739,7 @@ The following parameters are available in the `nexus::resource::repository::dock
* [`docker_force_basic_auth`](#-nexus--resource--repository--docker--group--docker_force_basic_auth)
* [`docker_http_port`](#-nexus--resource--repository--docker--group--docker_http_port)
* [`docker_https_port`](#-nexus--resource--repository--docker--group--docker_https_port)
+* [`docker_subdomain`](#-nexus--resource--repository--docker--group--docker_subdomain)
##### `ensure`
@@ -764,6 +814,14 @@ Create an HTTPS connector at specified port. Normally used if the server is conf
Default value: `undef`
+##### `docker_subdomain`
+
+Data type: `Optional[Stdlib::Fqdn]`
+
+Use the following subdomain to make push and pull requests for this repository.
+
+Default value: `undef`
+
### `nexus::resource::repository::docker::hosted`
Resource to manage docker hosted repository
@@ -791,6 +849,8 @@ The following parameters are available in the `nexus::resource::repository::dock
* [`docker_force_basic_auth`](#-nexus--resource--repository--docker--hosted--docker_force_basic_auth)
* [`docker_http_port`](#-nexus--resource--repository--docker--hosted--docker_http_port)
* [`docker_https_port`](#-nexus--resource--repository--docker--hosted--docker_https_port)
+* [`docker_subdomain`](#-nexus--resource--repository--docker--hosted--docker_subdomain)
+* [`cleanup_policy_names`](#-nexus--resource--repository--docker--hosted--cleanup_policy_names)
##### `ensure`
@@ -873,6 +933,22 @@ Create an HTTPS connector at specified port. Normally used if the server is conf
Default value: `undef`
+##### `docker_subdomain`
+
+Data type: `Optional[Stdlib::Fqdn]`
+
+Use the following subdomain to make push and pull requests for this repository.
+
+Default value: `undef`
+
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
### `nexus::resource::repository::docker::proxy`
Resource to manage docker proxy repository
@@ -882,7 +958,7 @@ Resource to manage docker proxy repository
#####
```puppet
-nexus::repository::docker::proxy { 'docker-docker.io':
+nexus::resource::repository::docker::proxy { 'docker-docker.io':
proxy_remote_url => 'https://registry-1.docker.io',
}
```
@@ -895,6 +971,7 @@ The following parameters are available in the `nexus::resource::repository::dock
* [`ensure`](#-nexus--resource--repository--docker--proxy--ensure)
* [`http_client_auto_block`](#-nexus--resource--repository--docker--proxy--http_client_auto_block)
* [`http_client_blocked`](#-nexus--resource--repository--docker--proxy--http_client_blocked)
+* [`authentication`](#-nexus--resource--repository--docker--proxy--authentication)
* [`negative_cache_enabled`](#-nexus--resource--repository--docker--proxy--negative_cache_enabled)
* [`negative_cache_time_to_live`](#-nexus--resource--repository--docker--proxy--negative_cache_time_to_live)
* [`online`](#-nexus--resource--repository--docker--proxy--online)
@@ -912,6 +989,7 @@ The following parameters are available in the `nexus::resource::repository::dock
* [`docker_proxy_index_url`](#-nexus--resource--repository--docker--proxy--docker_proxy_index_url)
* [`docker_proxy_cache_foreign_layers`](#-nexus--resource--repository--docker--proxy--docker_proxy_cache_foreign_layers)
* [`docker_proxy_foreign_layer_url_whitelist`](#-nexus--resource--repository--docker--proxy--docker_proxy_foreign_layer_url_whitelist)
+* [`cleanup_policy_names`](#-nexus--resource--repository--docker--proxy--cleanup_policy_names)
##### `proxy_remote_url`
@@ -943,6 +1021,24 @@ Block outbound connections on the repository.
Default value: `false`
+##### `authentication`
+
+Data type:
+
+```puppet
+Optional[Struct[{
+ type => Enum['username', 'ntlm'],
+ username => String[1],
+ password => String[1],
+ Optional[ntlmHost] => Optional[String[1]],
+ Optional[ntlmDomain] => Optional[String[1]],
+ }]]
+```
+
+
+
+Default value: `undef`
+
##### `negative_cache_enabled`
Data type: `Boolean`
@@ -1080,6 +1176,14 @@ Regular expressions used to identify URLs that are allowed for foreign layer req
Default value: `[]`
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
### `nexus::resource::repository::npm::group`
Resource to manage npm group repository
@@ -1157,7 +1261,7 @@ Resource to manage npm hosted repository
#####
```puppet
-nexus::repository::npm::hosted { 'npm-hosted': }
+nexus::resource::repository::npm::hosted { 'npm-hosted': }
```
#### Parameters
@@ -1170,6 +1274,7 @@ The following parameters are available in the `nexus::resource::repository::npm:
* [`storage_strict_content_type_validation`](#-nexus--resource--repository--npm--hosted--storage_strict_content_type_validation)
* [`storage_write_policy`](#-nexus--resource--repository--npm--hosted--storage_write_policy)
* [`component_proprietary_components`](#-nexus--resource--repository--npm--hosted--component_proprietary_components)
+* [`cleanup_policy_names`](#-nexus--resource--repository--npm--hosted--cleanup_policy_names)
##### `ensure`
@@ -1206,7 +1311,7 @@ Default value: `true`
##### `storage_write_policy`
-Data type: `Enum['allow_once']`
+Data type: `Enum['allow', 'allow_once', 'deny']`
Controls if deployments of and updates to artifacts are allowed.
@@ -1220,6 +1325,14 @@ Components in this repository count as proprietary for namespace conflict attack
Default value: `true`
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
### `nexus::resource::repository::npm::proxy`
Resource to manage npm proxy repository
@@ -1252,6 +1365,7 @@ The following parameters are available in the `nexus::resource::repository::npm:
* [`storage_blob_store_name`](#-nexus--resource--repository--npm--proxy--storage_blob_store_name)
* [`storage_strict_content_type_validation`](#-nexus--resource--repository--npm--proxy--storage_strict_content_type_validation)
* [`storage_write_policy`](#-nexus--resource--repository--npm--proxy--storage_write_policy)
+* [`cleanup_policy_names`](#-nexus--resource--repository--npm--proxy--cleanup_policy_names)
##### `proxy_remote_url`
@@ -1364,34 +1478,54 @@ Controls if deployments of and updates to artifacts are allowed.
Default value: `'ALLOW'`
-### `nexus::resource::repository::yum::hosted`
+##### `cleanup_policy_names`
-Resource to manage yum hosted repository
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
+### `nexus::resource::repository::pypi::proxy`
+
+Resource to manage PyPi proxy repository
#### Examples
#####
```puppet
-nexus::resource::repository::yum::hosted { 'yum-hosted':
- repodata_depth => 5,
+nexus::resource::repository::pypi::proxy { 'pypi.org':
+ proxy_remote_url => 'https://pypi.org',
}
```
#### Parameters
-The following parameters are available in the `nexus::resource::repository::yum::hosted` defined type:
+The following parameters are available in the `nexus::resource::repository::pypi::proxy` defined type:
+
+* [`proxy_remote_url`](#-nexus--resource--repository--pypi--proxy--proxy_remote_url)
+* [`ensure`](#-nexus--resource--repository--pypi--proxy--ensure)
+* [`http_client_auto_block`](#-nexus--resource--repository--pypi--proxy--http_client_auto_block)
+* [`http_client_blocked`](#-nexus--resource--repository--pypi--proxy--http_client_blocked)
+* [`negative_cache_enabled`](#-nexus--resource--repository--pypi--proxy--negative_cache_enabled)
+* [`negative_cache_time_to_live`](#-nexus--resource--repository--pypi--proxy--negative_cache_time_to_live)
+* [`online`](#-nexus--resource--repository--pypi--proxy--online)
+* [`proxy_content_max_age`](#-nexus--resource--repository--pypi--proxy--proxy_content_max_age)
+* [`proxy_metadata_max_age`](#-nexus--resource--repository--pypi--proxy--proxy_metadata_max_age)
+* [`storage_blob_store_name`](#-nexus--resource--repository--pypi--proxy--storage_blob_store_name)
+* [`storage_strict_content_type_validation`](#-nexus--resource--repository--pypi--proxy--storage_strict_content_type_validation)
+* [`storage_write_policy`](#-nexus--resource--repository--pypi--proxy--storage_write_policy)
+* [`remove_quarantined`](#-nexus--resource--repository--pypi--proxy--remove_quarantined)
+* [`cleanup_policy_names`](#-nexus--resource--repository--pypi--proxy--cleanup_policy_names)
+
+##### `proxy_remote_url`
-* [`ensure`](#-nexus--resource--repository--yum--hosted--ensure)
-* [`online`](#-nexus--resource--repository--yum--hosted--online)
-* [`storage_blob_store_name`](#-nexus--resource--repository--yum--hosted--storage_blob_store_name)
-* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--hosted--storage_strict_content_type_validation)
-* [`storage_write_policy`](#-nexus--resource--repository--yum--hosted--storage_write_policy)
-* [`component_proprietary_components`](#-nexus--resource--repository--yum--hosted--component_proprietary_components)
-* [`repodata_depth`](#-nexus--resource--repository--yum--hosted--repodata_depth)
-* [`deploy_policy`](#-nexus--resource--repository--yum--hosted--deploy_policy)
+Data type: `Stdlib::HTTPSUrl`
-##### `ensure`
+PyPi repository url like https://pypi.org.
+
+##### `ensure`
Data type: `Enum['present', 'absent']`
@@ -1399,15 +1533,63 @@ Define if the resource should be created/present or deleted/absent.
Default value: `'present'`
-##### `online`
+##### `http_client_auto_block`
Data type: `Boolean`
-Allow incoming requests to this repository.
+Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.
Default value: `true`
-##### `storage_blob_store_name`
+##### `http_client_blocked`
+
+Data type: `Boolean`
+
+Block outbound connections on the repository.
+
+Default value: `false`
+
+##### `negative_cache_enabled`
+
+Data type: `Boolean`
+
+Cache responses for content not present in the proxied repository.
+
+Default value: `true`
+
+##### `negative_cache_time_to_live`
+
+Data type: `Integer`
+
+How long to cache the fact that a file was not found in the repository (in minutes).
+
+Default value: `1440`
+
+##### `online`
+
+Data type: `Boolean`
+
+Enable this repository in nexus repository manager that it can be used.
+
+Default value: `true`
+
+##### `proxy_content_max_age`
+
+Data type: `Integer`
+
+Max age of content (packages).
+
+Default value: `1440`
+
+##### `proxy_metadata_max_age`
+
+Data type: `Integer`
+
+Max age of the repository metadata.
+
+Default value: `1440`
+
+##### `storage_blob_store_name`
Data type: `String[1]`
@@ -1416,7 +1598,7 @@ defined repository.
Default value: `$title`
-##### `storage_strict_content_type_validation`
+##### `storage_strict_content_type_validation`
Data type: `Boolean`
@@ -1424,76 +1606,56 @@ Validate that all content uploaded to this repository is of a MIME type appropri
Default value: `true`
-##### `storage_write_policy`
+##### `storage_write_policy`
Data type: `Enum['ALLOW','ALLOW_ONCE','DENY']`
Controls if deployments of and updates to artifacts are allowed.
-Default value: `'ALLOW_ONCE'`
+Default value: `'ALLOW'`
-##### `component_proprietary_components`
+##### `remove_quarantined`
Data type: `Boolean`
-Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall).
-
-Default value: `true`
-
-##### `repodata_depth`
-
-Data type: `Integer`
-
-Set the depth of the directory in which the repodata/repomd.xml will be generated.
+Remove Quarantined Versions.
-Default value: `0`
+Default value: `false`
-##### `deploy_policy`
+##### `cleanup_policy_names`
-Data type: `Enum['STRICT','PERMISSIVE']`
+Data type: `Array[String[1]]`
-Set the deploy policy, whether or not a redeploy of rpm's is allowed.
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
-Default value: `'STRICT'`
+Default value: `[]`
-### `nexus::resource::repository::yum::proxy`
+### `nexus::resource::repository::raw::hosted`
-Resource to manage yum proxy repository
+Resource to manage raw hosted repository
#### Examples
#####
```puppet
-nexus::resource::repository::yum::proxy { 'yum-oracle-latest':
- proxy_remote_url => 'https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/',
-}
+nexus::resource::repository::raw::hosted { 'raw-hosted': }
```
#### Parameters
-The following parameters are available in the `nexus::resource::repository::yum::proxy` defined type:
-
-* [`proxy_remote_url`](#-nexus--resource--repository--yum--proxy--proxy_remote_url)
-* [`ensure`](#-nexus--resource--repository--yum--proxy--ensure)
-* [`http_client_auto_block`](#-nexus--resource--repository--yum--proxy--http_client_auto_block)
-* [`http_client_blocked`](#-nexus--resource--repository--yum--proxy--http_client_blocked)
-* [`negative_cache_enabled`](#-nexus--resource--repository--yum--proxy--negative_cache_enabled)
-* [`negative_cache_time_to_live`](#-nexus--resource--repository--yum--proxy--negative_cache_time_to_live)
-* [`online`](#-nexus--resource--repository--yum--proxy--online)
-* [`proxy_content_max_age`](#-nexus--resource--repository--yum--proxy--proxy_content_max_age)
-* [`proxy_metadata_max_age`](#-nexus--resource--repository--yum--proxy--proxy_metadata_max_age)
-* [`storage_blob_store_name`](#-nexus--resource--repository--yum--proxy--storage_blob_store_name)
-* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--proxy--storage_strict_content_type_validation)
-* [`storage_write_policy`](#-nexus--resource--repository--yum--proxy--storage_write_policy)
-
-##### `proxy_remote_url`
-
-Data type: `Stdlib::HTTPSUrl`
+The following parameters are available in the `nexus::resource::repository::raw::hosted` defined type:
-yum repository url like https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/.
+* [`ensure`](#-nexus--resource--repository--raw--hosted--ensure)
+* [`online`](#-nexus--resource--repository--raw--hosted--online)
+* [`storage_blob_store_name`](#-nexus--resource--repository--raw--hosted--storage_blob_store_name)
+* [`storage_strict_content_type_validation`](#-nexus--resource--repository--raw--hosted--storage_strict_content_type_validation)
+* [`storage_write_policy`](#-nexus--resource--repository--raw--hosted--storage_write_policy)
+* [`component_proprietary_components`](#-nexus--resource--repository--raw--hosted--component_proprietary_components)
+* [`content_disposition`](#-nexus--resource--repository--raw--hosted--content_disposition)
+* [`cleanup_policy_names`](#-nexus--resource--repository--raw--hosted--cleanup_policy_names)
-##### `ensure`
+##### `ensure`
Data type: `Enum['present', 'absent']`
@@ -1501,74 +1663,413 @@ Define if the resource should be created/present or deleted/absent.
Default value: `'present'`
-##### `http_client_auto_block`
+##### `online`
Data type: `Boolean`
-Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.
+Whether this repository accepts incoming requests.
Default value: `true`
-##### `http_client_blocked`
+##### `storage_blob_store_name`
-Data type: `Boolean`
+Data type: `String[1]`
-Block outbound connections on the repository.
+The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each
+defined repository.
-Default value: `false`
+Default value: `$title`
-##### `negative_cache_enabled`
+##### `storage_strict_content_type_validation`
Data type: `Boolean`
-Cache responses for content not present in the proxied repository.
+Whether to validate uploaded content's MIME type appropriate for the repository format.
Default value: `true`
-##### `negative_cache_time_to_live`
+##### `storage_write_policy`
-Data type: `Integer`
+Data type: `Enum['allow', 'allow_once', 'deny']`
-How long to cache the fact that a file was not found in the repository (in minutes).
+Controls if deployments of and updates to assets are allowed.
-Default value: `1440`
+Default value: `'allow_once'`
-##### `online`
+##### `component_proprietary_components`
Data type: `Boolean`
-Enable this repository in nexus repository manager that it can be used.
+Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall).
Default value: `true`
-##### `proxy_content_max_age`
-
-Data type: `Integer`
+##### `content_disposition`
-Max age of content (packages)
+Data type: `Enum['INLINE', 'ATTACHMENT']`
-Default value: `1440`
+Content Disposition
-##### `proxy_metadata_max_age`
+Default value: `'ATTACHMENT'`
-Data type: `Integer`
+##### `cleanup_policy_names`
-Max age of the repository metadata
+Data type: `Array[String[1]]`
-Default value: `1440`
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
-##### `storage_blob_store_name`
+Default value: `[]`
-Data type: `String[1]`
+### `nexus::resource::repository::rubygems::proxy`
-The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each
-defined repository.
+Resource to manage RubyGems proxy repository
-Default value: `$title`
+#### Examples
-##### `storage_strict_content_type_validation`
+#####
-Data type: `Boolean`
+```puppet
+nexus::resource::repository::rubygems::proxy { 'rubygems.org':
+ proxy_remote_url => 'https://rubygems.org/',
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `nexus::resource::repository::rubygems::proxy` defined type:
+
+* [`proxy_remote_url`](#-nexus--resource--repository--rubygems--proxy--proxy_remote_url)
+* [`ensure`](#-nexus--resource--repository--rubygems--proxy--ensure)
+* [`http_client_auto_block`](#-nexus--resource--repository--rubygems--proxy--http_client_auto_block)
+* [`http_client_blocked`](#-nexus--resource--repository--rubygems--proxy--http_client_blocked)
+* [`negative_cache_enabled`](#-nexus--resource--repository--rubygems--proxy--negative_cache_enabled)
+* [`negative_cache_time_to_live`](#-nexus--resource--repository--rubygems--proxy--negative_cache_time_to_live)
+* [`online`](#-nexus--resource--repository--rubygems--proxy--online)
+* [`proxy_content_max_age`](#-nexus--resource--repository--rubygems--proxy--proxy_content_max_age)
+* [`proxy_metadata_max_age`](#-nexus--resource--repository--rubygems--proxy--proxy_metadata_max_age)
+* [`storage_blob_store_name`](#-nexus--resource--repository--rubygems--proxy--storage_blob_store_name)
+* [`storage_strict_content_type_validation`](#-nexus--resource--repository--rubygems--proxy--storage_strict_content_type_validation)
+* [`storage_write_policy`](#-nexus--resource--repository--rubygems--proxy--storage_write_policy)
+* [`cleanup_policy_names`](#-nexus--resource--repository--rubygems--proxy--cleanup_policy_names)
+
+##### `proxy_remote_url`
+
+Data type: `Stdlib::HTTPSUrl`
+
+RubyGems repository url like https://rubygems.org/.
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+Define if the resource should be created/present or deleted/absent.
+
+Default value: `'present'`
+
+##### `http_client_auto_block`
+
+Data type: `Boolean`
+
+Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.
+
+Default value: `true`
+
+##### `http_client_blocked`
+
+Data type: `Boolean`
+
+Block outbound connections on the repository.
+
+Default value: `false`
+
+##### `negative_cache_enabled`
+
+Data type: `Boolean`
+
+Cache responses for content not present in the proxied repository.
+
+Default value: `true`
+
+##### `negative_cache_time_to_live`
+
+Data type: `Integer`
+
+How long to cache the fact that a file was not found in the repository (in minutes).
+
+Default value: `1440`
+
+##### `online`
+
+Data type: `Boolean`
+
+Enable this repository in nexus repository manager that it can be used.
+
+Default value: `true`
+
+##### `proxy_content_max_age`
+
+Data type: `Integer`
+
+Max age of content (packages).
+
+Default value: `1440`
+
+##### `proxy_metadata_max_age`
+
+Data type: `Integer`
+
+Max age of the repository metadata.
+
+Default value: `1440`
+
+##### `storage_blob_store_name`
+
+Data type: `String[1]`
+
+The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each
+defined repository.
+
+Default value: `$title`
+
+##### `storage_strict_content_type_validation`
+
+Data type: `Boolean`
+
+Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format.
+
+Default value: `true`
+
+##### `storage_write_policy`
+
+Data type: `Enum['ALLOW','ALLOW_ONCE','DENY']`
+
+Controls if deployments of and updates to artifacts are allowed.
+
+Default value: `'ALLOW'`
+
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
+### `nexus::resource::repository::yum::hosted`
+
+Resource to manage yum hosted repository
+
+#### Examples
+
+#####
+
+```puppet
+nexus::resource::repository::yum::hosted { 'yum-hosted':
+ repodata_depth => 5,
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `nexus::resource::repository::yum::hosted` defined type:
+
+* [`ensure`](#-nexus--resource--repository--yum--hosted--ensure)
+* [`online`](#-nexus--resource--repository--yum--hosted--online)
+* [`storage_blob_store_name`](#-nexus--resource--repository--yum--hosted--storage_blob_store_name)
+* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--hosted--storage_strict_content_type_validation)
+* [`storage_write_policy`](#-nexus--resource--repository--yum--hosted--storage_write_policy)
+* [`component_proprietary_components`](#-nexus--resource--repository--yum--hosted--component_proprietary_components)
+* [`repodata_depth`](#-nexus--resource--repository--yum--hosted--repodata_depth)
+* [`deploy_policy`](#-nexus--resource--repository--yum--hosted--deploy_policy)
+* [`cleanup_policy_names`](#-nexus--resource--repository--yum--hosted--cleanup_policy_names)
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+Define if the resource should be created/present or deleted/absent.
+
+Default value: `'present'`
+
+##### `online`
+
+Data type: `Boolean`
+
+Allow incoming requests to this repository.
+
+Default value: `true`
+
+##### `storage_blob_store_name`
+
+Data type: `String[1]`
+
+The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each
+defined repository.
+
+Default value: `$title`
+
+##### `storage_strict_content_type_validation`
+
+Data type: `Boolean`
+
+Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format.
+
+Default value: `true`
+
+##### `storage_write_policy`
+
+Data type: `Enum['ALLOW','ALLOW_ONCE','DENY']`
+
+Controls if deployments of and updates to artifacts are allowed.
+
+Default value: `'ALLOW_ONCE'`
+
+##### `component_proprietary_components`
+
+Data type: `Boolean`
+
+Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall).
+
+Default value: `true`
+
+##### `repodata_depth`
+
+Data type: `Integer[0, 5]`
+
+Set the depth of the directory in which the repodata/repomd.xml will be generated.
+
+Default value: `0`
+
+##### `deploy_policy`
+
+Data type: `Enum['STRICT','PERMISSIVE']`
+
+Set the deploy policy, whether or not a redeploy of rpm's is allowed.
+
+Default value: `'STRICT'`
+
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
+### `nexus::resource::repository::yum::proxy`
+
+Resource to manage yum proxy repository
+
+#### Examples
+
+#####
+
+```puppet
+nexus::resource::repository::yum::proxy { 'yum-oracle-latest':
+ proxy_remote_url => 'https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/',
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `nexus::resource::repository::yum::proxy` defined type:
+
+* [`proxy_remote_url`](#-nexus--resource--repository--yum--proxy--proxy_remote_url)
+* [`ensure`](#-nexus--resource--repository--yum--proxy--ensure)
+* [`http_client_auto_block`](#-nexus--resource--repository--yum--proxy--http_client_auto_block)
+* [`http_client_blocked`](#-nexus--resource--repository--yum--proxy--http_client_blocked)
+* [`negative_cache_enabled`](#-nexus--resource--repository--yum--proxy--negative_cache_enabled)
+* [`negative_cache_time_to_live`](#-nexus--resource--repository--yum--proxy--negative_cache_time_to_live)
+* [`online`](#-nexus--resource--repository--yum--proxy--online)
+* [`proxy_content_max_age`](#-nexus--resource--repository--yum--proxy--proxy_content_max_age)
+* [`proxy_metadata_max_age`](#-nexus--resource--repository--yum--proxy--proxy_metadata_max_age)
+* [`storage_blob_store_name`](#-nexus--resource--repository--yum--proxy--storage_blob_store_name)
+* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--proxy--storage_strict_content_type_validation)
+* [`storage_write_policy`](#-nexus--resource--repository--yum--proxy--storage_write_policy)
+* [`cleanup_policy_names`](#-nexus--resource--repository--yum--proxy--cleanup_policy_names)
+
+##### `proxy_remote_url`
+
+Data type: `Stdlib::HTTPSUrl`
+
+yum repository url like https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/.
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+Define if the resource should be created/present or deleted/absent.
+
+Default value: `'present'`
+
+##### `http_client_auto_block`
+
+Data type: `Boolean`
+
+Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.
+
+Default value: `true`
+
+##### `http_client_blocked`
+
+Data type: `Boolean`
+
+Block outbound connections on the repository.
+
+Default value: `false`
+
+##### `negative_cache_enabled`
+
+Data type: `Boolean`
+
+Cache responses for content not present in the proxied repository.
+
+Default value: `true`
+
+##### `negative_cache_time_to_live`
+
+Data type: `Integer`
+
+How long to cache the fact that a file was not found in the repository (in minutes).
+
+Default value: `1440`
+
+##### `online`
+
+Data type: `Boolean`
+
+Enable this repository in nexus repository manager that it can be used.
+
+Default value: `true`
+
+##### `proxy_content_max_age`
+
+Data type: `Integer`
+
+Max age of content (packages)
+
+Default value: `1440`
+
+##### `proxy_metadata_max_age`
+
+Data type: `Integer`
+
+Max age of the repository metadata
+
+Default value: `1440`
+
+##### `storage_blob_store_name`
+
+Data type: `String[1]`
+
+The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each
+defined repository.
+
+Default value: `$title`
+
+##### `storage_strict_content_type_validation`
+
+Data type: `Boolean`
Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format.
@@ -1582,6 +2083,14 @@ Controls if deployments of and updates to artifacts are allowed.
Default value: `'ALLOW'`
+##### `cleanup_policy_names`
+
+Data type: `Array[String[1]]`
+
+Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens.
+
+Default value: `[]`
+
## Resource types
### `nexus_blobstore`
@@ -1678,6 +2187,80 @@ Data type: `String`
The name of the resource you want to manage.
+### `nexus_role`
+
+```puppet
+nexus_role { 'rolename':
+ ensure => 'present',
+ id => 'reader',
+ description => 'read access to raw repository',
+ privileges => ['nx-repository-view-raw-*-read'],
+ roles => '',
+}
+```
+
+#### Properties
+
+The following properties are available in the `nexus_role` type.
+
+##### `description`
+
+Data type: `Optional[String]`
+
+The description of the role.
+
+##### `ensure`
+
+Data type: `Enum[present, absent]`
+
+Whether this resource should be present or absent on the target system.
+
+Default value: `present`
+
+##### `name`
+
+Data type: `Optional[String]`
+
+The name of the role which will be the same like id.
+
+##### `privileges`
+
+Data type: `Optional[Array[String]]`
+
+The privileges the role should have
+
+##### `read_only`
+
+Data type: `Optional[Boolean]`
+
+Define as read only.
+
+##### `roles`
+
+Data type: `Optional[Array[String]]`
+
+Other roles the new role should have
+
+##### `source`
+
+Data type: `Optional[String]`
+
+The source of the role. Like local or LDAP
+
+#### Parameters
+
+The following parameters are available in the `nexus_role` type.
+
+* [`id`](#-nexus_role--id)
+
+##### `id`
+
+namevar
+
+Data type: `String`
+
+The id of the role
+
### `nexus_setting`
Raw provider to set settings over the nexus repository manager rest api.
@@ -1817,99 +2400,3 @@ Data type: `String`
The login name of the user.
-### `nexus_role`
-
-```puppet
-nexus_role { 'rolename':
- ensure => 'present',
- id => 'reader',
- description => 'read acdess to raw repository',
- privileges => ['nx-repository-view-raw-*-read'],
- roles => '',
-}
-```
-
-#### Properties
-
-The following properties are available in the `nexus_role` type.
-
-##### `ensure`
-
-Data type: `Enum[present, absent]`
-
-Whether this resource should be present or absent on the target system.
-
-Default value: `present`
-
-##### `id`
-
-Data type: `String`
-
-The id of the role.
-
-##### `source`
-
-Data type: `Optional[String]`
-
-The source of the role.
-
-##### `name`
-
-Data type: `Optional[String]`
-
-The name of the role which will be the same like id.
-
-##### `description`
-
-Data type: `Optional[String]`
-
-The description of the role.
-
-##### `read_only`
-
-Data type: `Optional[Boolean]`
-
-Flag if this is a read only role.
-
-##### `privileges`
-
-Data type: `Optional[Array[String]]`
-
-The privileges the role should have.
-
-##### `roles`
-
-Data type: `Optional[Array[String]]`
-
-Other roles the new role should have.
-
-##### `read_only`
-
-Data type: `Boolean`
-
-The status of the user if it is read only.
-
-##### `roles`
-
-Data type: `Array[String]`
-
-The roles assigned to the user.
-
-Default value: `["nx-anonymous"]`
-
-##### `source`
-
-Data type: `String`
-
-The datasource of the user. e.g. local or ldap source name.
-
-Default value: `default`
-
-##### `status`
-
-Data type: `Enum[active,disabled,changepassword]`
-
-The user status.
-
-Default value: `active`
-
diff --git a/metadata.json b/metadata.json
index 4cb08a5..85c3667 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,6 +1,6 @@
{
"name": "pest-nexus",
- "version": "3.5.0",
+ "version": "4.0.0",
"author": "Puppets Epic Show Theatre",
"summary": "Puppet module for Sonatype Nexus Repository Manager 3",
"license": "MIT",