kumogata-template 0.0.26 → 0.0.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be4c7caa3556239afc3151427c364e99c744aff3
4
- data.tar.gz: 1de25309a11916e14ed6f428bdc2aeb4bb6b9e17
3
+ metadata.gz: 2383c2d571276248b35f727736cd4aea37204b62
4
+ data.tar.gz: e33971d8091ebf93f0bb9b64928e9466e074225c
5
5
  SHA512:
6
- metadata.gz: 220f97ebfde87403b34dbd4f9d82a913e1d2b65e2897006defae79ddb5546f84e07eba8a2da49a06459080e940ebf9f206babe179dc42722b0b8eda8d06d237d
7
- data.tar.gz: 919dcf05d5dd0e5405d952c9f577570576e80da40f1efe17e4684a460d6b769a85d94b59c4ed2ee820bd974c4ae7e559cbd75058d09cf7e50b9fd21151f022a3
6
+ metadata.gz: 16d1afa6529932af0d96e5319637110cd09ea507838d3b207e685d7ec4f405bd99ec16e80291772531cb11d6a7ef705517dabbc55df0131cea9ea39674e95edf
7
+ data.tar.gz: '01658b9dc49640b269209d5f9aaee2abcbf8f664c2f258c3dc6c6674c20f0fcad114161f33dce88701b0bca049ce5c3e0905d6d32d1bc6b74afabf770fd616b8'
data/.travis.yml CHANGED
@@ -2,7 +2,7 @@ sudo: false
2
2
  language: ruby
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.3.1
5
+ - 2.3.4
6
6
  gemfile: n0ts/kumogata-template/Gemfile
7
7
  script:
8
8
  - bundle install --path vendor/bundle
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] = 'YES'
4
+
3
5
  # Specify your gem's dependencies in kumogata.gemspec
4
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,20 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kumogata-template (0.0.24)
4
+ kumogata-template (0.0.27)
5
5
  aws-sdk (~> 2.3)
6
6
  kumogata (= 0.5.12)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- aws-sdk (2.9.15)
12
- aws-sdk-resources (= 2.9.15)
13
- aws-sdk-core (2.9.15)
11
+ aws-sdk (2.9.25)
12
+ aws-sdk-resources (= 2.9.25)
13
+ aws-sdk-core (2.9.25)
14
14
  aws-sigv4 (~> 1.0)
15
15
  jmespath (~> 1.0)
16
- aws-sdk-resources (2.9.15)
17
- aws-sdk-core (= 2.9.15)
16
+ aws-sdk-resources (2.9.25)
17
+ aws-sdk-core (= 2.9.25)
18
18
  aws-sdk-v1 (1.67.0)
19
19
  json (~> 1.4)
20
20
  nokogiri (~> 1)
@@ -50,7 +50,7 @@ GEM
50
50
  uuidtools
51
51
  libv8 (3.16.14.19)
52
52
  mini_portile2 (2.0.0)
53
- minitest (5.10.1)
53
+ minitest (5.10.2)
54
54
  net-ssh (4.1.0)
55
55
  nokogiri (1.6.7.2)
56
56
  mini_portile2 (~> 2.0.0.rc2)
@@ -62,7 +62,7 @@ GEM
62
62
  therubyracer (0.12.2)
63
63
  libv8 (~> 3.16.14.0)
64
64
  ref
65
- tins (1.13.2)
65
+ tins (1.14.0)
66
66
  uuidtools (2.1.5)
67
67
 
68
68
  PLATFORMS
@@ -75,4 +75,4 @@ DEPENDENCIES
75
75
  rake (~> 11.1)
76
76
 
77
77
  BUNDLED WITH
78
- 1.13.7
78
+ 1.14.6
@@ -20,6 +20,7 @@ require 'kumogata/template/helper'
20
20
  require 'kumogata/template/iam'
21
21
  require 'kumogata/template/lambda'
22
22
  require 'kumogata/template/logs'
23
+ require 'kumogata/template/redshift'
23
24
  require 'kumogata/template/s3'
24
25
  require 'kumogata/template/sns'
25
26
  require 'kumogata/template/version'
@@ -4,17 +4,11 @@
4
4
  require 'kumogata/template/helper'
5
5
  require 'kumogata/template/iam'
