Parameters

Parameter schema

The Parameter schema is used to define input and/or output data to be used by OpenWhisk entities for the purposes of validation.

Fields

Key NameRequiredValue TypeDefaultDescription
typeno<any>stringOptional valid type name or the parameter’s value for alidation purposes. By default, the type is string.
descriptionnostring256N/AOptional description of the Parameter.
valueno<any>N/AThe optional user supplied value for the parameter. Note: this is not the default value, but an explicit declaration which allows simple usage of the Manifest file without a Deployment file.
requirednobooleantrueOptional indicator to declare the parameter as required (i.e., true) or optional (i.e., false).
defaultno<any>N/AOptional default value for the optional parameters. This value MUST be type compatible with the value declared on the parameter’s type field.
statusnostringsupportedOptional status of the parameter (e.g., deprecated, experimental). By default a parameter is without a declared status is considered supported.
schemano<schema>N/AThe optional schema if the ‘type‘ key has the value ‘schema‘. The value would include a Schema Object (in YAML) as defined by the OpenAPI Specification v2.0. This object is based upon the JSON Schema Specification.
propertiesno<list of parameter>N/AThe optional properties if the ‘type‘ key has the value ‘object‘. Its value is a listing of Parameter schema from this specification.

Requirements

The ‘schema’ key's value MUST be compatible with the value provided on both the ‘type’ and ‘value’ keys; otherwise, it is considered an error.

Notes

The ‘type’ key acknowledges some popular schema (e.g., JSON) to use when validating the value of the parameter. In the future additional (schema) types may be added for convenience.

Grammar

Single-line

Where is inferred to be a YAML type as shown in the YAML Types section above (e.g., string, integer, float, boolean, etc.).

If you wish the parser to validate against a different schema, then the multi-line grammar MUST be used where the value would be supplied on the keyname ‘value’ and the type (e.g., ‘json’) and/or schema (e.g., OpenAPI) can be supplied.

Multi-line

Status values

Status ValueDescription
supported (default)Indicates the parameter is supported. This is the implied default status value for all parameters.
experimentalIndicates the parameter MAY be removed or changed in future versions.
deprecatedIndicates the parameter is no longer supported in the current version and MAY be ignored.

Shared Entity Schema

The Entity Schema contains fields that are common (shared) to all OpenWhisk entities (e.g., Actions, Triggers, Rules, etc.).

Fields
Key NameRequiredValue TypeDefaultDescription
descriptionnostring256N/AThe optional description for the Entity.
displayNamenostring16N/AThis is the optional name that will be displayed on small form-factor devices.
annotationsnomap of <string>>N/Ahe optional annotations for the Entity.
Grammar
description: <string256>
displayName: <string16>
annotations: <map of <string>>
Requirements
  • Non-required fields MAY be stored as “annotations” within the OpenWhisk framework after they have been used for processing.
  • “description” string values SHALL be limited to 256 characters.
  • “displayName” string values SHALL be limited to 16 characters.
  • “annotations” MAY be ignored by target consumers of the Manifest file as they are considered data non-essential to the deployment of management of OpenWhisk entities themselves.
    • Target consumers MAY preserve (persist) these values, but are not required to.
  • For any OpenWhisk Entity, the maximum size of all “annotations” (values) SHALL be 256 characters.
Notes
  • Several, non-normative “annotations” keynames and allowed values (principally for User Interface (UI) design and tooling information) may be defined in this specification or optional usage.

Dollar Notation ($) schema for values

In a Manifest or Deployment file, a parameter value may be set from the local execution environment by using the dollar ($) notation to denote names of local environment variables which supply the value to be inserted at execution time.

Syntax

<parameter>: $<local environment variable name>

Example

...
  inputs:
    userName: $DEFAULT_USERNAME

Requirements

  • Processors or tooling that encounter ($) Dollar notation and are unable to locate the value in the execution environment SHOULD resolve the value to be the default value for the type (e.g., an empty string ("") for type ‘string’).

Notes

  • Processors or tooling that encounter ($) Dollar notation for values should attempt to locate the corresponding named variables set into the local execution environment (e.g., where the tool was invoked) and assign its value to the named input parameter for the OpenWhisk entity.
  • This specification does not currently consider using this notation for other than simple data types (i.e., we support this mechanism for values such as strings, integers, floats, etc.) at this time.