-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.json
118 lines (116 loc) · 3.92 KB
/
schema.json
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{
"$schema": "http://json-schema.org/draft-06/schema#",
"additionalProperties": false,
"description": "Configuration for safebox to deploy parameters to various parameter stores",
"type": "object",
"properties": {
"service": {
"type": "string",
"description": "Name of the service. parameters will be prefixed by the value provided"
},
"provider": {
"type": "string",
"enum": ["ssm", "secrets-manager"],
"default": "ssm",
"description": "Deploy parameters to the given provider. Eg. ssm, secrets-manager"
},
"region": {
"anyOf": [
{
"enum": [
"us-east-2",
"us-east-1",
"us-west-1",
"us-west-2",
"af-south-1",
"ap-east-1",
"ap-south-2",
"ap-southeast-3",
"ap-southeast-4",
"ap-south-1",
"ap-northeast-3",
"ap-northeast-2",
"ap-northeast-1",
"ap-southeast-1",
"ap-southeast-2",
"ca-central-1",
"eu-central-1",
"eu-west-1",
"eu-west-2",
"eu-south-1",
"eu-west-3",
"eu-south-2",
"eu-north-1",
"eu-central-2",
"me-south-1",
"me-central-1",
"sa-east-1",
"us-gov-east-1",
"us-gov-west-1"
]
},
{ "type": "string" }
],
"description": "Region to deploy the parameters to. Eg. us-east-1"
},
"prefix": {
"type": "string",
"description": "Prefix to apply to all parameters. Does not apply for shared",
"default": "/<service>/ when stage is not provided. otherwise /<stage>/service/"
},
"generate": {
"type": "array",
"description": "Generate different files based on the parameter name and values",
"items": {
"type": "object",
"required": ["type", "path"],
"properties": {
"type": {
"enum": ["json", "yaml", "dotenv", "types-node"],
"description": "Type of file to generate"
},
"path": {
"type": "string",
"description": "Full path with filename for writing the output"
}
}
}
},
"cloudformation-stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Cloudformation stack names. Any output values from the stacks can be interpolated. Eg. DB_NAME: \"{{.myDbName}}\"\nmyDbName is the output of one of the cloudformation stacks"
},
"config": {
"type": "object",
"description": "Parameters to deploy as non secret. You can also specify stage specific key value pairs. Same key in the defaults will be ignored and stage specific value will be used.",
"properties": {
"defaults": {
"type": "object",
"description": "parameter name and value. Output is /<stage>/<service>/<param name>"
},
"shared": {
"type": "object",
"description": "Params that are to be shared between multiple services. The parameter name wont be prefixed by service name. Output is /<stage>/shared/<param name>"
}
}
},
"secret": {
"type": "object",
"description": "Parameters to deploy as secret. You cannot specify stage specific key value pairs. Value is the description. You will need to run safebox deploy in prompt mode to provide the actual value.",
"properties": {
"defaults": {
"type": "object",
"description": "parameter name and value. Output is /<stage>/<service>/<param name>"
},
"shared": {
"type": "object",
"description": "Params that are to be shared between multiple services. The parameter name wont be prefixed by service name. Output is /<stage>/shared/<param name>"
}
}
}
},
"required": ["service", "provider"]
}