6
6
 
7
-
8
7
  def _ecr_policy(name, args)
9
8
  action = args[name.to_sym][:action] || []
10
9
  user = args[name.to_sym][:user] || []
11
- users = []
12
- user.each do |v|
13
- users << _iam_arn("iam", { account_id: v[:id], type: "user", user: v[:name] })
14
- end
15
- principal = _{
16
- AWS users
17
- }
10
+ account = args[name.to_sym][:account]
11
+ principal = { account: account }
18
12
  policy = {
19
13
  service: "ecr",
20
14
  action: action,
@@ -245,3 +245,35 @@ def _window_time(service, start_time)
245
245
  end
246
246
  "#{start_time.strftime(format)}-#{end_time.strftime(format)}"
247
247
  end
248
+
249
+ def _ref_arn(service, name)
250
+ # FIXME
251
+ _{
252
+ Fn__Join [
253
+ ",",
254
+ [
255
+ "arn:aws:#{service}:::",
256
+ _{ Ref _resource_name(name) },
257
+ ]
258
+ ]
259
+ }
260
+ end
261
+
262
+ def _ref_pseudo(type)
263
+ pseudo =
264
+ case type
265
+ when "account"
266
+ "AccountId"
267
+ when "notification arns"
268
+ "NotificationARNs"
269
+ when "no value"
270
+ "NoValue"
271
+ when "region"
272
+ "Region"
273
+ when "stack id"
274
+ "StackId"
275
+ when "stack name"
276
+ "StackName"
277
+ end
278
+ _{ Ref "AWS::#{pseudo}" }
279
+ end
@@ -63,6 +63,54 @@ def _iam_policies(name, args)
63
63
  array
64
64
  end
65
65
 
66
+ def _iam_policy_principal(args, key = "principal")
67
+ principal = args[key.to_sym] || {}
68
+ return "" if principal.empty?
69
+ return principal if principal.is_a? String
70
+
71
+ if principal.key? :account
72
+ account = principal[:account]
73
+ if account.is_a? Hash
74
+ _{
75
+ AWS _iam_arn("iam", { type: "user", account_id: account[:id], user: account[:name] })
76
+ }
77
+ else
78
+ _{
79
+ AWS account
80
+ }
81
+ end
82
+ elsif principal.key? :accounts
83
+ accounts = []
84
+ principal[:accounts].each do |v|
85
+ accounts << _iam_arn("iam", { type: "user", account_id: v[:id], user: v[:name] })
86
+ end
87
+ _{
88
+ AWS accounts
89
+ }
90
+ elsif principal.key? :federated
91
+ _{
92
+ Federated principal[:federated]
93
+ }
94
+ elsif principal.key? :assumed_role
95
+ assumed_role = principal[:assumed_role]
96
+ _{
97
+ AWS _iam_arn("iam",
98
+ { sts: true, type: "assumed-role",
99
+ account_id: assumed_role[:id], user: assumed_role[:name] })
100
+ }
101
+ elsif principal.key? :services or principal.key? :service
102
+ _{
103
+ Service principal[:services] || principal[:service]
104
+ }
105
+ elsif principal.key? :canonical
106
+ _{
107
+ CanonicalUser principal[:canonical]
108
+ }
109
+ else
110
+ ""
111
+ end
112
+ end
113
+
66
114
  def _iam_policy_document(name, args)
67
115
  array = []
68
116
  documents = args[name.to_sym] || []
@@ -74,14 +122,12 @@ def _iam_policy_document(name, args)
74
122
 
75
123
  actions = action.collect{|vv| "#{service}:#{vv}" }
76
124
  if v.key? :resource
77
- if v[:resource].is_a? String
78
- resource = _iam_arn(service, v[:resource])
79
- else
80
- resource = v[:resource].collect{|vv| _iam_arn(service, vv) }
81
- end
125
+ resource = _iam_arn(service, v[:resource])
82
126
  else
83
127
  resource = [ "*" ]
84
128
  end
129
+ principal = _iam_policy_principal(v)
130
+ not_principal = _iam_policy_principal(v, "not_principal")
85
131
 
86
132
  array << _{
87
133
  Sid v[:sid] if v.key? :sid
@@ -89,8 +135,8 @@ def _iam_policy_document(name, args)
89
135
  NotAction no_action v[:no_action] if v.key? :no_action
90
136
  Action actions
91
137
  Resource resource unless v.key? :no_resource
92
- Principal v[:principal] if v.key? :principal
93
- NotPrincipal v[:not_principal] if v.key? :not_principal
138
+ Principal principal unless principal.empty?
139
+ NotPrincipal not_principal unless not_principal.empty?
94
140
  Condition _iam_to_policy_condition(v[:condition]) if v.key? :condition
95
141
  }
96
142
  end
@@ -133,29 +179,62 @@ end
133
179
  # Amazon Resource Names (ARNs) and AWS Service Namespaces
134
180
  # https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
135
181
  def _iam_arn(service, resource)
136
- arn_prefix = "arn:aws:#{service}"
182
+ def _convert(args)
183
+ return "" if args.empty?
184
+ return args if args.is_a? String
185
+ array = []
186
+ args.each_pair do |k, v|
187
+ array <<
188
+ case k.to_s
189
+ when "ref"
190
+ _{ Ref _resource_name(v) }
191
+ when /ref_(.*)/
192
+ _ref_pseudo($1)
193
+ else
194
+ v
195
+ end
196
+ end
197
+ (args.size == 1) ? array.first : array
198
+ end
137
199
 
200
+ arn_prefix = "arn:aws:#{service}"
138
201
  case service
139
202
  when "s3"
203
+ arn_prefix_s3 = "#{arn_prefix}:::"
140
204
  if resource.is_a? String
141
- "#{arn_prefix}:::#{resource}"
205
+ "#{arn_prefix_s3}#{resource}"
206
+
207
+ elsif resource.is_a? Hash
208
+ _{ Fn__Join "", [ arn_prefix_s3, _convert(resource) ] }
209
+
142
210
  else
143
- resources = [ "#{arn_prefix}:::" ]
144
- resource.each do |v|
145
- if v =~ /^Ref_(.*)/
146
- resources << _{ Ref _resource_name($1) }
211
+ array, array_map = [], []
212
+ resource.each_with_index do |v, i|
213
+ if v.is_a? String
214
+ array << v
215
+ elsif v.is_a? Hash
216
+ array << _convert(v)
147
217
  else
148
- resources << v
218
+ tmp = [ arn_prefix_s3 ]
219
+ tmp += v.collect{|vv| _convert(vv) }
220
+ array_map << _{ Fn__Join "", tmp }
149
221
  end
150
222
  end
151
- _{ Fn__Join "", resources }
223
+ return array_map unless array_map.empty?
224
+
225
+ if array.select{|v| v.is_a? Hash }.empty?
226
+ array.collect{|v| "#{arn_prefix_s3}#{v}" }
227
+ else
228
+ _{ Fn__Join "", array.insert(0, arn_prefix_s3) }
229
+ end
152
230
  end
153
231
 
154
232
  when "cloudformation"
155
233
  if resource == "*"
156
234
  resource
157
235
  else
158
- "#{arn_prefix}:#{resource[:region]}:#{resource[:account_id]}:stack/#{resource[:stack]}"
236
+ resource = [ { region: resource[:region], account_id: resource[:account_id], stack: resource[:stack] } ] if resource.is_a? String
237
+ resource.collect{|v| "#{arn_prefix}:#{v[:region]}:#{v[:account_id]}:stack/#{v[:stack]}" }
159
238
  end
160
239
 
161
240
  when "iam"
@@ -170,7 +249,7 @@ def _iam_arn(service, resource)
170
249
  end
171
250
 
172
251
  when "elasticloadbalancing"
173
- "#{arn_prefix}:*:*:loadbalancer/#{resource}"
252
+ resource.collect{|v| "#{arn_prefix}:*:*:loadbalancer/#{v}" }
174
253
 
175
254
  when "logs"
176
255
  "#{arn_prefix}:*:*:*"
@@ -180,22 +259,6 @@ def _iam_arn(service, resource)
180
259
  end
181
260
  end
182
261
 
183
- def _iam_s3_bucket_policy(region, bucket, prefix, aws_account_id)
184
- account_id = ELB_ACCESS_LOG_ACCOUNT_ID[region.to_sym]
185
- prefix = [ prefix ] if prefix.is_a? String
186
- resource = prefix.collect{|v| "#{bucket}/#{v}/AWSLogs/#{aws_account_id}/*" }
187
- [
188
- {
189
- service: "s3",
190
- action: [ "PutObject" ],
191
- principal: {
192
- AWS: [ account_id ],
193
- },
194
- resource: resource,
195
- },
196
- ]
197
- end
198
-
199
262
  def _iam_login_profile(args)
200
263
  password = args[:password] || ""
201
264
  reset_required = _bool("reset_required", args, true)
@@ -0,0 +1,26 @@
1
+ #
2
+ # Helper - Redshift
3
+ #
4
+ require 'kumogata/template/helper'
5
+
6
+ def _redshift_parameters(args)
7
+ parameters = args[:parameters] || []
8
+
9
+ array = []
10
+ parameters.collect do |v|
11
+ name = v[:name] || ""
12
+ value =
13
+ if name == "wlm_json_configuration"
14
+ v[:value].to_json
15
+ else
16
+ v[:value] || ""
17
+ end
18
+ next if name.empty? or value.empty?
19
+
20
+ array << _{
21
+ ParameterName name
22
+ ParameterValue value
23
+ }
24
+ end
25
+ array
26
+ end
@@ -1 +1 @@
1
- KUMOGATA_TEMPLATE_VERSION = '0.0.26'
1
+ KUMOGATA_TEMPLATE_VERSION = '0.0.27'
@@ -3,11 +3,12 @@
3
3
  # http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html
4
4
  #
5
5
  require 'kumogata/template/helper'
6
+ require 'kumogata/template/redshift'
6
7
 
7
8
  name = _resource_name(args[:name], "redshift cluster parameter group")
8
9
  description = args[:description] || "#{args[:name]} redshift cluster parameter group description"
9
10
  family = args[:family] || "redshift-1.0"
10
- parameters = args[:parameters] || []
11
+ parameters = _redshift_parameters(args)
11
12
 
12
13
  _(name) do
13
14
  Type "AWS::Redshift::ClusterParameterGroup"
data/test/iam_test.rb CHANGED
@@ -81,6 +81,88 @@ Policies _iam_policies "test", test: [ { document: [ { service: "s3" } ] } ]
81
81
  assert_equal exp_template.chomp, act_template
82
82
  end
83
83
 
84
+ def test_iam_policy_principal
85
+ template = <<-EOS
86
+ Test _iam_policy_principal principal: { account: 1 }
87
+ EOS
88
+ act_template = run_client_as_json(template)
89
+ exp_template = <<-EOS
90
+ {
91
+ "Test": {
92
+ "AWS": "1"
93
+ }
94
+ }
95
+ EOS
96
+ assert_equal exp_template.chomp, act_template
97
+
98
+ template = <<-EOS
99
+ Test _iam_policy_principal principal: { account: { id: 1, name: "test" } }
100
+ EOS
101
+ act_template = run_client_as_json(template)
102
+ exp_template = <<-EOS
103
+ {
104
+ "Test": {
105
+ "AWS": "arn:aws:iam::1:user/test"
106
+ }
107
+ }
108
+ EOS
109
+ assert_equal exp_template.chomp, act_template
110
+
111
+ template = <<-EOS
112
+ Test _iam_policy_principal principal: { accounts: [ { id: 1, name: "test" } ] }
113
+ EOS
114
+ act_template = run_client_as_json(template)
115
+ exp_template = <<-EOS
116
+ {
117
+ "Test": {
118
+ "AWS": [
119
+ "arn:aws:iam::1:user/test"
120
+ ]
121
+ }
122
+ }
123
+ EOS
124
+ assert_equal exp_template.chomp, act_template
125
+
126
+ template = <<-EOS
127
+ Test _iam_policy_principal principal: { federated: "test" }
128
+ EOS
129
+ act_template = run_client_as_json(template)
130
+ exp_template = <<-EOS
131
+ {
132
+ "Test": {
133
+ "Federated": "test"
134
+ }
135
+ }
136
+ EOS
137
+ assert_equal exp_template.chomp, act_template
138
+
139
+ template = <<-EOS
140
+ Test _iam_policy_principal principal: { assumed_role: { id: 1, name: "test/test" } }
141
+ EOS
142
+ act_template = run_client_as_json(template)
143
+ exp_template = <<-EOS
144
+ {
145
+ "Test": {
146
+ "AWS": "arn:aws:sts::1:assumed-role/test/test"
147
+ }
148
+ }
149
+ EOS
150
+ assert_equal exp_template.chomp, act_template
151
+
152
+ template = <<-EOS
153
+ Test _iam_policy_principal principal: { service: "test" }
154
+ EOS
155
+ act_template = run_client_as_json(template)
156
+ exp_template = <<-EOS
157
+ {
158
+ "Test": {
159
+ "Service": "test"
160
+ }
161
+ }
162
+ EOS
163
+ assert_equal exp_template.chomp, act_template
164
+ end
165
+
84
166
  def test_iam_policy_document
85
167
  template = <<-EOS
86
168
  PolicyDocument _iam_policy_document "test", test: [ { service: "s3" } ]
@@ -190,28 +272,104 @@ arn _iam_arn("s3", "test")
190
272
  }
