Skip to content

Commit d84c0cb

Browse files
CloudFormation Template Schema upgrade (#382)
https://github.com/aws-cloudformation/cloudformation-template-schema/tree/main Co-authored-by: kddejong <[email protected]> Co-authored-by: Kevin DeJong <[email protected]>
1 parent 9c34e27 commit d84c0cb

File tree

106 files changed

+18015
-10108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+18015
-10108
lines changed

server/schema/resources.schema.json

Lines changed: 9010 additions & 8095 deletions
Large diffs are not rendered by default.

server/schema/resources/aws-acmpca-certificateauthority.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,13 @@
450450
"markdownDescription": "Usage mode of the ceritificate authority.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement"
451451
}
452452
},
453+
"tagging": {
454+
"taggable": true,
455+
"tagOnCreate": true,
456+
"tagUpdatable": true,
457+
"cloudFormationSystemTags": false,
458+
"tagProperty": "/properties/Tags"
459+
},
453460
"additionalProperties": false,
454461
"required": [
455462
"Type",

server/schema/resources/aws-amplify-domain.json

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
"maxLength": 1000,
2626
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nPattern: ^$|^arn:.+:iam::\\d{12}:role.+ \nUpdate requires: No interruption"
2727
},
28-
"Certificate": {
29-
"$ref": "#/definitions/Certificate"
30-
},
3128
"CertificateSettings": {
3229
"$ref": "#/definitions/CertificateSettings"
3330
},
@@ -36,10 +33,6 @@
3633
"maxLength": 255,
3734
"markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 255 \nPattern: ^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])(\\.)?$ \nUpdate requires: Replacement"
3835
},
39-
"UpdateStatus": {
40-
"type": "string",
41-
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
42-
},
4336
"EnableAutoSubDomain": {
4437
"type": "boolean",
4538
"markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption"
@@ -137,7 +130,12 @@
137130
"/properties/Arn",
138131
"/properties/DomainStatus",
139132
"/properties/StatusReason",
140-
"/properties/CertificateRecord"
133+
"/properties/CertificateRecord",
134+
"/properties/Certificate",
135+
"/properties/UpdateStatus"
136+
],
137+
"writeOnlyProperties": [
138+
"/properties/CertificateSettings"
141139
],
142140
"handlers": {
143141
"create": {
@@ -194,10 +192,17 @@
194192
"maxLength": 1000,
195193
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nUpdate requires: No interruption"
196194
},
195+
"Certificate": {
196+
"$ref": "#/definitions/Certificate"
197+
},
197198
"DomainStatus": {
198199
"type": "string",
199200
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
200201
},
202+
"UpdateStatus": {
203+
"type": "string",
204+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
205+
},
201206
"StatusReason": {
202207
"type": "string",
203208
"maxLength": 1000,

server/schema/resources/aws-appconfig-environment.json

Lines changed: 124 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,96 @@
11
{
2-
"typeName": "AWS::AppConfig::Environment",
3-
"description": "Resource Type definition for AWS::AppConfig::Environment",
42
"sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git",
5-
"additionalProperties": false,
6-
"properties": {
7-
"ApplicationId": {
8-
"type": "string",
9-
"description": "The application ID.",
10-
"markdownDescription": "The application ID.\n\n---\n\nRequired: Yes \nType: String \nPattern: [a-z0-9]{4,7} \nUpdate requires: Replacement"
3+
"tagging": {
4+
"taggable": true,
5+
"tagOnCreate": true,
6+
"tagUpdatable": true,
7+
"tagProperty": "/properties/Tags",
8+
"cloudFormationSystemTags": true
9+
},
10+
"handlers": {
11+
"read": {
12+
"permissions": [
13+
"appconfig:GetEnvironment",
14+
"appconfig:ListTagsForResource"
15+
]
1116
},
12-
"Name": {
13-
"type": "string",
14-
"description": "A name for the environment.",
15-
"minLength": 1,
16-
"maxLength": 64,
17-
"markdownDescription": "A name for the environment.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption"
17+
"create": {
18+
"permissions": [
19+
"appconfig:CreateEnvironment",
20+
"appconfig:GetEnvironment",
21+
"appconfig:ListTagsForResource",
22+
"appconfig:TagResource",
23+
"iam:PassRole"
24+
]
1825
},
19-
"Description": {
20-
"type": "string",
21-
"description": "A description of the environment.",
22-
"minLength": 0,
23-
"maxLength": 1024,
24-
"markdownDescription": "A description of the environment.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption"
26+
"update": {
27+
"permissions": [
28+
"appconfig:UpdateEnvironment",
29+
"appconfig:TagResource",
30+
"appconfig:UntagResource",
31+
"iam:PassRole"
32+
]
2533
},
26-
"Monitors": {
27-
"type": "array",
28-
"description": "Amazon CloudWatch alarms to monitor during the deployment process.",
29-
"insertionOrder": false,
30-
"items": {
31-
"$ref": "#/definitions/Monitor"
32-
},
33-
"minItems": 0,
34-
"maxItems": 5,
35-
"markdownDescription": "Amazon CloudWatch alarms to monitor during the deployment process.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption"
34+
"list": {
35+
"permissions": [
36+
"appconfig:ListEnvironments"
37+
],
38+
"handlerSchema": {
39+
"properties": {
40+
"ApplicationId": {
41+
"$ref": "resource-schema.json#/properties/ApplicationId"
42+
}
43+
},
44+
"required": [
45+
"ApplicationId"
46+
]
47+
}
3648
},
37-
"Tags": {
38-
"type": "array",
39-
"description": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
40-
"uniqueItems": true,
41-
"items": {
42-
"$ref": "#/definitions/Tag"
43-
},
44-
"insertionOrder": false,
45-
"markdownDescription": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption"
49+
"delete": {
50+
"permissions": [
51+
"appconfig:GetEnvironment",
52+
"appconfig:DeleteEnvironment"
53+
]
4654
}
4755
},
56+
"typeName": "AWS::AppConfig::Environment",
57+
"readOnlyProperties": [
58+
"/properties/EnvironmentId"
59+
],
60+
"description": "Resource Type definition for AWS::AppConfig::Environment",
61+
"createOnlyProperties": [
62+
"/properties/ApplicationId"
63+
],
64+
"additionalProperties": false,
65+
"primaryIdentifier": [
66+
"/properties/ApplicationId",
67+
"/properties/EnvironmentId"
68+
],
4869
"definitions": {
4970
"Monitor": {
50-
"type": "object",
5171
"description": "Amazon CloudWatch alarm to monitor during the deployment process.",
5272
"additionalProperties": false,
73+
"type": "object",
5374
"properties": {
5475
"AlarmArn": {
55-
"type": "string",
56-
"description": "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.",
76+
"relationshipRef": {
77+
"typeName": "AWS::CloudWatch::Alarm",
78+
"propertyPath": "/properties/Arn"
79+
},
5780
"minLength": 1,
81+
"description": "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.",
82+
"type": "string",
5883
"maxLength": 2048,
5984
"markdownDescription": "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption"
6085
},
6186
"AlarmRoleArn": {
62-
"type": "string",
63-
"description": "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.",
87+
"relationshipRef": {
88+
"typeName": "AWS::IAM::Role",
89+
"propertyPath": "/properties/Arn"
90+
},
6491
"minLength": 20,
92+
"description": "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.",
93+
"type": "string",
6594
"maxLength": 2048,
6695
"markdownDescription": "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$ \nUpdate requires: No interruption"
6796
}
@@ -73,22 +102,22 @@
73102
},
74103
"Tag": {
75104
"description": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
76-
"type": "object",
77105
"additionalProperties": false,
106+
"type": "object",
78107
"properties": {
79-
"Key": {
80-
"type": "string",
81-
"description": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.",
82-
"minLength": 1,
83-
"maxLength": 128,
84-
"markdownDescription": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:.)[a-zA-Z1-9+=._:/-]*$ \nUpdate requires: No interruption"
85-
},
86108
"Value": {
87-
"type": "string",
88-
"description": "The tag value can be up to 256 characters.",
89109
"minLength": 0,
110+
"description": "The tag value can be up to 256 characters.",
111+
"type": "string",
90112
"maxLength": 256,
91113
"markdownDescription": "The tag value can be up to 256 characters.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption"
114+
},
115+
"Key": {
116+
"minLength": 1,
117+
"description": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.",
118+
"type": "string",
119+
"maxLength": 128,
120+
"markdownDescription": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:.)[a-zA-Z1-9+=._:/-]*$ \nUpdate requires: No interruption"
92121
}
93122
},
94123
"required": [
@@ -98,77 +127,56 @@
98127
"markdownDescription": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.\n\n---\n\nRequired: No \nUpdate requires: No interruption"
99128
}
100129
},
101-
"required": [
102-
"Name",
103-
"ApplicationId"
104-
],
105-
"readOnlyProperties": [
106-
"/properties/EnvironmentId"
107-
],
108-
"createOnlyProperties": [
109-
"/properties/ApplicationId"
110-
],
111-
"primaryIdentifier": [
112-
"/properties/ApplicationId",
113-
"/properties/EnvironmentId"
114-
],
115-
"handlers": {
116-
"create": {
117-
"permissions": [
118-
"appconfig:CreateEnvironment",
119-
"appconfig:GetEnvironment",
120-
"appconfig:ListTagsForResource",
121-
"appconfig:TagResource",
122-
"iam:PassRole"
123-
]
124-
},
125-
"read": {
126-
"permissions": [
127-
"appconfig:GetEnvironment",
128-
"appconfig:ListTagsForResource"
129-
]
130+
"properties": {
131+
"Description": {
132+
"minLength": 0,
133+
"description": "A description of the environment.",
134+
"type": "string",
135+
"maxLength": 1024,
136+
"markdownDescription": "A description of the environment.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption"
130137
},
131-
"update": {
132-
"permissions": [
133-
"appconfig:UpdateEnvironment",
134-
"appconfig:TagResource",
135-
"appconfig:UntagResource",
136-
"iam:PassRole"
137-
]
138+
"Monitors": {
139+
"minItems": 0,
140+
"maxItems": 5,
141+
"description": "Amazon CloudWatch alarms to monitor during the deployment process.",
142+
"insertionOrder": false,
143+
"type": "array",
144+
"items": {
145+
"$ref": "#/definitions/Monitor"
146+
},
147+
"markdownDescription": "Amazon CloudWatch alarms to monitor during the deployment process.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption"
138148
},
139-
"delete": {
140-
"permissions": [
141-
"appconfig:GetEnvironment",
142-
"appconfig:DeleteEnvironment"
143-
]
149+
"ApplicationId": {
150+
"description": "The application ID.",
151+
"type": "string",
152+
"markdownDescription": "The application ID.\n\n---\n\nRequired: Yes \nType: String \nPattern: [a-z0-9]{4,7} \nUpdate requires: Replacement"
144153
},
145-
"list": {
146-
"handlerSchema": {
147-
"properties": {
148-
"ApplicationId": {
149-
"$ref": "resource-schema.json#/properties/ApplicationId"
150-
}
151-
},
152-
"required": [
153-
"ApplicationId"
154-
]
154+
"Tags": {
155+
"uniqueItems": true,
156+
"description": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
157+
"insertionOrder": false,
158+
"type": "array",
159+
"items": {
160+
"$ref": "#/definitions/Tag"
155161
},
156-
"permissions": [
157-
"appconfig:ListEnvironments"
158-
]
162+
"markdownDescription": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption"
163+
},
164+
"Name": {
165+
"minLength": 1,
166+
"description": "A name for the environment.",
167+
"type": "string",
168+
"maxLength": 64,
169+
"markdownDescription": "A name for the environment.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption"
159170
}
160171
},
161-
"tagging": {
162-
"taggable": true,
163-
"tagOnCreate": true,
164-
"tagUpdatable": true,
165-
"cloudFormationSystemTags": true,
166-
"tagProperty": "/properties/Tags"
167-
},
172+
"required": [
173+
"Name",
174+
"ApplicationId"
175+
],
168176
"attributes": {
169177
"EnvironmentId": {
170-
"type": "string",
171178
"description": "The environment ID.",
179+
"type": "string",
172180
"markdownDescription": "The environment ID.\n\n---\n\nRequired: No \nType: String \nPattern: [a-z0-9]{4,7} \nUpdate requires: No interruption"
173181
}
174182
}

0 commit comments

Comments
 (0)