cfndsl 0.15.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +6 -6
  4. data/.travis.yml +10 -5
  5. data/CHANGELOG.md +721 -400
  6. data/Gemfile +2 -0
  7. data/README.md +85 -23
  8. data/Rakefile +28 -6
  9. data/TODO.md +18 -0
  10. data/UPGRADING.md +22 -0
  11. data/cfndsl.gemspec +17 -16
  12. data/exe/cfndsl +5 -0
  13. data/lib/cfndsl.rb +3 -113
  14. data/lib/cfndsl/aws/cloud_formation_template.rb +10 -1
  15. data/lib/cfndsl/aws/patches/000_CloudFormationResourceSpecification.json +51726 -0
  16. data/lib/cfndsl/aws/patches/000_sam.spec.json +1242 -0
  17. data/lib/cfndsl/aws/patches/100_sam.spec_DeploymentPreference_patch.json +64 -0
  18. data/lib/cfndsl/aws/patches/200_Scrutinies_patch.json +86 -0
  19. data/lib/cfndsl/aws/patches/500_Cognito_IdentityPoolRoleAttachment_patches.json +25 -0
  20. data/lib/cfndsl/aws/patches/500_IoT1Click_patch_PlacementTemplate_DeviceTemplates.json +20 -0
  21. data/lib/cfndsl/aws/patches/500_NetworkAclEntry_patch.json +16 -0
  22. data/lib/cfndsl/aws/patches/500_SAM_Serverless_Function_S3Event_Events_patch.json +16 -0
  23. data/lib/cfndsl/aws/patches/500_SAM_Serverless_Function_S3Location_Version_patch.json +16 -0
  24. data/lib/cfndsl/aws/patches/500_SSM_AssociationName_patch.json +16 -0
  25. data/lib/cfndsl/aws/patches/500_VPCEndpoint_patch.json +17 -0
  26. data/lib/cfndsl/aws/patches/510_ElasticSearch_Domain_patches.json +15 -0
  27. data/lib/cfndsl/aws/patches/520_ServiceDiscovery_InstanceAttributes_patch.json +16 -0
  28. data/lib/cfndsl/aws/patches/600_RefKinds_patch.json +3654 -0
  29. data/lib/cfndsl/aws/patches/700_SAM_Serverless_Function_InlineCode_patch.json +20 -0
  30. data/lib/cfndsl/aws/patches/800_List_types_patch.json +115 -0
  31. data/lib/cfndsl/aws/resource_specification.json +39955 -9293
  32. data/lib/cfndsl/aws/types.rb +5 -3
  33. data/lib/cfndsl/cfnlego.rb +34 -0
  34. data/lib/{cfnlego → cfndsl/cfnlego}/cloudformation.erb +0 -0
  35. data/lib/{cfnlego → cfndsl/cfnlego}/cloudformation.rb +3 -1
  36. data/lib/{cfnlego → cfndsl/cfnlego}/resource.rb +5 -8
  37. data/lib/cfndsl/cloudformation.rb +114 -0
  38. data/lib/cfndsl/conditions.rb +13 -1
  39. data/lib/cfndsl/creation_policy.rb +3 -1
  40. data/lib/cfndsl/deep_merge.rb +4 -0
  41. data/lib/cfndsl/external_parameters.rb +12 -13
  42. data/lib/cfndsl/globals.rb +51 -10
  43. data/lib/cfndsl/json_serialisable_object.rb +4 -2
  44. data/lib/cfndsl/jsonable.rb +51 -68
  45. data/lib/cfndsl/mappings.rb +3 -1
  46. data/lib/cfndsl/module.rb +18 -5
  47. data/lib/cfndsl/names.rb +2 -0
  48. data/lib/cfndsl/orchestration_template.rb +193 -73
  49. data/lib/cfndsl/outputs.rb +7 -1
  50. data/lib/cfndsl/parameters.rb +3 -1
  51. data/lib/cfndsl/plurals.rb +23 -10
  52. data/lib/cfndsl/properties.rb +3 -1
  53. data/lib/cfndsl/rake_task.rb +217 -15
  54. data/lib/cfndsl/ref_check.rb +21 -11
  55. data/lib/cfndsl/resources.rb +8 -19
  56. data/lib/cfndsl/rules.rb +46 -0
  57. data/lib/cfndsl/runner.rb +143 -0
  58. data/lib/cfndsl/specification.rb +82 -84
  59. data/lib/cfndsl/types.rb +212 -95
  60. data/lib/cfndsl/update_policy.rb +3 -1
  61. data/lib/cfndsl/version.rb +3 -1
  62. data/lib/deep_merge/core.rb +10 -6
  63. data/lib/deep_merge/deep_merge.rb +3 -1
  64. data/sample/autoscale.rb +1 -1
  65. data/sample/autoscale2.rb +4 -3
  66. data/sample/circular.rb +2 -0
  67. data/sample/codedeploy.rb +3 -1
  68. data/sample/config_service.rb +5 -3
  69. data/sample/ecs.rb +3 -1
  70. data/sample/export.rb +5 -3
  71. data/sample/iam_policies.rb +2 -0
  72. data/sample/import.rb +4 -2
  73. data/sample/lambda.rb +3 -1
  74. data/sample/s3.rb +2 -0
  75. data/sample/t1.rb +3 -1
  76. data/sample/vpc_example.rb +3 -1
  77. data/sample/vpc_with_vpn_example.rb +3 -1
  78. data/spec/aws/ec2_security_group_spec.rb +2 -0
  79. data/spec/aws/ecs_task_definition_spec.rb +2 -0
  80. data/spec/aws/iam_managed_policy_spec.rb +2 -0
  81. data/spec/aws/kms_alias_spec.rb +2 -0
  82. data/spec/aws/list_type_patches_spec.rb +35 -0
  83. data/spec/aws/logs_log_group_spec.rb +2 -0
  84. data/spec/aws/nested_arrays_spec.rb +194 -0
  85. data/spec/aws/rds_db_instance_spec.rb +2 -0
  86. data/spec/aws/serverless_spec.rb +2 -2
  87. data/spec/cfndsl_spec.rb +102 -63
  88. data/spec/cli_spec.rb +52 -49
  89. data/spec/cloud_formation_template_spec.rb +235 -0
  90. data/spec/condition_spec.rb +24 -0
  91. data/spec/deep_merge_spec.rb +2 -0
  92. data/spec/direct_ruby_spec.rb +19 -0
  93. data/spec/external_parameters_spec.rb +25 -20
  94. data/spec/fixtures/condition-assertion.json +1 -0
  95. data/spec/fixtures/params.json +1 -0
  96. data/spec/fixtures/params.yaml +2 -0
  97. data/spec/fixtures/params_struct1.yaml +4 -0
  98. data/spec/fixtures/params_struct2.yaml +4 -0
  99. data/spec/fixtures/rule-assertion.json +1 -0
  100. data/spec/fixtures/test.rb +12 -4
  101. data/spec/generate_spec.rb +4 -0
  102. data/spec/jsonable_spec.rb +2 -0
  103. data/spec/metadata_spec.rb +2 -0
  104. data/spec/names_spec.rb +2 -0
  105. data/spec/output_spec.rb +2 -0
  106. data/spec/plurals_spec.rb +2 -0
  107. data/spec/resource_name_spec.rb +21 -0
  108. data/spec/resources_spec.rb +2 -7
  109. data/spec/rule_spec.rb +17 -0
  110. data/spec/spec_helper.rb +4 -7
  111. data/spec/support/shared_examples/orchestration_template.rb +17 -2
  112. data/spec/transform_spec.rb +2 -0
  113. data/spec/types_definition_spec.rb +6 -7
  114. metadata +79 -25
  115. data/bin/cfndsl +0 -143
  116. data/lib/cfndsl/errors.rb +0 -29
  117. data/lib/cfndsl/os/heat_template.rb +0 -16
  118. data/lib/cfndsl/os/types.rb +0 -12
  119. data/lib/cfndsl/os/types.yaml +0 -2423
  120. data/lib/cfndsl/patches.rb +0 -98
  121. data/lib/cfnlego.rb +0 -42
  122. data/spec/fixtures/heattest.rb +0 -22
  123. data/spec/heat_template_spec.rb +0 -5
