cfn-model 0.6.1 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0192739b7367787ee3b788d075ce2753c618bbf5962542f9612b0799c458c4ae'
|
4
|
+
data.tar.gz: 0cdec84887e934a1794ba04a97bf7dee42946d668e845573908d801306fc6dc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bab8d35d13d44789d734cceba9289182a9673821d11d8b6e5db34c06d7a7af6ba25db9f5522ac5bfae7ae03d1b39ce79488dc56ba0a38c5d8afec978ab39ae2
|
7
|
+
data.tar.gz: 143f2f5c176f14c1c4c568e5de4be4baf6f289e256daf6197f30fa1310ce770144deeb889cc7b4292355051e802c05a0d30206b0e73ceb059d891e252e407c5c
|
@@ -184,6 +184,7 @@ class CfnParser
|
|
184
184
|
parameter = Parameter.new
|
185
185
|
parameter.id = parameter_name
|
186
186
|
parameter.type = parameter_hash['Type']
|
187
|
+
parameter.logical_resource_id = parameter_name
|
187
188
|
|
188
189
|
parameter_hash.each do |property_name, property_value|
|
189
190
|
next if %w(Type).include? property_name
|
@@ -191,6 +192,7 @@ class CfnParser
|
|
191
192
|
end
|
192
193
|
|
193
194
|
cfn_model.parameters[parameter_name] = parameter
|
195
|
+
cfn_model.line_numbers[parameter_name] = parameter_hash['Type']['line']
|
194
196
|
end
|
195
197
|
cfn_model
|
196
198
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
class CfnModel
|
4
4
|
class Transforms
|
5
5
|
# Handle transformation of model elements performed by the
|
6
|
-
# Serverless
|
6
|
+
# Serverless transform, see
|
7
7
|
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
|
8
8
|
class Serverless
|
9
9
|
def perform_transform(cfn_hash)
|
@@ -93,6 +93,7 @@ class CfnModel
|
|
93
93
|
handler: serverless_function_property(serverless_function, cfn_hash, 'Handler'),
|
94
94
|
role: format_function_role(serverless_function, fn_name),
|
95
95
|
runtime: serverless_function_property(serverless_function, cfn_hash, 'Runtime'),
|
96
|
+
reserved_concurrent_executions: serverless_function_property(serverless_function, cfn_hash, 'ReservedConcurrentExecutions'),
|
96
97
|
with_line_numbers: with_line_numbers
|
97
98
|
}
|
98
99
|
|
@@ -107,6 +108,8 @@ class CfnModel
|
|
107
108
|
def replace_serverless_function(cfn_hash, resource_name, with_line_numbers)
|
108
109
|
serverless_function = cfn_hash['Resources'][resource_name]
|
109
110
|
|
111
|
+
original_line_number = serverless_function['Type']['line']
|
112
|
+
|
110
113
|
lambda_fn_params = serverless_function_properties(cfn_hash,
|
111
114
|
serverless_function,
|
112
115
|
resource_name,
|
@@ -118,15 +121,18 @@ class CfnModel
|
|
118
121
|
code_key: lambda_fn_params[:code_key],
|
119
122
|
role: lambda_fn_params[:role],
|
120
123
|
runtime: lambda_fn_params[:runtime],
|
124
|
+
reserved_concurrent_executions: lambda_fn_params[:reserved_concurrent_executions],
|
125
|
+
line_number: original_line_number,
|
121
126
|
with_line_numbers: lambda_fn_params[:with_line_numbers]
|
122
127
|
)
|
123
128
|
unless serverless_function['Properties']['Role']
|
124
129
|
cfn_hash['Resources'][resource_name + 'Role'] = function_role(serverless_function,
|
125
130
|
resource_name,
|
131
|
+
original_line_number,
|
126
132
|
with_line_numbers)
|
127
133
|
end
|
128
134
|
|
129
|
-
transform_function_events(cfn_hash, serverless_function, resource_name, with_line_numbers) if \
|
135
|
+
transform_function_events(cfn_hash, serverless_function, resource_name, original_line_number, with_line_numbers) if \
|
130
136
|
serverless_function['Properties']['Events']
|
131
137
|
|
132
138
|
# Handle passing along cfn-nag specific metadata. SAM itself does not support metadata during transformation.
|
@@ -154,9 +160,9 @@ class CfnModel
|
|
154
160
|
|
155
161
|
# Return the hash structure of the '<function_name>Role'
|
156
162
|
# AWS::IAM::Role resource as created by Serverless transform
|
157
|
-
def function_role(serverless_function, function_name, with_line_numbers)
|
163
|
+
def function_role(serverless_function, function_name, line_number, with_line_numbers)
|
158
164
|
fn_role = {
|
159
|
-
'Type' => format_resource_type('AWS::IAM::Role',
|
165
|
+
'Type' => format_resource_type('AWS::IAM::Role', line_number, with_line_numbers),
|
160
166
|
'Properties' => {
|
161
167
|
'ManagedPolicyArns' => function_role_managed_policies(serverless_function['Properties']),
|
162
168
|
'AssumeRolePolicyDocument' => lambda_service_can_assume_role
|
@@ -223,30 +229,34 @@ class CfnModel
|
|
223
229
|
code_key: nil,
|
224
230
|
role:,
|
225
231
|
runtime:,
|
232
|
+
reserved_concurrent_executions:,
|
233
|
+
line_number:,
|
226
234
|
with_line_numbers: false)
|
227
235
|
fn_resource = {
|
228
|
-
'Type' => format_resource_type('AWS::Lambda::Function',
|
236
|
+
'Type' => format_resource_type('AWS::Lambda::Function', line_number, with_line_numbers),
|
229
237
|
'Properties' => {
|
230
238
|
'Handler' => handler,
|
231
239
|
'Role' => role,
|
232
240
|
'Runtime' => runtime
|
233
241
|
}
|
234
242
|
}
|
243
|
+
fn_resource['Properties']['ReservedConcurrentExecutions'] = reserved_concurrent_executions unless reserved_concurrent_executions.nil?
|
244
|
+
|
235
245
|
lambda_function_code(fn_resource, code_bucket, code_key)
|
236
246
|
end
|
237
247
|
|
238
248
|
# Return the Event structure of a AWS::Lambda::Function as created
|
239
249
|
# by Serverless transform
|
240
|
-
def transform_function_events(cfn_hash, serverless_function, function_name, with_line_numbers)
|
250
|
+
def transform_function_events(cfn_hash, serverless_function, function_name, line_number, with_line_numbers)
|
241
251
|
serverless_function['Properties']['Events'].each do |_, event|
|
242
|
-
serverlessrestapi_resources(cfn_hash, event, function_name, with_line_numbers) if \
|
252
|
+
serverlessrestapi_resources(cfn_hash, event, function_name, line_number, with_line_numbers) if \
|
243
253
|
matching_resource_type?(event['Type'], 'Api')
|
244
254
|
end
|
245
255
|
end
|
246
256
|
|
247
|
-
def serverlessrestapi_resources(cfn_hash, event, func_name, with_line_numbers)
|
257
|
+
def serverlessrestapi_resources(cfn_hash, event, func_name, line_number, with_line_numbers)
|
248
258
|
# ServerlessRestApi
|
249
|
-
cfn_hash['Resources']['ServerlessRestApi'] ||= serverlessrestapi_base with_line_numbers
|
259
|
+
cfn_hash['Resources']['ServerlessRestApi'] ||= serverlessrestapi_base line_number, with_line_numbers
|
250
260
|
add_serverlessrestapi_event(
|
251
261
|
cfn_hash['Resources']['ServerlessRestApi']['Properties']['Body']['paths'],
|
252
262
|
event,
|
@@ -254,15 +264,15 @@ class CfnModel
|
|
254
264
|
)
|
255
265
|
|
256
266
|
# ServerlessRestApiDeployment
|
257
|
-
cfn_hash['Resources']['ServerlessRestApiDeployment']
|
267
|
+
cfn_hash['Resources']['ServerlessRestApiDeployment'] ||= serverlessrestapi_deployment line_number, with_line_numbers
|
258
268
|
|
259
269
|
# ServerlessRestApiProdStage
|
260
|
-
cfn_hash['Resources']['ServerlessRestApiProdStage']
|
270
|
+
cfn_hash['Resources']['ServerlessRestApiProdStage'] ||= serverlessrestapi_stage line_number, with_line_numbers
|
261
271
|
end
|
262
272
|
|
263
|
-
def serverlessrestapi_base(
|
273
|
+
def serverlessrestapi_base(line_number, with_line_numbers)
|
264
274
|
{
|
265
|
-
'Type' => format_resource_type('AWS::ApiGateway::RestApi',
|
275
|
+
'Type' => format_resource_type('AWS::ApiGateway::RestApi', line_number, with_line_numbers),
|
266
276
|
'Properties' => {
|
267
277
|
'Body' => {
|
268
278
|
'info' => {
|
@@ -289,9 +299,9 @@ class CfnModel
|
|
289
299
|
}
|
290
300
|
end
|
291
301
|
|
292
|
-
def serverlessrestapi_deployment(
|
302
|
+
def serverlessrestapi_deployment(line_number, with_line_numbers)
|
293
303
|
{
|
294
|
-
'Type' => format_resource_type('AWS::ApiGateway::Deployment',
|
304
|
+
'Type' => format_resource_type('AWS::ApiGateway::Deployment', line_number, with_line_numbers),
|
295
305
|
'Properties' => {
|
296
306
|
'Description' => 'Generated by cfn-model',
|
297
307
|
'RestApiId' => { 'Ref' => 'ServerlessRestApi' },
|
@@ -306,9 +316,9 @@ class CfnModel
|
|
306
316
|
}
|
307
317
|
end
|
308
318
|
|
309
|
-
def serverlessrestapi_stage(
|
319
|
+
def serverlessrestapi_stage(line_number, with_line_numbers)
|
310
320
|
{
|
311
|
-
'Type' => format_resource_type('AWS::ApiGateway::Stage',
|
321
|
+
'Type' => format_resource_type('AWS::ApiGateway::Stage', line_number, with_line_numbers),
|
312
322
|
'Properties' => {
|
313
323
|
'DeploymentId' => { 'Ref' => 'ServerlessRestApiDeployment' },
|
314
324
|
'RestApiId' => { 'Ref' => 'ServerlessRestApi' },
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfn-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kascic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.4'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.4'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: rubocop
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +52,20 @@ dependencies:
|
|
24
52
|
- - ">="
|
25
53
|
- !ruby/object:Gem::Version
|
26
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.11'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.11'
|
27
69
|
- !ruby/object:Gem::Dependency
|
28
70
|
name: kwalify
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,9 +193,9 @@ licenses:
|
|
151
193
|
metadata:
|
152
194
|
bug_tracker_uri: https://github.com/stelligent/cfn-model/issues
|
153
195
|
changelog_uri: https://github.com/stelligent/cfn-model/releases
|
154
|
-
documentation_uri: https://www.rubydoc.info/gems/cfn-model/0.6.
|
196
|
+
documentation_uri: https://www.rubydoc.info/gems/cfn-model/0.6.5
|
155
197
|
homepage_uri: https://github.com/stelligent/cfn-model
|
156
|
-
source_code_uri: https://github.com/stelligent/cfn-model/tree/v0.6.
|
198
|
+
source_code_uri: https://github.com/stelligent/cfn-model/tree/v0.6.5
|
157
199
|
post_install_message:
|
158
200
|
rdoc_options: []
|
159
201
|
require_paths:
|
@@ -170,8 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
212
|
- !ruby/object:Gem::Version
|
171
213
|
version: '0'
|
172
214
|
requirements: []
|
173
|
-
|
174
|
-
rubygems_version: 2.7.6
|
215
|
+
rubygems_version: 3.1.2
|
175
216
|
signing_key:
|
176
217
|
specification_version: 4
|
177
218
|
summary: cfn-model
|