-
Notifications
You must be signed in to change notification settings - Fork 3
/
ssmDocumentSchema.ts
65 lines (63 loc) · 2.94 KB
/
ssmDocumentSchema.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*!
* Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import { JsonLS } from "../ssmLanguageService";
import { fileDefinition } from "./automation/fileDefinition";
import { parameterDefinition } from "./automation/parameterDefinition";
import { stepDefinition } from "./automation/stepDefinition";
export const ssmDocumentSchema: JsonLS.JSONSchema = {
$schema: "http://json-schema.org/draft-07/schema",
title: "JSON schema for AWS Automation Documents",
type: "object",
required: ["schemaVersion", "mainSteps"],
properties: {
schemaVersion: {
type: "string",
description: "The schema version to use.",
enum: ["0.3"],
},
description: {
type: "string",
description: "Information you provide to describe the purpose of the document.",
},
assumeRole: {
type: "string",
description: "The ARN of the role that allows Automation to perform the actions on your behalf.",
},
parameters: {
type: "object",
description:
"A structure that defines the parameters the document accepts. For parameters that you reference often, we recommend that you store those parameters in Systems Manager Parameter Store and then reference them. You can reference String and StringList Parameter Store parameters in this section of a document. You can't reference SecureString Parameter Store parameters in this section of a document. For more information, see AWS Systems Manager Parameter Store.",
patternProperties: {
"^.*$": parameterDefinition,
},
additionalProperties: false,
},
mainSteps: {
type: "array",
description:
"An array that can include multiple steps. Steps run in sequential order as listed in the document.",
items: stepDefinition,
minItems: 1,
},
outputs: {
type: "array",
description:
'Data generated by the execution of this document that can be used in other processes. For example, if your document creates a new AMI, you might specify "CreateImage.ImageId" as the output value, and then use this output to create new instances in a subsequent automation execution.',
items: {
type: "string",
},
},
files: {
type: "object",
description:
'The script files (and their checksums) attached to the document and run during an automation execution. Applies only to documents that include the "aws:executeScript" action and for which attachments have been specified in one or more steps.',
patternProperties: {
"^.*$": fileDefinition,
},
additionalProperties: false,
},
},
additionalProperties: false,
};