@@ -0,0 +1,1242 @@
1
+ {
2
+ "PropertyTypes": {
3
+ "AWS::Serverless::Api.AccessLogSetting": {
4
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html",
5
+ "Properties": {
6
+ "DestinationArn": {
7
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn",
8
+ "PrimitiveType": "String",
9
+ "Required": false,
10
+ "UpdateType": "Immutable"
11
+ },
12
+ "Format": {
13
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format",
14
+ "PrimitiveType": "String",
15
+ "Required": false,
16
+ "UpdateType": "Immutable"
17
+ }
18
+ }
19
+ },
20
+ "AWS::Serverless::Api.Auth": {
21
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
22
+ "Properties": {
23
+ "Authorizers": {
24
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
25
+ "PrimitiveType": "Json",
26
+ "Required": false,
27
+ "UpdateType": "Immutable"
28
+ },
29
+ "DefaultAuthorizer": {
30
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object",
31
+ "PrimitiveType": "String",
32
+ "Required": false,
33
+ "UpdateType": "Immutable"
34
+ }
35
+ }
36
+ },
37
+ "AWS::Serverless::Api.CorsConfiguration": {
38
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
39
+ "Properties": {
40
+ "AllowCredentials": {
41
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
42
+ "PrimitiveType": "Boolean",
43
+ "Required": false,
44
+ "UpdateType": "Immutable"
45
+ },
46
+ "AllowHeaders": {
47
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
48
+ "PrimitiveType": "String",
49
+ "Required": false,
50
+ "UpdateType": "Immutable"
51
+ },
52
+ "AllowMethods": {
53
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
54
+ "PrimitiveType": "String",
55
+ "Required": false,
56
+ "UpdateType": "Immutable"
57
+ },
58
+ "AllowOrigin": {
59
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
60
+ "PrimitiveType": "String",
61
+ "Required": true,
62
+ "UpdateType": "Immutable"
63
+ },
64
+ "MaxAge": {
65
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration",
66
+ "PrimitiveType": "String",
67
+ "Required": false,
68
+ "UpdateType": "Immutable"
69
+ }
70
+ }
71
+ },
72
+ "AWS::Serverless::Api.S3Location": {
73
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
74
+ "Properties": {
75
+ "Bucket": {
76
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
77
+ "PrimitiveType": "String",
78
+ "Required": true,
79
+ "UpdateType": "Immutable"
80
+ },
81
+ "Key": {
82
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
83
+ "PrimitiveType": "String",
84
+ "Required": true,
85
+ "UpdateType": "Immutable"
86
+ },
87
+ "Version": {
88
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
89
+ "PrimitiveType": "Integer",
90
+ "Required": true,
91
+ "UpdateType": "Immutable"
92
+ }
93
+ }
94
+ },
95
+ "AWS::Serverless::Application.ApplicationLocation": {
96
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
97
+ "Properties": {
98
+ "ApplicationId": {
99
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
100
+ "PrimitiveType": "String",
101
+ "Required": true,
102
+ "UpdateType": "Immutable"
103
+ },
104
+ "SemanticVersion": {
105
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
106
+ "PrimitiveType": "String",
107
+ "Required": true,
108
+ "UpdateType": "Immutable"
109
+ }
110
+ }
111
+ },
112
+ "AWS::Serverless::Function.AlexaSkillEvent": {
113
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill",
114
+ "Properties": {
115
+ "Variables": {
116
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill",
117
+ "PrimitiveItemType": "String",
118
+ "Required": false,
119
+ "Type": "Map",
120
+ "UpdateType": "Immutable"
121
+ }
122
+ }
123
+ },
124
+ "AWS::Serverless::Function.ApiEvent": {
125
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
126
+ "Properties": {
127
+ "Method": {
128
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
129
+ "PrimitiveType": "String",
130
+ "Required": true,
131
+ "UpdateType": "Immutable"
132
+ },
133
+ "Path": {
134
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
135
+ "PrimitiveType": "String",
136
+ "Required": true,
137
+ "UpdateType": "Immutable"
138
+ },
139
+ "RestApiId": {
140
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api",
141
+ "PrimitiveType": "String",
142
+ "Required": false,
143
+ "UpdateType": "Immutable"
144
+ }
145
+ }
146
+ },
147
+ "AWS::Serverless::Function.BucketSAMPT": {
148
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
149
+ "Properties": {
150
+ "BucketName": {
151
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
152
+ "PrimitiveType": "String",
153
+ "Required": true,
154
+ "UpdateType": "Immutable"
155
+ }
156
+ }
157
+ },
158
+ "AWS::Serverless::Function.CloudWatchEventEvent": {
159
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
160
+ "Properties": {
161
+ "Input": {
162
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
163
+ "PrimitiveType": "String",
164
+ "Required": false,
165
+ "UpdateType": "Immutable"
166
+ },
167
+ "InputPath": {
168
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent",
169
+ "PrimitiveType": "String",
170
+ "Required": false,
171
+ "UpdateType": "Immutable"
172
+ },
173
+ "Pattern": {
174
+ "Documentation": "http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html",
175
+ "PrimitiveType": "Json",
176
+ "Required": true,
177
+ "UpdateType": "Immutable"
178
+ }
179
+ }
180
+ },
181
+ "AWS::Serverless::Function.CollectionSAMPT": {
182
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
183
+ "Properties": {
184
+ "CollectionId": {
185
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
186
+ "PrimitiveType": "String",
187
+ "Required": true,
188
+ "UpdateType": "Immutable"
189
+ }
190
+ }
191
+ },
192
+ "AWS::Serverless::Function.DeadLetterQueue": {
193
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deadletterqueue-object",
194
+ "Properties": {
195
+ "TargetArn": {
196
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
197
+ "PrimitiveType": "String",
198
+ "Required": true,
199
+ "UpdateType": "Immutable"
200
+ },
201
+ "Type": {
202
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
203
+ "PrimitiveType": "String",
204
+ "Required": true,
205
+ "UpdateType": "Immutable"
206
+ }
207
+ }
208
+ },
209
+ "AWS::Serverless::Function.DeploymentPreference": {
210
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
211
+ "Properties": {
212
+ "Alarms": {
213
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
214
+ "PrimitiveItemType": "String",
215
+ "Required": false,
216
+ "Type": "List",
217
+ "UpdateType": "Immutable"
218
+ },
219
+ "Enabled": {
220
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
221
+ "PrimitiveType": "Boolean",
222
+ "Required": false,
223
+ "UpdateType": "Immutable"
224
+ },
225
+ "Hooks": {
226
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
227
+ "PrimitiveItemType": "String",
228
+ "Required": false,
229
+ "Type": "Map",
230
+ "UpdateType": "Immutable"
231
+ },
232
+ "Role": {
233
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
234
+ "PrimitiveType": "String",
235
+ "Required": false,
236
+ "UpdateType": "Immutable"
237
+ },
238
+ "Type": {
239
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object",
240
+ "PrimitiveType": "String",
241
+ "Required": false,
242
+ "UpdateType": "Immutable"
243
+ }
244
+ }
245
+ },
246
+ "AWS::Serverless::Function.DomainSAMPT": {
247
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
248
+ "Properties": {
249
+ "DomainName": {
250
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
251
+ "PrimitiveType": "String",
252
+ "Required": true,
253
+ "UpdateType": "Immutable"
254
+ }
255
+ }
256
+ },
257
+ "AWS::Serverless::Function.DynamoDBEvent": {
258
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
259
+ "Properties": {
260
+ "BatchSize": {
261
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
262
+ "PrimitiveType": "Integer",
263
+ "Required": false,
264
+ "UpdateType": "Immutable"
265
+ },
266
+ "Enabled": {
267
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
268
+ "PrimitiveType": "Boolean",
269
+ "Required": false,
270
+ "UpdateType": "Immutable"
271
+ },
272
+ "StartingPosition": {
273
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
274
+ "PrimitiveType": "String",
275
+ "Required": true,
276
+ "UpdateType": "Immutable"
277
+ },
278
+ "Stream": {
279
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb",
280
+ "PrimitiveType": "String",
281
+ "Required": true,
282
+ "UpdateType": "Immutable"
283
+ }
284
+ }
285
+ },
286
+ "AWS::Serverless::Function.EmptySAMPT": {
287
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
288
+ "Properties": {}
289
+ },
290
+ "AWS::Serverless::Function.EventSource": {
291
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
292
+ "Properties": {
293
+ "Properties": {
294
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types",
295
+ "Required": true,
296
+ "Types": [
297
+ "S3Event",
298
+ "SNSEvent",
299
+ "SQSEvent",
300
+ "KinesisEvent",
301
+ "DynamoDBEvent",
302
+ "ApiEvent",
303
+ "ScheduleEvent",
304
+ "CloudWatchEventEvent",
305
+ "IoTRuleEvent",
306
+ "AlexaSkillEvent"
307
+ ],
308
+ "UpdateType": "Immutable"
309
+ },
310
+ "Type": {
311
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object",
312
+ "PrimitiveType": "String",
313
+ "Required": true,
314
+ "UpdateType": "Immutable"
315
+ }
316
+ }
317
+ },
318
+ "AWS::Serverless::Function.FunctionEnvironment": {
319
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object",
320
+ "Properties": {
321
+ "Variables": {
322
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object",
323
+ "PrimitiveItemType": "String",
324
+ "Required": true,
325
+ "Type": "Map",
326
+ "UpdateType": "Immutable"
327
+ }
328
+ }
329
+ },
330
+ "AWS::Serverless::Function.FunctionSAMPT": {
331
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
332
+ "Properties": {
333
+ "FunctionName": {
334
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
335
+ "PrimitiveType": "String",
336
+ "Required": true,
337
+ "UpdateType": "Immutable"
338
+ }
339
+ }
340
+ },
341
+ "AWS::Serverless::Function.IAMPolicyDocument": {
342
+ "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
343
+ "Properties": {
344
+ "Statement": {
345
+ "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html",
346
+ "PrimitiveType": "Json",
347
+ "Required": true,
348
+ "UpdateType": "Immutable"
349
+ }
350
+ }
351
+ },
352
+ "AWS::Serverless::Function.IdentitySAMPT": {
353
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
354
+ "Properties": {
355
+ "IdentityName": {
356
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
357
+ "PrimitiveType": "String",
358
+ "Required": true,
359
+ "UpdateType": "Immutable"
360
+ }
361
+ }
362
+ },
363
+ "AWS::Serverless::Function.IoTRuleEvent": {
364
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
365
+ "Properties": {
366
+ "AwsIotSqlVersion": {
367
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
368
+ "PrimitiveType": "String",
369
+ "Required": false,
370
+ "UpdateType": "Immutable"
371
+ },
372
+ "Sql": {
373
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule",
374
+ "PrimitiveType": "String",
375
+ "Required": true,
376
+ "UpdateType": "Immutable"
377
+ }
378
+ }
379
+ },
380
+ "AWS::Serverless::Function.KeySAMPT": {
381
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
382
+ "Properties": {
383
+ "KeyId": {
384
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
385
+ "PrimitiveType": "String",
386
+ "Required": true,
387
+ "UpdateType": "Immutable"
388
+ }
389
+ }
390
+ },
391
+ "AWS::Serverless::Function.KinesisEvent": {
392
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
393
+ "Properties": {
394
+ "BatchSize": {
395
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
396
+ "PrimitiveType": "Integer",
397
+ "Required": false,
398
+ "UpdateType": "Immutable"
399
+ },
400
+ "Enabled": {
401
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
402
+ "PrimitiveType": "Boolean",
403
+ "Required": false,
404
+ "UpdateType": "Immutable"
405
+ },
406
+ "StartingPosition": {
407
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
408
+ "PrimitiveType": "String",
409
+ "Required": true,
410
+ "UpdateType": "Immutable"
411
+ },
412
+ "Stream": {
413
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis",
414
+ "PrimitiveType": "String",
415
+ "Required": true,
416
+ "UpdateType": "Immutable"
417
+ }
418
+ }
419
+ },
420
+ "AWS::Serverless::Function.LogGroupSAMPT": {
421
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
422
+ "Properties": {
423
+ "LogGroupName": {
424
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
425
+ "PrimitiveType": "String",
426
+ "Required": true,
427
+ "UpdateType": "Immutable"
428
+ }
429
+ }
430
+ },
431
+ "AWS::Serverless::Function.QueueSAMPT": {
432
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
433
+ "Properties": {
434
+ "QueueName": {
435
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
436
+ "PrimitiveType": "String",
437
+ "Required": true,
438
+ "UpdateType": "Immutable"
439
+ }
440
+ }
441
+ },
442
+ "AWS::Serverless::Function.S3Event": {
443
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
444
+ "Properties": {
445
+ "Bucket": {
446
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
447
+ "PrimitiveType": "String",
448
+ "Required": true,
449
+ "UpdateType": "Immutable"
450
+ },
451
+ "Events": {
452
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
453
+ "PrimitiveItemTypes": [
454
+ "String"
455
+ ],
456
+ "PrimitiveTypes": [
457
+ "String"
458
+ ],
459
+ "Required": true
460
+ },
461
+ "Filter": {
462
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3",
463
+ "Required": false,
464
+ "Type": "S3NotificationFilter",
465
+ "UpdateType": "Immutable"
466
+ }
467
+ }
468
+ },
469
+ "AWS::Serverless::Function.S3KeyFilter": {
470
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
471
+ "Properties": {
472
+ "Rules": {
473
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
474
+ "ItemType": "S3KeyFilterRule",
475
+ "Required": true,
476
+ "Type": "List",
477
+ "UpdateType": "Immutable"
478
+ }
479
+ }
480
+ },
481
+ "AWS::Serverless::Function.S3KeyFilterRule": {
482
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
483
+ "Properties": {
484
+ "Name": {
485
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
486
+ "PrimitiveType": "String",
487
+ "Required": true,
488
+ "UpdateType": "Immutable"
489
+ },
490
+ "Value": {
491
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html",
492
+ "PrimitiveType": "String",
493
+ "Required": true,
494
+ "UpdateType": "Immutable"
495
+ }
496
+ }
497
+ },
498
+ "AWS::Serverless::Function.S3Location": {
499
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object",
500
+ "Properties": {
501
+ "Bucket": {
502
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
503
+ "PrimitiveType": "String",
504
+ "Required": true,
505
+ "UpdateType": "Immutable"
506
+ },
507
+ "Key": {
508
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
509
+ "PrimitiveType": "String",
510
+ "Required": true,
511
+ "UpdateType": "Immutable"
512
+ },
513
+ "Version": {
514
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
515
+ "PrimitiveType": "Integer",
516
+ "Required": false,
517
+ "UpdateType": "Immutable"
518
+ }
519
+ }
520
+ },
521
+ "AWS::Serverless::Function.S3NotificationFilter": {
522
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
523
+ "Properties": {
524
+ "S3Key": {
525
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html",
526
+ "Required": true,
527
+ "Type": "S3KeyFilter",
528
+ "UpdateType": "Immutable"
529
+ }
530
+ }
531
+ },
532
+ "AWS::Serverless::Function.SAMPolicyTemplate": {
533
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
534
+ "Properties": {
535
+ "AMIDescribePolicy": {
536
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
537
+ "Type": "EmptySAMPT",
538
+ "UpdateType": "Immutable"
539
+ },
540
+ "CloudFormationDescribeStacksPolicy": {
541
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
542
+ "Type": "EmptySAMPT",
543
+ "UpdateType": "Immutable"
544
+ },
545
+ "CloudWatchPutMetricPolicy": {
546
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
547
+ "Type": "EmptySAMPT",
548
+ "UpdateType": "Immutable"
549
+ },
550
+ "DynamoDBCrudPolicy": {
551
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
552
+ "Type": "TableSAMPT",
553
+ "UpdateType": "Immutable"
554
+ },
555
+ "DynamoDBReadPolicy": {
556
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
557
+ "Type": "TableSAMPT",
558
+ "UpdateType": "Immutable"
559
+ },
560
+ "DynamoDBStreamReadPolicy": {
561
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
562
+ "Type": "TableStreamSAMPT",
563
+ "UpdateType": "Immutable"
564
+ },
565
+ "EC2DescribePolicy": {
566
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
567
+ "Type": "EmptySAMPT",
568
+ "UpdateType": "Immutable"
569
+ },
570
+ "ElasticsearchHttpPostPolicy": {
571
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
572
+ "Type": "DomainSAMPT",
573
+ "UpdateType": "Immutable"
574
+ },
575
+ "FilterLogEventsPolicy": {
576
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
577
+ "Type": "LogGroupSAMPT",
578
+ "UpdateType": "Immutable"
579
+ },
580
+ "KMSDecryptPolicy": {
581
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
582
+ "Type": "KeySAMPT",
583
+ "UpdateType": "Immutable"
584
+ },
585
+ "KinesisCrudPolicy": {
586
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
587
+ "Type": "StreamSAMPT",
588
+ "UpdateType": "Immutable"
589
+ },
590
+ "KinesisStreamReadPolicy": {
591
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
592
+ "Type": "StreamSAMPT",
593
+ "UpdateType": "Immutable"
594
+ },
595
+ "LambdaInvokePolicy": {
596
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
597
+ "Type": "FunctionSAMPT",
598
+ "UpdateType": "Immutable"
599
+ },
600
+ "RekognitionDetectOnlyPolicy": {
601
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
602
+ "Type": "EmptySAMPT",
603
+ "UpdateType": "Immutable"
604
+ },
605
+ "RekognitionLabelsPolicy": {
606
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
607
+ "Type": "EmptySAMPT",
608
+ "UpdateType": "Immutable"
609
+ },
610
+ "RekognitionNoDataAccessPolicy": {
611
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
612
+ "Type": "CollectionSAMPT",
613
+ "UpdateType": "Immutable"
614
+ },
615
+ "RekognitionReadPolicy": {
616
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
617
+ "Type": "CollectionSAMPT",
618
+ "UpdateType": "Immutable"
619
+ },
620
+ "RekognitionWriteOnlyAccessPolicy": {
621
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
622
+ "Type": "CollectionSAMPT",
623
+ "UpdateType": "Immutable"
624
+ },
625
+ "S3CrudPolicy": {
626
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
627
+ "Type": "BucketSAMPT",
628
+ "UpdateType": "Immutable"
629
+ },
630
+ "S3ReadPolicy": {
631
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
632
+ "Type": "BucketSAMPT",
633
+ "UpdateType": "Immutable"
634
+ },
635
+ "SESBulkTemplatedCrudPolicy": {
636
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
637
+ "Type": "IdentitySAMPT",
638
+ "UpdateType": "Immutable"
639
+ },
640
+ "SESCrudPolicy": {
641
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
642
+ "Type": "IdentitySAMPT",
643
+ "UpdateType": "Immutable"
644
+ },
645
+ "SESEmailTemplateCrudPolicy": {
646
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
647
+ "Type": "EmptySAMPT",
648
+ "UpdateType": "Immutable"
649
+ },
650
+ "SESSendBouncePolicy": {
651
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
652
+ "Type": "IdentitySAMPT",
653
+ "UpdateType": "Immutable"
654
+ },
655
+ "SNSCrudPolicy": {
656
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
657
+ "Type": "TopicSAMPT",
658
+ "UpdateType": "Immutable"
659
+ },
660
+ "SNSPublishMessagePolicy": {
661
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
662
+ "Type": "TopicSAMPT",
663
+ "UpdateType": "Immutable"
664
+ },
665
+ "SQSPollerPolicy": {
666
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
667
+ "Type": "QueueSAMPT",
668
+ "UpdateType": "Immutable"
669
+ },
670
+ "SQSSendMessagePolicy": {
671
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
672
+ "Type": "QueueSAMPT",
673
+ "UpdateType": "Immutable"
674
+ },
675
+ "StepFunctionsExecutionPolicy": {
676
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
677
+ "Type": "StateMachineSAMPT",
678
+ "UpdateType": "Immutable"
679
+ },
680
+ "VPCAccessPolicy": {
681
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
682
+ "Type": "EmptySAMPT",
683
+ "UpdateType": "Immutable"
684
+ }
685
+ }
686
+ },
687
+ "AWS::Serverless::Function.SNSEvent": {
688
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns",
689
+ "Properties": {
690
+ "Topic": {
691
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns",
692
+ "PrimitiveType": "String",
693
+ "Required": true,
694
+ "UpdateType": "Immutable"
695
+ }
696
+ }
697
+ },
698
+ "AWS::Serverless::Function.SQSEvent": {
699
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
700
+ "Properties": {
701
+ "BatchSize": {
702
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
703
+ "PrimitiveType": "Integer",
704
+ "Required": false,
705
+ "UpdateType": "Immutable"
706
+ },
707
+ "Enabled": {
708
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
709
+ "PrimitiveType": "Boolean",
710
+ "Required": false,
711
+ "UpdateType": "Immutable"
712
+ },
713
+ "Queue": {
714
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs",
715
+ "PrimitiveType": "String",
716
+ "Required": true,
717
+ "UpdateType": "Immutable"
718
+ }
719
+ }
720
+ },
721
+ "AWS::Serverless::Function.ScheduleEvent": {
722
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
723
+ "Properties": {
724
+ "Input": {
725
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
726
+ "PrimitiveType": "String",
727
+ "Required": false,
728
+ "UpdateType": "Immutable"
729
+ },
730
+ "Schedule": {
731
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule",
732
+ "PrimitiveType": "String",
733
+ "Required": true,
734
+ "UpdateType": "Immutable"
735
+ }
736
+ }
737
+ },
738
+ "AWS::Serverless::Function.StateMachineSAMPT": {
739
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
740
+ "Properties": {
741
+ "StateMachineName": {
742
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
743
+ "PrimitiveType": "String",
744
+ "Required": true,
745
+ "UpdateType": "Immutable"
746
+ }
747
+ }
748
+ },
749
+ "AWS::Serverless::Function.StreamSAMPT": {
750
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
751
+ "Properties": {
752
+ "StreamName": {
753
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
754
+ "PrimitiveType": "String",
755
+ "Required": true,
756
+ "UpdateType": "Immutable"
757
+ }
758
+ }
759
+ },
760
+ "AWS::Serverless::Function.TableSAMPT": {
761
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
762
+ "Properties": {
763
+ "TableName": {
764
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
765
+ "PrimitiveType": "String",
766
+ "Required": true,
767
+ "UpdateType": "Immutable"
768
+ }
769
+ }
770
+ },
771
+ "AWS::Serverless::Function.TableStreamSAMPT": {
772
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
773
+ "Properties": {
774
+ "StreamName": {
775
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
776
+ "PrimitiveType": "String",
777
+ "Required": true,
778
+ "UpdateType": "Immutable"
779
+ },
780
+ "TableName": {
781
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
782
+ "PrimitiveType": "String",
783
+ "Required": true,
784
+ "UpdateType": "Immutable"
785
+ }
786
+ }
787
+ },
788
+ "AWS::Serverless::Function.TopicSAMPT": {
789
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
790
+ "Properties": {
791
+ "TopicName": {
792
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst",
793
+ "PrimitiveType": "String",
794
+ "Required": true,
795
+ "UpdateType": "Immutable"
796
+ }
797
+ }
798
+ },
799
+ "AWS::Serverless::Function.VpcConfig": {
800
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
801
+ "Properties": {
802
+ "SecurityGroupIds": {
803
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
804
+ "PrimitiveItemType": "String",
805
+ "Required": true,
806
+ "Type": "List",
807
+ "UpdateType": "Immutable"
808
+ },
809
+ "SubnetIds": {
810
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html",
811
+ "PrimitiveItemType": "String",
812
+ "Required": true,
813
+ "Type": "List",
814
+ "UpdateType": "Immutable"
815
+ }
816
+ }
817
+ },
818
+ "AWS::Serverless::SimpleTable.PrimaryKey": {
819
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
820
+ "Properties": {
821
+ "Name": {
822
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
823
+ "PrimitiveType": "String",
824
+ "Required": false,
825
+ "UpdateType": "Immutable"
826
+ },
827
+ "Type": {
828
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
829
+ "PrimitiveType": "String",
830
+ "Required": true,
831
+ "UpdateType": "Immutable"
832
+ }
833
+ }
834
+ },
835
+ "AWS::Serverless::SimpleTable.ProvisionedThroughput": {
836
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
837
+ "Properties": {
838
+ "ReadCapacityUnits": {
839
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
840
+ "PrimitiveType": "Integer",
841
+ "Required": false,
842
+ "UpdateType": "Immutable"
843
+ },
844
+ "WriteCapacityUnits": {
845
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
846
+ "PrimitiveType": "Integer",
847
+ "Required": true,
848
+ "UpdateType": "Immutable"
849
+ }
850
+ }
851
+ },
852
+ "AWS::Serverless::SimpleTable.SSESpecification": {
853
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html",
854
+ "Properties": {
855
+ "SSEEnabled": {
856
+ "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html",
857
+ "PrimitiveType": "Boolean",
858
+ "Required": false,
859
+ "UpdateType": "Immutable"
860
+ }
861
+ }
862
+ }
863
+ },
864
+ "ResourceSpecificationTransform": "AWS::Serverless-2016-10-31",
865
+ "ResourceSpecificationVersion": "2016-10-31",
866
+ "ResourceTypes": {
867
+ "AWS::Serverless::Api": {
868
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
869
+ "Properties": {
870
+ "AccessLogSetting": {
871
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
872
+ "Required": false,
873
+ "Type": "AccessLogSetting",
874
+ "UpdateType": "Immutable"
875
+ },
876
+ "Auth": {
877
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
878
+ "Required": false,
879
+ "Type": "Auth",
880
+ "UpdateType": "Immutable"
881
+ },
882
+ "BinaryMediaTypes": {
883
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
884
+ "PrimitiveItemType": "String",
885
+ "Required": false,
886
+ "Type": "List",
887
+ "UpdateType": "Immutable"
888
+ },
889
+ "CacheClusterEnabled": {
890
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
891
+ "PrimitiveType": "Boolean",
892
+ "Required": false,
893
+ "UpdateType": "Immutable"
894
+ },
895
+ "CacheClusterSize": {
896
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
897
+ "PrimitiveType": "String",
898
+ "Required": false,
899
+ "UpdateType": "Immutable"
900
+ },
901
+ "Cors": {
902
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
903
+ "PrimitiveTypes": [
904
+ "String"
905
+ ],
906
+ "Required": false,
907
+ "Types": [
908
+ "CorsConfiguration"
909
+ ],
910
+ "UpdateType": "Immutable"
911
+ },
912
+ "DefinitionBody": {
913
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
914
+ "PrimitiveType": "Json",
915
+ "Required": false,
916
+ "UpdateType": "Immutable"
917
+ },
918
+ "DefinitionUri": {
919
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
920
+ "PrimitiveTypes": [
921
+ "String"
922
+ ],
923
+ "Required": false,
924
+ "Types": [
925
+ "S3Location"
926
+ ],
927
+ "UpdateType": "Immutable"
928
+ },
929
+ "EndpointConfiguration": {
930
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
931
+ "PrimitiveType": "String",
932
+ "Required": false,
933
+ "UpdateType": "Immutable"
934
+ },
935
+ "MethodSettings": {
936
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
937
+ "PrimitiveItemType": "Json",
938
+ "Required": false,
939
+ "Type": "List",
940
+ "UpdateType": "Immutable"
941
+ },
942
+ "Name": {
943
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
944
+ "PrimitiveType": "String",
945
+ "Required": false,
946
+ "UpdateType": "Immutable"
947
+ },
948
+ "StageName": {
949
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
950
+ "PrimitiveType": "String",
951
+ "Required": true,
952
+ "UpdateType": "Immutable"
953
+ },
954
+ "TracingEnabled": {
955
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
956
+ "PrimitiveType": "Boolean",
957
+ "Required": false,
958
+ "UpdateType": "Immutable"
959
+ },
960
+ "Variables": {
961
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi",
962
+ "PrimitiveItemType": "String",
963
+ "Required": false,
964
+ "Type": "Map",
965
+ "UpdateType": "Immutable"
966
+ }
967
+ }
968
+ },
969
+ "AWS::Serverless::Application": {
970
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
971
+ "Properties": {
972
+ "Location": {
973
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
974
+ "PrimitiveTypes": [
975
+ "String"
976
+ ],
977
+ "Required": true,
978
+ "Types": [
979
+ "ApplicationLocation"
980
+ ],
981
+ "UpdateType": "Immutable"
982
+ },
983
+ "NotificationArns": {
984
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
985
+ "PrimitiveItemType": "String",
986
+ "Required": false,
987
+ "Type": "List",
988
+ "UpdateType": "Immutable"
989
+ },
990
+ "Parameters": {
991
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
992
+ "PrimitiveItemType": "String",
993
+ "Required": false,
994
+ "Type": "Map",
995
+ "UpdateType": "Immutable"
996
+ },
997
+ "Tags": {
998
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
999
+ "PrimitiveItemType": "String",
1000
+ "Required": false,
1001
+ "Type": "Map",
1002
+ "UpdateType": "Immutable"
1003
+ },
1004
+ "TimeoutInMinutes": {
1005
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication",
1006
+ "PrimitiveType": "Integer",
1007
+ "Required": false,
1008
+ "UpdateType": "Immutable"
1009
+ }
1010
+ }
1011
+ },
1012
+ "AWS::Serverless::Function": {
1013
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1014
+ "Properties": {
1015
+ "AutoPublishAlias": {
1016
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1017
+ "PrimitiveType": "String",
1018
+ "Required": false,
1019
+ "UpdateType": "Immutable"
1020
+ },
1021
+ "CodeUri": {
1022
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1023
+ "PrimitiveTypes": [
1024
+ "String"
1025
+ ],
1026
+ "Required": true,
1027
+ "Types": [
1028
+ "S3Location"
1029
+ ],
1030
+ "UpdateType": "Immutable"
1031
+ },
1032
+ "DeadLetterQueue": {
1033
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1034
+ "Required": false,
1035
+ "Type": "DeadLetterQueue",
1036
+ "UpdateType": "Immutable"
1037
+ },
1038
+ "DeploymentPreference": {
1039
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1040
+ "Required": false,
1041
+ "Type": "DeploymentPreference",
1042
+ "UpdateType": "Immutable"
1043
+ },
1044
+ "Description": {
1045
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1046
+ "PrimitiveType": "String",
1047
+ "Required": false,
1048
+ "UpdateType": "Immutable"
1049
+ },
1050
+ "Environment": {
1051
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1052
+ "Required": false,
1053
+ "Type": "FunctionEnvironment",
1054
+ "UpdateType": "Immutable"
1055
+ },
1056
+ "Events": {
1057
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1058
+ "ItemType": "EventSource",
1059
+ "Required": false,
1060
+ "Type": "Map",
1061
+ "UpdateType": "Immutable"
1062
+ },
1063
+ "FunctionName": {
1064
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1065
+ "PrimitiveType": "String",
1066
+ "Required": false,
1067
+ "UpdateType": "Immutable"
1068
+ },
1069
+ "Handler": {
1070
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1071
+ "PrimitiveType": "String",
1072
+ "Required": true,
1073
+ "UpdateType": "Immutable"
1074
+ },
1075
+ "KmsKeyArn": {
1076
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1077
+ "PrimitiveType": "String",
1078
+ "Required": false,
1079
+ "UpdateType": "Immutable"
1080
+ },
1081
+ "Layers": {
1082
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1083
+ "PrimitiveItemType": "String",
1084
+ "Required": false,
1085
+ "Type": "List",
1086
+ "UpdateType": "Immutable"
1087
+ },
1088
+ "MemorySize": {
1089
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1090
+ "PrimitiveType": "Integer",
1091
+ "Required": false,
1092
+ "UpdateType": "Immutable"
1093
+ },
1094
+ "PermissionsBoundary": {
1095
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1096
+ "PrimitiveType": "String",
1097
+ "Required": false,
1098
+ "UpdateType": "Immutable"
1099
+ },
1100
+ "Policies": {
1101
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1102
+ "ItemTypes": [
1103
+ "IAMPolicyDocument",
1104
+ "SAMPolicyTemplate"
1105
+ ],
1106
+ "PrimitiveItemTypes": [
1107
+ "String"
1108
+ ],
1109
+ "PrimitiveTypes": [
1110
+ "String"
1111
+ ],
1112
+ "Required": false,
1113
+ "Types": [
1114
+ "IAMPolicyDocument"
1115
+ ],
1116
+ "UpdateType": "Immutable"
1117
+ },
1118
+ "ReservedConcurrentExecutions": {
1119
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1120
+ "PrimitiveType": "Integer",
1121
+ "Required": false,
1122
+ "UpdateType": "Immutable"
1123
+ },
1124
+ "Role": {
1125
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1126
+ "PrimitiveType": "String",
1127
+ "Required": false,
1128
+ "UpdateType": "Immutable"
1129
+ },
1130
+ "Runtime": {
1131
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1132
+ "PrimitiveType": "String",
1133
+ "Required": true,
1134
+ "UpdateType": "Immutable"
1135
+ },
1136
+ "Tags": {
1137
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1138
+ "PrimitiveItemType": "String",
1139
+ "Required": false,
1140
+ "Type": "Map",
1141
+ "UpdateType": "Immutable"
1142
+ },
1143
+ "Timeout": {
1144
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1145
+ "PrimitiveType": "Integer",
1146
+ "Required": false,
1147
+ "UpdateType": "Immutable"
1148
+ },
1149
+ "Tracing": {
1150
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1151
+ "PrimitiveType": "String",
1152
+ "Required": false,
1153
+ "UpdateType": "Immutable"
1154
+ },
1155
+ "VpcConfig": {
1156
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction",
1157
+ "Required": false,
1158
+ "Type": "VpcConfig",
1159
+ "UpdateType": "Immutable"
1160
+ }
1161
+ }
1162
+ },
1163
+ "AWS::Serverless::LayerVersion": {
1164
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1165
+ "Properties": {
1166
+ "CompatibleRuntimes": {
1167
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1168
+ "PrimitiveItemType": "String",
1169
+ "Required": false,
1170
+ "Type": "List",
1171
+ "UpdateType": "Immutable"
1172
+ },
1173
+ "ContentUri": {
1174
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1175
+ "PrimitiveType": "String",
1176
+ "Required": false,
1177
+ "UpdateType": "Immutable"
1178
+ },
1179
+ "Description": {
1180
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1181
+ "PrimitiveType": "String",
1182
+ "Required": false,
1183
+ "UpdateType": "Immutable"
1184
+ },
1185
+ "LayerName": {
1186
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1187
+ "PrimitiveType": "String",
1188
+ "Required": false,
1189
+ "UpdateType": "Immutable"
1190
+ },
1191
+ "LicenseInfo": {
1192
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1193
+ "PrimitiveType": "String",
1194
+ "Required": false,
1195
+ "UpdateType": "Immutable"
1196
+ },
1197
+ "RetentionPolicy": {
1198
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion",
1199
+ "PrimitiveType": "String",
1200
+ "Required": false,
1201
+ "UpdateType": "Immutable"
1202
+ }
1203
+ }
1204
+ },
1205
+ "AWS::Serverless::SimpleTable": {
1206
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
1207
+ "Properties": {
1208
+ "PrimaryKey": {
1209
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object",
1210
+ "Required": false,
1211
+ "Type": "PrimaryKey",
1212
+ "UpdateType": "Immutable"
1213
+ },
1214
+ "ProvisionedThroughput": {
1215
+ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html",
1216
+ "Required": false,
1217
+ "Type": "ProvisionedThroughput",
1218
+ "UpdateType": "Immutable"
1219
+ },
1220
+ "SSESpecification": {
1221
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
1222
+ "Required": false,
1223
+ "Type": "SSESpecification",
1224
+ "UpdateType": "Immutable"
1225
+ },
1226
+ "TableName": {
1227
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
1228
+ "PrimitiveType": "String",
1229
+ "Required": false,
1230
+ "UpdateType": "Immutable"
1231
+ },
1232
+ "Tags": {
1233
+ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable",
1234
+ "PrimitiveItemType": "String",
1235
+ "Required": false,
1236
+ "Type": "Map",
1237
+ "UpdateType": "Immutable"
1238
+ }
1239
+ }
1240
+ }
1241
+ }
1242
+ }