kumogata-template 0.0.26 → 0.0.27

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
  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