tree: 7794d95a15d500e4f8eb35408e90c746fe535756 [path history] [tgz]
  2. archive/
  3. diagrams/
  4. html/

OpenWhisk Packaging Specification



In general, the goal of this specification is to evolve a simple grammar to describe and deploy a complete OpenWhisk package without having to use any APIs. Primarily, it is accomplished by coding a Package Manifest file and optionally a Deployment file using YAML.

The wskdeploy utility is the reference implementation of this specification for the Apache OpenWhisk project.

Programming Guide

If you want to learn how to write Packages and Applications by example using the specification and deploy them using the wskdeploy utility, please read the step-by-step guide:

Package Specification

The majority of the OpenWhisk Packaging Specification, for convenience, is made available here in Markdown/HTML format. The canonical source for all versions is in PDF format and can be found within the archive directory.

Notational Conventions

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.



  • Introduction - an overview of the goals for the packaging specification.
  • Compatibility - describes intent to be compatible with other standards.
  • Programming model - an overview of the OpenWhisk programming model.
  • Package processing - describes how the developers can use Package Manifests and Deployment files with the wskdeploy utility.
  • Grammar - describes the YAML grammar the specification builds upon.


  • Parameter Types - supported YAML and OpenWhisk Types.
  • Parameters - grammar, schema and examples for input and output parameters.
  • Maps - schema for using the Map parameter type.
  • Entity Schema - keys that are common to all entities in the programming model.
  • Packages - grammar, schema and examples for Packages.
  • Actions - grammar, schema and examples for Actions.
  • Triggers - grammar, schema and examples for Triggers.
  • Rules - grammar, schema and examples for Rules.
  • Sequences - schema to compose multiple Actions into a single, named Action sequence.
  • Entity Naming & Namespacing - describes what characters can be used to name Packages, Actions, Triggers and Rules and how to manage them with namespaces.
  • APIs - grammar, schema and examples for APIs.



The OpenWhisk packaging specification is licensed under The Apache License, Version 2.0.


This specification is under development and in draft status; therefore, it is subject to change during this development period. We are posting drafts seeking review, comments, suggestions and use cases from the OpenWhisk and greater Serverless community.