191
273
  EOS
192
274
  assert_equal exp_template.chomp, act_template
193
- end
194
275
 
195
- def test_iam_s3_bucket_policy
196
276
  template = <<-EOS
197
- arn _iam_s3_bucket_policy("us_east1", "test", "test", 1234)
277
+ arn _iam_arn("s3", { ref: "test" })
278
+ EOS
279
+ act_template = run_client_as_json(template)
280
+ exp_template = <<-EOS
281
+ {
282
+ "arn": {
283
+ "Fn::Join": [
284
+ "",
285
+ [
286
+ "arn:aws:s3:::",
287
+ {
288
+ "Ref": "Test"
289
+ }
290
+ ]
291
+ ]
292
+ }
293
+ }
294
+ EOS
295
+ assert_equal exp_template.chomp, act_template
296
+
297
+ template = <<-EOS
298
+ arn _iam_arn("s3", [ "test1", "test2" ])
299
+ EOS
300
+ act_template = run_client_as_json(template)
301
+ exp_template = <<-EOS
302
+ {
303
+ "arn": [
304
+ "arn:aws:s3:::test1",
305
+ "arn:aws:s3:::test2"
306
+ ]
307
+ }
308
+ EOS
309
+ assert_equal exp_template.chomp, act_template
310
+
311
+ template = <<-EOS
312
+ arn _iam_arn("s3", [ { ref: "test" }, { ref_account: true }, "/*" ])
313
+ EOS
314
+ act_template = run_client_as_json(template)
315
+ exp_template = <<-EOS
316
+ {
317
+ "arn": {
318
+ "Fn::Join": [
319
+ "",
320
+ [
321
+ "arn:aws:s3:::",
322
+ {
323
+ "Ref": "Test"
324
+ },
325
+ {
326
+ "Ref": "AWS::AccountId"
327
+ },
328
+ "/*"
329
+ ]
330
+ ]
331
+ }
332
+ }
333
+ EOS
334
+ assert_equal exp_template.chomp, act_template
335
+
336
+ template = <<-EOS
337
+ test1 = [ { ref: "test1" }, { ref_account: true }, "/*" ]
338
+ test2 = [ { ref: "test2" }, { ref_account: true }, "/*" ]
339
+ arn _iam_arn("s3", [ test1, test2 ])
198
340
  EOS
