Skip to content

Commit 5c2cdca

Browse files
CloudFormation Template Schema upgrade (#374)
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 3876337 commit 5c2cdca

File tree

188 files changed

+20995
-14532
lines changed

Some content is hidden

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

188 files changed

+20995
-14532
lines changed

server/schema/resources.schema.json

Lines changed: 8127 additions & 7887 deletions
Large diffs are not rendered by default.

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

Lines changed: 184 additions & 104 deletions
Large diffs are not rendered by default.

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

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,21 @@
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+
},
31+
"CertificateSettings": {
32+
"$ref": "#/definitions/CertificateSettings"
33+
},
2834
"DomainName": {
2935
"type": "string",
3036
"maxLength": 255,
3137
"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"
3238
},
39+
"UpdateStatus": {
40+
"type": "string",
41+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
42+
},
3343
"EnableAutoSubDomain": {
3444
"type": "boolean",
3545
"markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption"
@@ -45,6 +55,49 @@
4555
}
4656
},
4757
"definitions": {
58+
"CertificateSettings": {
59+
"type": "object",
60+
"additionalProperties": false,
61+
"properties": {
62+
"CertificateType": {
63+
"type": "string",
64+
"enum": [
65+
"AMPLIFY_MANAGED",
66+
"CUSTOM"
67+
],
68+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: AMPLIFY_MANAGED | CUSTOM \nUpdate requires: No interruption"
69+
},
70+
"CustomCertificateArn": {
71+
"type": "string",
72+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:acm:[a-z0-9-]+:\\d{12}:certificate\\/.+$ \nUpdate requires: No interruption"
73+
}
74+
},
75+
"markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption"
76+
},
77+
"Certificate": {
78+
"type": "object",
79+
"additionalProperties": false,
80+
"properties": {
81+
"CertificateType": {
82+
"type": "string",
83+
"enum": [
84+
"AMPLIFY_MANAGED",
85+
"CUSTOM"
86+
],
87+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: AMPLIFY_MANAGED | CUSTOM \nUpdate requires: No interruption"
88+
},
89+
"CertificateArn": {
90+
"type": "string",
91+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: \"^arn:aws:acm:[a-z0-9-]+:\\d{12}:certificate\\/.+$\" \nUpdate requires: No interruption"
92+
},
93+
"CertificateVerificationDNSRecord": {
94+
"type": "string",
95+
"maxLength": 1000,
96+
"markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1000 \nUpdate requires: No interruption"
97+
}
98+
},
99+
"markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption"
100+
},
48101
"SubDomainSetting": {
49102
"type": "object",
50103
"additionalProperties": false,

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

Lines changed: 106 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,88 @@
11
{
2+
"sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig",
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:GetConfigurationProfile",
14+
"appconfig:ListTagsForResource"
15+
]
16+
},
17+
"create": {
18+
"permissions": [
19+
"appconfig:CreateConfigurationProfile",
20+
"appconfig:GetConfigurationProfile",
21+
"appconfig:TagResource",
22+
"appconfig:ListTagsForResource",
23+
"iam:PassRole"
24+
]
25+
},
26+
"update": {
27+
"permissions": [
28+
"appconfig:UpdateConfigurationProfile",
29+
"appconfig:TagResource",
30+
"appconfig:UntagResource",
31+
"iam:PassRole"
32+
]
33+
},
34+
"list": {
35+
"permissions": [
36+
"appconfig:ListConfigurationProfiles"
37+
],
38+
"handlerSchema": {
39+
"properties": {
40+
"ApplicationId": {
41+
"$ref": "resource-schema.json#/properties/ApplicationId"
42+
}
43+
},
44+
"required": [
45+
"ApplicationId"
46+
]
47+
}
48+
},
49+
"delete": {
50+
"permissions": [
51+
"appconfig:DeleteConfigurationProfile"
52+
]
53+
}
54+
},
255
"typeName": "AWS::AppConfig::ConfigurationProfile",
56+
"readOnlyProperties": [
57+
"/properties/ConfigurationProfileId",
58+
"/properties/KmsKeyArn"
59+
],
360
"description": "An example resource schema demonstrating some basic constructs and validation rules.",
4-
"sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig",
61+
"createOnlyProperties": [
62+
"/properties/LocationUri",
63+
"/properties/Type",
64+
"/properties/ApplicationId"
65+
],
66+
"additionalProperties": false,
67+
"primaryIdentifier": [
68+
"/properties/ApplicationId",
69+
"/properties/ConfigurationProfileId"
70+
],
571
"definitions": {
672
"Validators": {
773
"description": "A list of methods for validating the configuration.",
8-
"type": "object",
974
"additionalProperties": false,
75+
"type": "object",
1076
"properties": {
1177
"Type": {
12-
"type": "string",
1378
"description": "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.",
79+
"type": "string",
1480
"markdownDescription": "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
1581
},
1682
"Content": {
17-
"type": "string",
18-
"description": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.",
1983
"minLength": 0,
84+
"description": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.",
85+
"type": "string",
2086
"maxLength": 32768,
2187
"markdownDescription": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 32768 \nUpdate requires: No interruption"
2288
}
@@ -25,174 +91,108 @@
2591
},
2692
"Tags": {
2793
"description": "Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
94+
"additionalProperties": false,
2895
"type": "object",
2996
"properties": {
30-
"Key": {
31-
"type": "string",
32-
"description": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.",
33-
"minLength": 1,
34-
"maxLength": 128,
35-
"markdownDescription": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:.)[a-zA-Z0-9 +=._:/-]*$ \nUpdate requires: No interruption"
36-
},
3797
"Value": {
38-
"type": "string",
39-
"description": "The tag value can be up to 256 characters.",
4098
"minLength": 0,
99+
"description": "The tag value can be up to 256 characters.",
100+
"type": "string",
41101
"maxLength": 256,
42102
"markdownDescription": "The tag value can be up to 256 characters.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption"
103+
},
104+
"Key": {
105+
"minLength": 1,
106+
"description": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.",
107+
"type": "string",
108+
"maxLength": 128,
109+
"markdownDescription": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:.)[a-zA-Z0-9 +=._:/-]*$ \nUpdate requires: No interruption"
43110
}
44111
},
45-
"additionalProperties": false,
46112
"markdownDescription": "Metadata to assign to the configuration profile. 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"
47113
}
48114
},
49115
"properties": {
50116
"LocationUri": {
51-
"type": "string",
52-
"description": "A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object.",
53117
"minLength": 1,
118+
"description": "A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object.",
119+
"type": "string",
54120
"maxLength": 2048,
55121
"markdownDescription": "A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: Replacement"
56122
},
57123
"Type": {
58-
"type": "string",
59124
"description": "The type of configurations contained in the profile. When calling this API, enter one of the following values for Type: AWS.AppConfig.FeatureFlags, AWS.Freeform",
125+
"type": "string",
60126
"markdownDescription": "The type of configurations contained in the profile. When calling this API, enter one of the following values for Type: AWS.AppConfig.FeatureFlags, AWS.Freeform\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z\\.]+ \nUpdate requires: Replacement"
61127
},
62-
"Description": {
128+
"KmsKeyIdentifier": {
129+
"description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.",
63130
"type": "string",
64-
"description": "A description of the configuration profile.",
131+
"markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|alias/[a-zA-Z0-9/_-]{1,250}|arn:aws[a-zA-Z-]*:kms:[a-z]{2}(-gov|-iso(b?))?-[a-z]+-\\d{1}:\\d{12}:(key/[0-9a-f-]{36}|alias/[a-zA-Z0-9/_-]{1,250})$ \nUpdate requires: No interruption"
132+
},
133+
"Description": {
65134
"minLength": 0,
135+
"description": "A description of the configuration profile.",
136+
"type": "string",
66137
"maxLength": 1024,
67138
"markdownDescription": "A description of the configuration profile.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption"
68139
},
69140
"Validators": {
70-
"type": "array",
71-
"description": "A list of methods for validating the configuration.",
141+
"maxItems": 2,
72142
"uniqueItems": false,
143+
"description": "A list of methods for validating the configuration.",
144+
"insertionOrder": false,
145+
"type": "array",
73146
"items": {
74147
"$ref": "#/definitions/Validators"
75148
},
76-
"insertionOrder": false,
77-
"maxItems": 2,
78149
"markdownDescription": "A list of methods for validating the configuration.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption"
79150
},
80151
"RetrievalRoleArn": {
81-
"type": "string",
82-
"description": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.",
83152
"minLength": 20,
153+
"description": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.",
154+
"type": "string",
84155
"maxLength": 2048,
85156
"markdownDescription": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.\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"
86157
},
87158
"ApplicationId": {
88-
"type": "string",
89159
"description": "The application ID.",
160+
"type": "string",
90161
"markdownDescription": "The application ID.\n\n---\n\nRequired: Yes \nType: String \nPattern: [a-z0-9]{4,7} \nUpdate requires: Replacement"
91162
},
92163
"Tags": {
93-
"type": "array",
94-
"description": "Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
95164
"uniqueItems": false,
165+
"description": "Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
166+
"insertionOrder": false,
167+
"type": "array",
96168
"items": {
97169
"$ref": "#/definitions/Tags"
98170
},
99-
"insertionOrder": false,
100171
"markdownDescription": "Metadata to assign to the configuration profile. 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"
101172
},
102173
"Name": {
103-
"type": "string",
104-
"description": "A name for the configuration profile.",
105174
"minLength": 1,
175+
"description": "A name for the configuration profile.",
176+
"type": "string",
106177
"maxLength": 128,
107178
"markdownDescription": "A name for the configuration profile.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption"
108-
},
109-
"KmsKeyIdentifier": {
110-
"type": "string",
111-
"description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.",
112-
"markdownDescription": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.\n\n---\n\nRequired: No \nType: String \nPattern: ^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|alias/[a-zA-Z0-9/_-]{1,250}|arn:aws[a-zA-Z-]*:kms:[a-z]{2}(-gov|-iso(b?))?-[a-z]+-\\d{1}:\\d{12}:(key/[0-9a-f-]{36}|alias/[a-zA-Z0-9/_-]{1,250})$ \nUpdate requires: No interruption"
113179
}
114180
},
115-
"additionalProperties": false,
116181
"required": [
117182
"LocationUri",
118183
"ApplicationId",
119184
"Name"
120185
],
121-
"createOnlyProperties": [
122-
"/properties/LocationUri",
123-
"/properties/Type",
124-
"/properties/ApplicationId"
125-
],
126-
"primaryIdentifier": [
127-
"/properties/ApplicationId",
128-
"/properties/ConfigurationProfileId"
129-
],
130-
"readOnlyProperties": [
131-
"/properties/ConfigurationProfileId",
132-
"/properties/KmsKeyArn"
133-
],
134-
"handlers": {
135-
"create": {
136-
"permissions": [
137-
"appconfig:CreateConfigurationProfile",
138-
"appconfig:GetConfigurationProfile",
139-
"appconfig:TagResource",
140-
"appconfig:ListTagsForResource",
141-
"iam:PassRole"
142-
]
143-
},
144-
"read": {
145-
"permissions": [
146-
"appconfig:GetConfigurationProfile",
147-
"appconfig:ListTagsForResource"
148-
]
149-
},
150-
"update": {
151-
"permissions": [
152-
"appconfig:UpdateConfigurationProfile",
153-
"appconfig:TagResource",
154-
"appconfig:UntagResource",
155-
"iam:PassRole"
156-
]
157-
},
158-
"delete": {
159-
"permissions": [
160-
"appconfig:DeleteConfigurationProfile"
161-
]
162-
},
163-
"list": {
164-
"handlerSchema": {
165-
"properties": {
166-
"ApplicationId": {
167-
"$ref": "resource-schema.json#/properties/ApplicationId"
168-
}
169-
},
170-
"required": [
171-
"ApplicationId"
172-
]
173-
},
174-
"permissions": [
175-
"appconfig:ListConfigurationProfiles"
176-
]
177-
}
178-
},
179-
"tagging": {
180-
"taggable": true,
181-
"tagOnCreate": true,
182-
"tagUpdatable": true,
183-
"cloudFormationSystemTags": true,
184-
"tagProperty": "/properties/Tags"
185-
},
186186
"attributes": {
187187
"ConfigurationProfileId": {
188-
"type": "string",
189188
"description": "The configuration profile ID",
189+
"type": "string",
190190
"markdownDescription": "The configuration profile ID\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption"
191191
},
192192
"KmsKeyArn": {
193-
"type": "string",
194-
"description": "The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service.",
195193
"minLength": 20,
194+
"description": "The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service.",
195+
"type": "string",
196196
"maxLength": 2048,
197197
"markdownDescription": "The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+ \nUpdate requires: No interruption"
198198
}

0 commit comments

Comments
 (0)