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.
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
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.
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.
name field is required.
Describes the type of the acceptable values for this option. The only supported types are the equivalent of JSON types
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
"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.
dataType field is optional. Its implied default value is
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.
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.