This section describes the parts of an accelerator manifest file that are relevant for the processing of an accelerator, i.e. the metadata that affects the behaviour at runtime of the engine. Other parts of the file may be used to alter the presentation, including the presentation of user input widgets in some UIs. Those parts are out of the scope of this document.

Metadata for Options

A sample annotated manifest is shown below:

accelerator: # the first 3 properties are out of scope of this spec
  name: new-demo
  description: Create a new demo project
  tags:
    - java
    - spring
    - cloud
    - function
    - serverless
  options: # some properties of options are also ignored by this spec
    - name: platform
      description: platform to target
      dataType: string
      defaultValue: azure
      inputType: select
      choices:
      - value: azure
        text: Microsoft Azure
      - value: lambda
        text: AWS Lambda
      - value: google
        text: Google Cloud Platform
    - name: serviceName
      description: The name of the service
      dataType: string
      defaultValue: mckesson-service-template
      inputType: text

engine:
  # transformation

Options are defined by their name, dataType and optional defaultValue. All other fields are out of scope of this specification and are silently ignored by the engine.

accelerator.options is a list of sub objects defined below. In the rest of this specification, the notation somekey[*] refers to a multi-valued property.

accelerator.options[*].name

Denotes the name of a top level entry in the model a runtime. name must use lower camelCase and no two options must be declared with the same name.

UIs are free to turn the camelCase name into some other label for presentation (e.g. projectName -> Project Name or projectName -> --project-name), but the technical key used to pass the value must use the camelCase name.

The name field is required.

accelerator.options[*].dataType

Describes the type of the acceptable values for this option. The only supported types are the equivalent of JSON types string, number, boolean and one-dimensional arrays of the above. null is a supported value and conforms to all types.

The value of the dataType field, if set, MUST be either * a string with value of either "string", "number" or "boolean". This denotes that the required type of the option is the corresponding type. * a one-dimension, single element array of string whose sole element is one of the above. This denotes that the type of the option is an array of said type, e.g. ["number"] enforces an option whose type is a one-dimension array of numbers.

The dataType field is optional. Its implied default value is "string".

accelerator.options[*].defaultValue

Describes the default value that the engine should assume if clients don't provide an explicit value. The way UIs present those values is implementation specific, but in the absence of explicit user-provided value, clients MAY leave out the option (in which case the engine will use the default value) or explicitly send the default.

The value of the defaultValue field must be an instance of a JSON/YAML value that conforms to the dataType declared or implied for the option.

The defaultValue field is optional and has no default value, meaning that an option with no defaultValue is required (and clients and UIs should enforce this) to be populated.

check-circle-line exclamation-circle-line close-line
Scroll to top icon