Reference Guide

3
Content of an Application Module
An Application Module is typically a Puppet module plus one additional metadata le called asm_input.json. Technically, the minimal
Application module could include only an asm_input.json le with nothing else, acting simply as a manifest or partial manifest. In that
case, any required classes should already have been included in another application module or modules. Here is an example layout of
the application module directory for the more typical case.
my_module /
|-- asm_input.json
|-- files
|-- Gemfile
|-- manifests
| `-- init.pp
|-- metadata.json
|-- Rakefile
|-- README.md
`-- tests
Key les of interest are:
asm_input.json is a JSON le containing metadata describing the puppet classes and types that should be exposed in the ASM UI.
metadata.json is a JSON le containing metadata about the puppet module itself. It contains data such as `name`, `version`,
`author`, and the version of Puppet the module is expected to function with, operating systems it supports, and ruby gems that it
requires. A full description of this le can be found in the Puppet documentation.
NOTE: In fact, ASM does not require a `metadata.json` le at all, but if one is present and contains values for these
elds, they can be omitted in the `asm_input.json` and the values from the `metadata.json` le is used.
6