199
341
  act_template = run_client_as_json(template)
200
342
  exp_template = <<-EOS
201
343
  {
202
344
  "arn": [
203
345
  {
204
- "service": "s3",
205
- "action": [
206
- "PutObject"
207
- ],
208
- "principal": {
209
- "AWS": [
210
- null
346
+ "Fn::Join": [
347
+ "",
348
+ [
349
+ "arn:aws:s3:::",
350
+ {
351
+ "Ref": "Test1"
352
+ },
353
+ {
354
+ "Ref": "AWS::AccountId"
355
+ },
356
+ "/*"
357
+ ]
358
+ ]
359
+ },
360
+ {
361
+ "Fn::Join": [
362
+ "",
363
+ [
364
+ "arn:aws:s3:::",
365
+ {
366
+ "Ref": "Test2"
367
+ },
368
+ {
369
+ "Ref": "AWS::AccountId"
370
+ },
371
+ "/*"
211
372
  ]
212
- },
213
- "resource": [
214
- "test/test/AWSLogs/1234/*"
215
373
  ]
216
374
  }
217
375
  ]
@@ -0,0 +1,23 @@
1
+ require 'abstract_unit'
2
+ require 'kumogata/template/redshift'
3
+
4
+ class RedshiftTest < Minitest::Test
5
+ def test_redshift_parameters
6
+ template = <<-EOS
7
+ parameters = { name: "wlm_json_configuration", value: [ { test: "test" } ] }
8
+ Test _redshift_parameters(parameters: [ parameters ])
9
+ EOS
10
+ act_template = run_client_as_json(template)
11
+ exp_template = <<-EOS
12
+ {
13
+ "Test": [
14
+ {
15
+ "ParameterName": "wlm_json_configuration",
16
+ "ParameterValue": "[{\\"test\\":\\"test\\"}]"
17
+ }
18
+ ]
19
+ }
20
+ EOS
21
+ assert_equal exp_template.chomp, act_template
22
+ end
23
+ end
@@ -12,10 +12,8 @@ action = %w(
12
12
  UploadLayerPart
13
13
  CompleteLayerUpload
14
14
  )
15
- user = [
16
- { id: 1, name: "test" }
17
- ]
18
- _ecr_repository "test", { policy: { action: action, user: user } }
15
+ account = { id: 1, name: "test" }
16
+ _ecr_repository "test", { policy: { action: action, account: account } }
19
17
  EOS
20
18
  act_template = run_client_as_json(template)
21
19
  exp_template = <<-EOS
@@ -39,9 +37,7 @@ _ecr_repository "test", { policy: { action: action, user: user } }
39
37
  "ecr:CompleteLayerUpload"
40
38
  ],
41
39
  "Principal": {
42
- "AWS": [
43
- "arn:aws:iam::1:user/test"
44
- ]
40
+ "AWS": "arn:aws:iam::1:user/test"
45
41
  }
46
42
  }
47
43
  ]
