cfndsl 1.3.9 → 1.4.0
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 +4 -4
- data/CHANGELOG.md +10 -2
- data/lib/cfndsl/aws/resource_specification.json +69417 -40041
- data/lib/cfndsl/types.rb +5 -5
- data/lib/cfndsl/version.rb +1 -1
- data/spec/aws/nested_arrays_spec.rb +19 -0
- metadata +2 -2
data/lib/cfndsl/types.rb
CHANGED
@@ -14,7 +14,10 @@ module CfnDsl
|
|
14
14
|
# and not all resources use the general form
|
15
15
|
if property_info['ItemType'] == 'Tag'
|
16
16
|
['Tag']
|
17
|
-
elsif (property_info['
|
17
|
+
elsif (property_info['Type'] == 'List') && %w[Json List].include?(property_info['ItemType'])
|
18
|
+
# List of arbitrary json
|
19
|
+
# or List of list eg - AWS::Rekognition::StreamProcessor.PolygonRegionsOfInterest
|
20
|
+
# which is actually List of List of embedded type 'Point', but this is not properly represented in the schema
|
18
21
|
['Json']
|
19
22
|
else
|
20
23
|
Array(root_name + property_info['ItemType'])
|
@@ -43,8 +46,6 @@ module CfnDsl
|
|
43
46
|
Array(property_info['PrimitiveItemType'])
|
44
47
|
elsif property_info['PrimitiveTypes']
|
45
48
|
property_info['PrimitiveTypes'][0]
|
46
|
-
elsif property_info['ItemType'] == 'List'
|
47
|
-
'List'
|
48
49
|
elsif property_info['ItemType']
|
49
50
|
extract_list_type(resource_name.split('::').join, property_info)
|
50
51
|
elsif property_info['Type']
|
@@ -75,8 +76,7 @@ module CfnDsl
|
|
75
76
|
'Double' => 'Double',
|
76
77
|
'Timestamp' => 'Timestamp',
|
77
78
|
'Map' => 'Map',
|
78
|
-
'Long' => 'Long'
|
79
|
-
'List' => 'List'
|
79
|
+
'Long' => 'Long'
|
80
80
|
}
|
81
81
|
spec.each_with_object(primitive_types) do |(property_name, property_info), types|
|
82
82
|
# In order to name things uniquely and allow for connections
|
data/lib/cfndsl/version.rb
CHANGED
@@ -88,6 +88,25 @@ describe CfnDsl::CloudFormationTemplate do
|
|
88
88
|
end
|
89
89
|
|
90
90
|
describe 'Top level Lists' do
|
91
|
+
it 'can add a specific type' do
|
92
|
+
template.S3_Bucket('Bucket') do
|
93
|
+
InventoryConfiguration do
|
94
|
+
Enabled true
|
95
|
+
end
|
96
|
+
end
|
97
|
+
expect(template.to_json).to include('"InventoryConfigurations":[{"Enabled":true}]')
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'handles List of List as arbitrary json' do
|
101
|
+
skip 'requires spec 0.69' unless template.respond_to?(:Rekognition_StreamProcessor)
|
102
|
+
regions = [[{ X: 0.2, Y: 0.4 }, { X: 0.1, Y: 0.5 }, { X: 0.1, Y: 0.9 }], [{ X: 0.6, Y: 0.3 }, { "X": 0.2, "Y": 0.7 }, { "X": 0.1, "Y": 0.1 }]]
|
103
|
+
template.Rekognition_StreamProcessor('StreamProcessor') do
|
104
|
+
# Ouch this has a nasty singular form too! strictly PolygonRegionOfInterest should add one list
|
105
|
+
PolygonRegionsOfInterest regions
|
106
|
+
end
|
107
|
+
expect(template.to_json).to include("\"PolygonRegionsOfInterest\":#{regions.to_json}")
|
108
|
+
end
|
109
|
+
|
91
110
|
it 'appends item if singular form != plural form is passed a single item' do
|
92
111
|
template.AutoScaling_AutoScalingGroup('ASG') do
|
93
112
|
AvailabilityZone 'region-2a'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfndsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Jack
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2022-
|
14
|
+
date: 2022-08-28 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|