# <%= module_name %> version <%= @plugin.metadata[:version] %>

#### Table of Contents

1. [Overview](#overview)
1. [Usage](#usage)
1. [Configuration](#configuration)

## Overview

<%= @plugin.metadata[:description] %>

The <%= module_name %> module is generated automatically, based on the source from <%= @plugin.metadata[:url] %>.
<%- if @plugin.plugintype == "Agent" -%>
<%-
      ddl = DDL.new("package", :agent, false)
      ddl.instance_eval(File.read(Dir.glob(File.join("**/agent/*.ddl")).first))
-%>

Available Actions:

<%-   ddl.entities.keys.sort.each do |action| -%>
  * **<%= action %>** - <%= ddl.entities[action][:description] %>
<%-   end -%>
<%- end -%>

## Usage

You can include this module into your infrastructure as any other module, but as it's designed to work with the [choria mcollective](http://forge.puppet.com/choria/mcollective) module you can configure it via Hiera:

```yaml
mcollective::plugin_classes:
  - <%= module_name %>
```

## Configuration

Server and Client configuration can be added via Hiera and managed through tiers in your site Hiera, they will be merged with any included in this module

```yaml
<%= module_name %>::config:
   example: value
```

This will be added to both the `client.cfg` and `server.cfg`, you can likewise configure server and client specific settings using `<%= module_name %>::client_config` and `<%= module_name %>::server_config`.

These settings will be added to the `/etc/puppetlabs/mcollective/plugin.d/` directory in individual files.

For a full list of possible configuration settings see the module [source repository documentation](<%= @plugin.metadata[:url] %>).

## Data Reference

  * `<%= module_name %>::gem_dependencies` - Deep Merged Hash of gem name and version this module depends on
  * `<%= module_name %>::manage_gem_dependencies` - disable managing of gem dependencies
  * `<%= module_name %>::package_dependencies` - Deep Merged Hash of package name and version this module depends on
  * `<%= module_name %>::manage_package_dependencies` - disable managing of packages dependencies
  * `<%= module_name %>::class_dependencies` - Array of classes to include when installing this module
  * `<%= module_name %>::package_dependencies` - disable managing of class dependencies
  * `<%= module_name %>::config` - Deep Merged Hash of common config items for this module
  * `<%= module_name %>::server_config` - Deep Merged Hash of config items specific to managed nodes
  * `<%= module_name %>::client_config` - Deep Merged Hash of config items specific to client nodes
  * `<%= module_name %>::policy_default` - `allow` or `deny`
  * `<%= module_name %>::policies` - List of `actionpolicy` policies to deploy with an agent
  * `<%= module_name %>::client` - installs client files when true - defaults to `$mcollective::client`
  * `<%= module_name %>::server` - installs server files when true - defaults to `$mcollective::server`
  * `<%= module_name %>::ensure` - `present` or `absent`

## Development:

To contribute to this [Choria.IO](https://choria.io) plugin please visit <%= @plugin.metadata[:url] %>.

This module was generated using the Choria Plugin Packager based on templates found at the [GitHub Project](https://github.com/choria-io/).