@@ -3,7 +3,8 @@ require 'abstract_unit'
3
3
  class RedshiftClusterParameterGroupTest < Minitest::Test
4
4
  def test_normal
5
5
  template = <<-EOS
6
- _redshift_cluster_parameter_group "test", parameters: [ ParameterName: "enable_user_activity_logging", ParameterValue: "true"]
6
+ parameters = [ { name: "enable_user_activity_logging", value: "true" } ]
7
+ _redshift_cluster_parameter_group "test", parameters: parameters
7
8
  EOS
8
9
  act_template = run_client_as_json(template)
9
10
  exp_template = <<-EOS
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kumogata-template
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.26
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naoya Nakazawa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-15 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -125,6 +125,7 @@ files:
125
125
  - lib/kumogata/template/iam.rb
126
126
  - lib/kumogata/template/lambda.rb
127
127
  - lib/kumogata/template/logs.rb
128
+ - lib/kumogata/template/redshift.rb
128
129
  - lib/kumogata/template/s3.rb
129
130
  - lib/kumogata/template/sns.rb
130
131
  - lib/kumogata/template/version.rb
@@ -271,6 +272,7 @@ files:
271
272
  - test/iam_test.rb
272
273
  - test/lambda_test.rb
273
274
  - test/logs_test.rb
275
+ - test/redshift_test.rb
274
276
  - test/s3_test.rb
275
277
  - test/sns_test.rb
276
278
  - test/template/alb-listener-rule_test.rb
@@ -413,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
413
415
  version: '0'
414
416
  requirements: []
415
417
  rubyforge_project:
416
- rubygems_version: 2.6.11
418
+ rubygems_version: 2.5.2
417
419
  signing_key:
418
420
  specification_version: 4
419
421
  summary: Template for Kumogata.
@@ -440,6 +442,7 @@ test_files:
440
442
  - test/iam_test.rb
441
443
  - test/lambda_test.rb
442
444
  - test/logs_test.rb
445
+ - test/redshift_test.rb
443
446
  - test/s3_test.rb
444
447
  - test/sns_test.rb
445
448
  - test/template/alb-listener-rule_test.rb