## rain pkg

Package local artifacts into a template

### Synopsis

Performs the same functions as "aws cloudformation package" but with added functionality.

You may use the following, rain-specific directives in templates packaged with "rain pkg":

  !Rain::Embed <path>          Embeds the contents of the file at <path> into the template as a string

  !Rain::Include <path>        Reads the file at <path> as YAML/JSON and inserts the resulting object into the template

  !Rain::Env <name>            Reads the <name> environmental variable and inserts value into the template as a string

  !Rain::S3Http <path>         Uploads <path> (zipping first if it is a directory) to S3
                               and embeds the S3 HTTP URL into the template as a string

  !Rain::S3 <path>             Uploads <path> (zipping first if it is a directory) to S3
                               and embeds the S3 URI into the template as a string

  !Rain::S3 <object>           supply an object with the following properties: 
    Path: <path>               a file or directory to be uploaded to S3
    Zip: true|false            If "true", rain with zip <path> even if it is a file
    BucketProperty: <bucket>   If you supply "BucketProperty" and "KeyProperty", rain pkg will
    KeyProperty: <key>         include the uploaded file/directory's details as an object in the template
                               with the property names you specify.
    Format: Uri|Http           Specify which format rain pkg should return the S3 location as.
                               Do not specify this property if you supply BucketProperty and KeyProperty.
                               The default Format is "Uri".

  !Rain::Module <url>          Supply a URL to a rain module, which is similar to a CloudFormation module, 
                               but allows for type inheritance. One of the resources in the module yaml file 
                               must be called "ModuleExtension", and it must have a Metadata entry called 
                               "Extends" that supplies the existing type to be extended. The Parameters section 
                               of the module can be used to define additional properties for the extension.
                               This is an experimental directive that must be enabled by adding the 
                               --experimental arg on the command line.


```
rain pkg <template>
```

### Options

```
      --datamodel           Output the go yaml data model
      --debug               Output debugging information
  -x, --experimental        Enable experimental features
  -h, --help                help for pkg
      --no-analytics        Do not include analytics in Metadata
      --node-style string   Set the node output style to tagged, doublequoted, singlequoted, literal, folded, strict-boolean, quotescalars, original, or flow
  -o, --output string       Output packaged template to a file
  -p, --profile string      AWS profile name; read from the AWS CLI configuration file
  -r, --region string       AWS region to use
      --s3-bucket string    Name of the S3 bucket that is used to upload assets
      --s3-owner string     The account where S3 assets are stored
      --s3-prefix string    Prefix to add to objects uploaded to S3 bucket
```

### Options inherited from parent commands

```
      --no-colour   Disable colour output
```

### SEE ALSO

* [rain](index.md)	 - 

###### Auto generated by spf13/cobra on 23-Apr-2026
