awspec 0.72.0 → 0.73.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5371ca2443a738e61ee579d50fdf545bffc2945e
4
- data.tar.gz: ae9a493ee4de0d9e3018aaa9f27418dfaa373b4b
3
+ metadata.gz: b63c6ae1004887511da7b71db6b226bfc8b55384
4
+ data.tar.gz: baf3261617e9ee47f143e0d2402c5dc11c1e6315
5
5
  SHA512:
6
- metadata.gz: 468a0bd1edeb9fb36c3c4692e8466843a787cb600482738da645574a5bdd7a2748d16b00309062e78b9ab9aefa1392dcc5efef7fae2b68a5321e02196a9fc9e3
7
- data.tar.gz: cf7146d314306504268dd344e1f4d5094a06183e1eae552b464b05770531699b59cb9d77fd553afd8612c09637f26d87f6ee90394ad459e231a5648b00886c43
6
+ metadata.gz: b3535d850d90d8f32043534a98d1ae93add81511706fd1f7ea6d5f011c59c5ca9f6a498cee5db1d1ea7a268d2e5350713db3b3e082182db460aaf608079dee70
7
+ data.tar.gz: 6c099c0ff5b7a44af4c6c0cf8bf400706c29f1b841e998b821e49f2e91023283447681383a46c2245b8874e1242162dc89377f27586e7c1f48558e769c23cde4
@@ -22,6 +22,16 @@ describe elasticache('my-rep-group-001') do
22
22
  end
23
23
  ```
24
24
 
25
+ ### have_security_group
26
+
27
+ ```ruby
28
+ describe elasticache('my-rep-group-001') do
29
+ it { should have_security_group('sg-da1bc2ef') }
30
+ it { should have_security_group('group-name-sg') }
31
+ it { should have_security_group('my-cache-sg') }
32
+ end
33
+ ```
34
+
25
35
  ### belong_to_cache_subnet_group
26
36
 
27
37
  ```ruby
@@ -51,6 +51,22 @@
51
51
  | [waf_web_acl](#waf_web_acl)
52
52
  | [account](#account)
53
53
 
54
+ ## <a name="acm">acm</a>
55
+
56
+ Acm resource type.
57
+
58
+ ### exist
59
+
60
+ ```ruby
61
+ describe acm('example.com') do
62
+ it { should exist }
63
+ end
64
+ ```
65
+
66
+
67
+ ### be_pending_validation, be_issued, be_inactive, be_expired, be_validation_timed_out, be_revoked, be_failed
68
+
69
+ ### its(:certificate_arn), its(:domain_name), its(:subject_alternative_names), its(:domain_validation_options), its(:serial), its(:subject), its(:issuer), its(:created_at), its(:issued_at), its(:imported_at), its(:status), its(:revoked_at), its(:revocation_reason), its(:not_before), its(:not_after), its(:key_algorithm), its(:signature_algorithm), its(:in_use_by), its(:failure_reason), its(:type), its(:renewal_summary)
54
70
  ## <a name="alb">alb</a>
55
71
 
56
72
  ALB resource type.
@@ -125,6 +141,60 @@ end
125
141
  ```
126
142
 
127
143
  ### its(:auto_scaling_group_name), its(:auto_scaling_group_arn), its(:launch_configuration_name), its(:min_size), its(:max_size), its(:desired_capacity), its(:default_cooldown), its(:availability_zones), its(:load_balancer_names), its(:target_group_arns), its(:health_check_type), its(:health_check_grace_period), its(:created_time), its(:suspended_processes), its(:placement_group), its(:vpc_zone_identifier), its(:enabled_metrics), its(:status), its(:termination_policies), its(:new_instances_protected_from_scale_in)
144
+ ## <a name="cloudfront_distribution">cloudfront_distribution</a>
145
+
146
+ CloudfrontDistribution resource type.
147
+
148
+ ### exist
149
+
150
+ ```ruby
151
+ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
152
+ it { should exist }
153
+ end
154
+ ```
155
+
156
+
157
+ ### be_in_progress, be_deployed
158
+
159
+ ```ruby
160
+ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
161
+ it { should be_deployed }
162
+ end
163
+ ```
164
+
165
+
166
+ ### have_origin
167
+
168
+ ```ruby
169
+ describe cloudfront_distribution('E2CLOUDFRONTXX') do
170
+ it do
171
+ should have_origin('cf-s3-origin-hosting.dev.example.com')
172
+ .domain_name('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com')
173
+ .origin_path('/img')
174
+ .origin_access_identity('origin-access-identity/cloudfront/E2VVVVVVVVVVVV')
175
+ end
176
+ end
177
+ ```
178
+
179
+
180
+ ### have_origin_domain_name
181
+
182
+ ```ruby
183
+ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
184
+ it { should have_origin_domain_name('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com') }
185
+ end
186
+ ```
187
+
188
+
189
+ ### have_origin_domain_name_and_path
190
+
191
+ ```ruby
192
+ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
193
+ it { should have_origin_domain_name_and_path('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com/img') }
194
+ end
195
+ ```
196
+
197
+ ### its(:id), its(:arn), its(:status), its(:last_modified_time), its(:domain_name), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id), its(:http_version), its(:is_ipv6_enabled)
128
198
  ## <a name="cloudtrail">cloudtrail</a>
129
199
 
130
200
  Cloudtrail resource type.
@@ -234,6 +304,87 @@ CloudwatchEvent resource type.
234
304
  ### be_scheduled
235
305
 
236
306
  ### its(:name), its(:arn), its(:event_pattern), its(:state), its(:description), its(:schedule_expression), its(:role_arn)
307
+ ## <a name="cloudwatch_logs">cloudwatch_logs</a>
308
+
309
+ CloudwatchLogs resource type.
310
+
311
+ ### exist
312
+
313
+ ```ruby
314
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
315
+ it { should exist }
316
+ end
317
+ ```
318
+
319
+
320
+ ### have_log_stream
321
+
322
+ ```ruby
323
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
324
+ it { should have_log_stream('my-cloudwatch-logs-stream') }
325
+ end
326
+ ```
327
+
328
+
329
+ ### have_metric_filter
330
+
331
+ ```ruby
332
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
333
+ it { should have_metric_filter('my-cloudwatch-logs-metric-filter') }
334
+ end
335
+ ```
336
+
337
+
338
+ ### have_subscription_filter
339
+
340
+ ```ruby
341
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
342
+ it { should have_subscription_filter('my-cloudwatch-logs-subscription-filter') }
343
+ end
344
+ ```
345
+ or
346
+ ```ruby
347
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
348
+ it do
349
+ should have_subscription_filter('my-cloudwatch-logs-subscription-filter')\
350
+ .filter_pattern('[host, ident, authuser, date, request, status, bytes]')
351
+ end
352
+ end
353
+ ```
354
+
355
+ ### its(:log_group_name), its(:creation_time), its(:retention_in_days), its(:metric_filter_count), its(:arn), its(:stored_bytes)
356
+ ## <a name="customer_gateway">customer_gateway</a>
357
+
358
+ CustomerGateway resource type.
359
+
360
+ ### exist
361
+
362
+ ```ruby
363
+ describe customer_gateway('my-customer-gateway') do
364
+ it { should exist }
365
+ end
366
+ ```
367
+
368
+
369
+ ### be_pending, be_available, be_deleting, be_deleted
370
+
371
+ ```ruby
372
+ describe customer_gateway('my-customer-gateway') do
373
+ it { should be_running }
374
+ end
375
+ ```
376
+
377
+
378
+ ### have_tag
379
+
380
+ ```ruby
381
+ describe customer_gateway('my-customer-gateway') do
382
+ it { should have_tag('Name').value('my-customer-gateway') }
383
+ end
384
+ ```
385
+
386
+
387
+ ### its(:customer_gateway_id), its(:state), its(:type), its(:ip_address), its(:bgp_asn), its(:tags)
237
388
  ## <a name="directconnect_virtual_interface">directconnect_virtual_interface</a>
238
389
 
239
390
  DirectconnectVirtualInterface resource type.
@@ -270,6 +421,61 @@ end
270
421
  ```
271
422
 
272
423
  ### its(:owner_account), its(:virtual_interface_id), its(:location), its(:connection_id), its(:virtual_interface_type), its(:virtual_interface_name), its(:vlan), its(:asn), its(:auth_key), its(:amazon_address), its(:customer_address), its(:address_family), its(:virtual_interface_state), its(:customer_router_config), its(:virtual_gateway_id), its(:route_filter_prefixes), its(:bgp_peers)
424
+ ## <a name="dynamodb_table">dynamodb_table</a>
425
+
426
+ DynamodbTable resource type.
427
+
428
+ ### exist
429
+
430
+ ```ruby
431
+ describe dynamodb_table('my-dynamodb-table') do
432
+ it { should exist }
433
+ end
434
+ ```
435
+
436
+
437
+ ### be_creating, be_updating, be_deleting, be_active
438
+
439
+ ### have_attribute_definition
440
+
441
+ ```ruby
442
+ describe dynamodb_table('my-dynamodb-table') do
443
+ it { should have_attribute_definition('my-dynamodb-table-attaribute1').attribute_type('S') }
444
+ it { should have_attribute_definition('my-dynamodb-table-attaribute2').attribute_type('N') }
445
+ end
446
+ ```
447
+
448
+
449
+ ### have_key_schema
450
+
451
+ ```ruby
452
+ describe dynamodb_table('my-dynamodb-table') do
453
+ it { should have_key_schema('my-dynamodb-table-key_schema1').key_type('HASH') }
454
+ it { should have_key_schema('my-dynamodb-table-key_schema2').key_type('RANGE') }
455
+ end
456
+ ```
457
+
458
+
459
+ ### its(:table_name), its(:table_status), its(:creation_date_time), its(:table_size_bytes), its(:item_count), its(:table_arn), its(:local_secondary_indexes), its(:global_secondary_indexes), its(:stream_specification), its(:latest_stream_label), its(:latest_stream_arn)
460
+ ### :unlock: Advanced use
461
+
462
+ `dynamodb_table` can use `Aws::DynamoDB::Table` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Table.html).
463
+
464
+ ```ruby
465
+ describe dynamodb_table('my-dynamodb-table') do
466
+ its('key_schema.first.key_type') { should eq 'HASH' }
467
+ end
468
+ ```
469
+
470
+ or
471
+
472
+ ```ruby
473
+ describe dynamodb_table('my-dynamodb-table') do
474
+ its('resource.key_schema.first.key_type') { should eq 'HASH' }
475
+ end
476
+ ```
477
+
478
+
273
479
  ## <a name="ebs">ebs</a>
274
480
 
275
481
  EBS resource type.
@@ -664,6 +870,17 @@ end
664
870
  ```
665
871
 
666
872
 
873
+ ### have_security_group
874
+
875
+ ```ruby
876
+ describe elasticache('my-rep-group-001') do
877
+ it { should have_security_group('sg-da1bc2ef') }
878
+ it { should have_security_group('group-name-sg') }
879
+ it { should have_security_group('my-cache-sg') }
880
+ end
881
+ ```
882
+
883
+
667
884
  ### belong_to_cache_subnet_group
668
885
 
669
886
  ```ruby
@@ -770,6 +987,21 @@ end
770
987
 
771
988
 
772
989
  ### its(:domain_id), its(:domain_name), its(:arn), its(:created), its(:deleted), its(:endpoint), its(:processing), its(:elasticsearch_version), its(:access_policies), its(:snapshot_options), its(:advanced_options)
990
+ ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
991
+
992
+ ElastictranscoderPipeline resource type.
993
+
994
+ ### exist
995
+
996
+ ### be_active, be_paused
997
+
998
+ ```ruby
999
+ describe elastictranscoder_pipeline('my-elastictranscoder-pipeline') do
1000
+ it { should be_active }
1001
+ end
1002
+ ```
1003
+
1004
+
773
1005
  ## <a name="elb">elb</a>
774
1006
 
775
1007
  ELB resource type.
@@ -1110,36 +1342,75 @@ describe iam_user('my-iam-user') do
1110
1342
  end
1111
1343
  ```
1112
1344
 
1113
- ## <a name="kms">kms</a>
1345
+ ## <a name="internet_gateway">internet_gateway</a>
1114
1346
 
1115
- Kms resource type.
1347
+ InternetGateway resource type.
1116
1348
 
1117
1349
  ### exist
1118
1350
 
1119
1351
  ```ruby
1120
- describe kms('my-kms-key') do
1352
+ describe internet_gateway('igw-1ab2cd3e') do
1353
+ it { should exist }
1354
+ end
1355
+
1356
+ describe internet_gateway('my-internet-gateway') do
1121
1357
  it { should exist }
1122
1358
  end
1123
1359
  ```
1124
1360
 
1125
1361
 
1126
- ### be_enabled
1362
+ ### be_attached_to
1127
1363
 
1128
1364
  ```ruby
1129
- describe kms('my-kms-key') do
1130
- it { should be_enabled }
1365
+ describe internet_gateway('igw-1ab2cd3e') do
1366
+ it { should be_attached_to('vpc-ab123cde') }
1367
+ end
1368
+
1369
+ describe internet_gateway('igw-1ab2cd3e') do
1370
+ it { should be_attached_to('my-vpc') }
1131
1371
  end
1132
1372
  ```
1133
1373
 
1134
1374
 
1135
- ### have_key_policy
1375
+ ### have_tag
1136
1376
 
1137
1377
  ```ruby
1138
- describe kms('my-kms-key') do
1139
- it { should exist }
1140
- it { should be_enabled }
1141
- it do
1142
- should have_key_policy('default').policy_document(<<-'DOC')
1378
+ describe internet_gateway('igw-1ab2cd3e') do
1379
+ it { should have_tag('Name').value('my-internet-gateway') }
1380
+ end
1381
+ ```
1382
+
1383
+ ### its(:internet_gateway_id)
1384
+ ## <a name="kms">kms</a>
1385
+
1386
+ Kms resource type.
1387
+
1388
+ ### exist
1389
+
1390
+ ```ruby
1391
+ describe kms('my-kms-key') do
1392
+ it { should exist }
1393
+ end
1394
+ ```
1395
+
1396
+
1397
+ ### be_enabled
1398
+
1399
+ ```ruby
1400
+ describe kms('my-kms-key') do
1401
+ it { should be_enabled }
1402
+ end
1403
+ ```
1404
+
1405
+
1406
+ ### have_key_policy
1407
+
1408
+ ```ruby
1409
+ describe kms('my-kms-key') do
1410
+ it { should exist }
1411
+ it { should be_enabled }
1412
+ it do
1413
+ should have_key_policy('default').policy_document(<<-'DOC')
1143
1414
  {
1144
1415
  "Version" : "2012-10-17",
1145
1416
  "Id" : "key-consolepolicy-2",
@@ -2009,100 +2280,14 @@ describe vpc('my-vpc') do
2009
2280
  end
2010
2281
  ```
2011
2282
 
2012
- ## <a name="cloudfront_distribution">cloudfront_distribution</a>
2013
-
2014
- CloudfrontDistribution resource type.
2015
-
2016
- ### exist
2017
-
2018
- ```ruby
2019
- describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
2020
- it { should exist }
2021
- end
2022
- ```
2023
-
2024
-
2025
- ### be_in_progress, be_deployed
2026
-
2027
- ```ruby
2028
- describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
2029
- it { should be_deployed }
2030
- end
2031
- ```
2032
-
2033
-
2034
- ### have_origin
2035
-
2036
- ```ruby
2037
- describe cloudfront_distribution('E2CLOUDFRONTXX') do
2038
- it do
2039
- should have_origin('cf-s3-origin-hosting.dev.example.com')
2040
- .domain_name('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com')
2041
- .origin_path('/img')
2042
- .origin_access_identity('origin-access-identity/cloudfront/E2VVVVVVVVVVVV')
2043
- end
2044
- end
2045
- ```
2046
-
2047
-
2048
- ### have_origin_domain_name
2049
-
2050
- ```ruby
2051
- describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
2052
- it { should have_origin_domain_name('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com') }
2053
- end
2054
- ```
2055
-
2056
-
2057
- ### have_origin_domain_name_and_path
2058
-
2059
- ```ruby
2060
- describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
2061
- it { should have_origin_domain_name_and_path('cf-s3-origin-hosting.dev.example.com.s3.amazonaws.com/img') }
2062
- end
2063
- ```
2064
-
2065
- ### its(:id), its(:arn), its(:status), its(:last_modified_time), its(:domain_name), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id), its(:http_version), its(:is_ipv6_enabled)
2066
- ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
2067
-
2068
- ElastictranscoderPipeline resource type.
2069
-
2070
- ### exist
2071
-
2072
- ### be_active, be_paused
2073
-
2074
- ```ruby
2075
- describe elastictranscoder_pipeline('my-elastictranscoder-pipeline') do
2076
- it { should be_active }
2077
- end
2078
- ```
2079
-
2080
-
2081
- ## <a name="waf_web_acl">waf_web_acl</a>
2082
-
2083
- WafWebAcl resource type.
2084
-
2085
- ### exist
2086
-
2087
- ### have_rule
2088
-
2089
- ```ruby
2090
- describe waf_web_acl('my-waf-web-acl') do
2091
- it { should have_rule('my-waf-web-acl-allowed-ips') }
2092
- it { should have_rule('my-waf-web-acl-allowed-ips').order(2).action('BLOCK') }
2093
- end
2094
- ```
2095
-
2096
-
2097
- ### its(:default_action), its(:web_acl_id), its(:name), its(:metric_name)
2098
- ## <a name="customer_gateway">customer_gateway</a>
2283
+ ## <a name="vpn_connection">vpn_connection</a>
2099
2284
 
2100
- CustomerGateway resource type.
2285
+ VpnConnection resource type.
2101
2286
 
2102
2287
  ### exist
2103
2288
 
2104
2289
  ```ruby
2105
- describe customer_gateway('my-customer-gateway') do
2290
+ describe vpn_connection('my-vpn-connection') do
2106
2291
  it { should exist }
2107
2292
  end
2108
2293
  ```
@@ -2111,7 +2296,7 @@ end
2111
2296
  ### be_pending, be_available, be_deleting, be_deleted
2112
2297
 
2113
2298
  ```ruby
2114
- describe customer_gateway('my-customer-gateway') do
2299
+ describe vpn_connection('my-vpn-connection') do
2115
2300
  it { should be_running }
2116
2301
  end
2117
2302
  ```
@@ -2120,13 +2305,13 @@ end
2120
2305
  ### have_tag
2121
2306
 
2122
2307
  ```ruby
2123
- describe customer_gateway('my-customer-gateway') do
2124
- it { should have_tag('Name').value('my-customer-gateway') }
2308
+ describe vpn_connection('my-vpn-connection') do
2309
+ it { should have_tag('Name').value('my-vpn-connection') }
2125
2310
  end
2126
2311
  ```
2127
2312
 
2128
2313
 
2129
- ### its(:customer_gateway_id), its(:state), its(:type), its(:ip_address), its(:bgp_asn), its(:tags)
2314
+ ### its(:vpn_connection_id), its(:state), its(:customer_gateway_configuration), its(:type), its(:customer_gateway_id), its(:vpn_gateway_id), its(:tags), its(:vgw_telemetry), its(:options), its(:routes)
2130
2315
  ## <a name="vpn_gateway">vpn_gateway</a>
2131
2316
 
2132
2317
  VpnGateway resource type.
@@ -2159,197 +2344,23 @@ end
2159
2344
 
2160
2345
 
2161
2346
  ### its(:vpn_gateway_id), its(:state), its(:type), its(:availability_zone), its(:vpc_attachments), its(:tags)
2162
- ## <a name="vpn_connection">vpn_connection</a>
2163
-
2164
- VpnConnection resource type.
2165
-
2166
- ### exist
2167
-
2168
- ```ruby
2169
- describe vpn_connection('my-vpn-connection') do
2170
- it { should exist }
2171
- end
2172
- ```
2173
-
2174
-
2175
- ### be_pending, be_available, be_deleting, be_deleted
2176
-
2177
- ```ruby
2178
- describe vpn_connection('my-vpn-connection') do
2179
- it { should be_running }
2180
- end
2181
- ```
2182
-
2183
-
2184
- ### have_tag
2185
-
2186
- ```ruby
2187
- describe vpn_connection('my-vpn-connection') do
2188
- it { should have_tag('Name').value('my-vpn-connection') }
2189
- end
2190
- ```
2191
-
2192
-
2193
- ### its(:vpn_connection_id), its(:state), its(:customer_gateway_configuration), its(:type), its(:customer_gateway_id), its(:vpn_gateway_id), its(:tags), its(:vgw_telemetry), its(:options), its(:routes)
2194
- ## <a name="internet_gateway">internet_gateway</a>
2195
-
2196
- InternetGateway resource type.
2197
-
2198
- ### exist
2199
-
2200
- ```ruby
2201
- describe internet_gateway('igw-1ab2cd3e') do
2202
- it { should exist }
2203
- end
2204
-
2205
- describe internet_gateway('my-internet-gateway') do
2206
- it { should exist }
2207
- end
2208
- ```
2209
-
2210
-
2211
- ### be_attached_to
2212
-
2213
- ```ruby
2214
- describe internet_gateway('igw-1ab2cd3e') do
2215
- it { should be_attached_to('vpc-ab123cde') }
2216
- end
2217
-
2218
- describe internet_gateway('igw-1ab2cd3e') do
2219
- it { should be_attached_to('my-vpc') }
2220
- end
2221
- ```
2222
-
2223
-
2224
- ### have_tag
2225
-
2226
- ```ruby
2227
- describe internet_gateway('igw-1ab2cd3e') do
2228
- it { should have_tag('Name').value('my-internet-gateway') }
2229
- end
2230
- ```
2231
-
2232
- ### its(:internet_gateway_id)
2233
- ## <a name="acm">acm</a>
2234
-
2235
- Acm resource type.
2236
-
2237
- ### exist
2238
-
2239
- ```ruby
2240
- describe acm('example.com') do
2241
- it { should exist }
2242
- end
2243
- ```
2244
-
2245
-
2246
- ### be_pending_validation, be_issued, be_inactive, be_expired, be_validation_timed_out, be_revoked, be_failed
2247
-
2248
- ### its(:certificate_arn), its(:domain_name), its(:subject_alternative_names), its(:domain_validation_options), its(:serial), its(:subject), its(:issuer), its(:created_at), its(:issued_at), its(:imported_at), its(:status), its(:revoked_at), its(:revocation_reason), its(:not_before), its(:not_after), its(:key_algorithm), its(:signature_algorithm), its(:in_use_by), its(:failure_reason), its(:type), its(:renewal_summary)
2249
- ## <a name="cloudwatch_logs">cloudwatch_logs</a>
2250
-
2251
- CloudwatchLogs resource type.
2252
-
2253
- ### exist
2254
-
2255
- ```ruby
2256
- describe cloudwatch_logs('my-cloudwatch-logs-group') do
2257
- it { should exist }
2258
- end
2259
- ```
2260
-
2261
-
2262
- ### have_log_stream
2263
-
2264
- ```ruby
2265
- describe cloudwatch_logs('my-cloudwatch-logs-group') do
2266
- it { should have_log_stream('my-cloudwatch-logs-stream') }
2267
- end
2268
- ```
2269
-
2270
-
2271
- ### have_metric_filter
2272
-
2273
- ```ruby
2274
- describe cloudwatch_logs('my-cloudwatch-logs-group') do
2275
- it { should have_metric_filter('my-cloudwatch-logs-metric-filter') }
2276
- end
2277
- ```
2278
-
2279
-
2280
- ### have_subscription_filter
2281
-
2282
- ```ruby
2283
- describe cloudwatch_logs('my-cloudwatch-logs-group') do
2284
- it { should have_subscription_filter('my-cloudwatch-logs-subscription-filter') }
2285
- end
2286
- ```
2287
- or
2288
- ```ruby
2289
- describe cloudwatch_logs('my-cloudwatch-logs-group') do
2290
- it do
2291
- should have_subscription_filter('my-cloudwatch-logs-subscription-filter')\
2292
- .filter_pattern('[host, ident, authuser, date, request, status, bytes]')
2293
- end
2294
- end
2295
- ```
2296
-
2297
- ### its(:log_group_name), its(:creation_time), its(:retention_in_days), its(:metric_filter_count), its(:arn), its(:stored_bytes)
2298
- ## <a name="dynamodb_table">dynamodb_table</a>
2347
+ ## <a name="waf_web_acl">waf_web_acl</a>
2299
2348
 
2300
- DynamodbTable resource type.
2349
+ WafWebAcl resource type.
2301
2350
 
2302
2351
  ### exist
2303
2352
 
2304
- ```ruby
2305
- describe dynamodb_table('my-dynamodb-table') do
2306
- it { should exist }
2307
- end
2308
- ```
2309
-
2310
-
2311
- ### be_creating, be_updating, be_deleting, be_active
2312
-
2313
- ### have_attribute_definition
2314
-
2315
- ```ruby
2316
- describe dynamodb_table('my-dynamodb-table') do
2317
- it { should have_attribute_definition('my-dynamodb-table-attaribute1').attribute_type('S') }
2318
- it { should have_attribute_definition('my-dynamodb-table-attaribute2').attribute_type('N') }
2319
- end
2320
- ```
2321
-
2322
-
2323
- ### have_key_schema
2324
-
2325
- ```ruby
2326
- describe dynamodb_table('my-dynamodb-table') do
2327
- it { should have_key_schema('my-dynamodb-table-key_schema1').key_type('HASH') }
2328
- it { should have_key_schema('my-dynamodb-table-key_schema2').key_type('RANGE') }
2329
- end
2330
- ```
2331
-
2332
-
2333
- ### its(:table_name), its(:table_status), its(:creation_date_time), its(:table_size_bytes), its(:item_count), its(:table_arn), its(:local_secondary_indexes), its(:global_secondary_indexes), its(:stream_specification), its(:latest_stream_label), its(:latest_stream_arn)
2334
- ### :unlock: Advanced use
2335
-
2336
- `dynamodb_table` can use `Aws::DynamoDB::Table` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Table.html).
2337
-
2338
- ```ruby
2339
- describe dynamodb_table('my-dynamodb-table') do
2340
- its('key_schema.first.key_type') { should eq 'HASH' }
2341
- end
2342
- ```
2343
-
2344
- or
2353
+ ### have_rule
2345
2354
 
2346
2355
  ```ruby
2347
- describe dynamodb_table('my-dynamodb-table') do
2348
- its('resource.key_schema.first.key_type') { should eq 'HASH' }
2356
+ describe waf_web_acl('my-waf-web-acl') do
2357
+ it { should have_rule('my-waf-web-acl-allowed-ips') }
2358
+ it { should have_rule('my-waf-web-acl-allowed-ips').order(2).action('BLOCK') }
2349
2359
  end
2350
2360
  ```
2351
2361
 
2352
2362
 
2363
+ ### its(:default_action), its(:web_acl_id), its(:name), its(:metric_name)
2353
2364
  # Account and Attributes
2354
2365
 
2355
2366
  ## <a name="account">account</a>
@@ -18,7 +18,7 @@ module Awspec::Generator
18
18
  EOF
19
19
  doc = ERB.new(header, nil, '-').result(binding)
20
20
 
21
- types.map do |type|
21
+ types.sort.map do |type|
22
22
  doc += eval "Awspec::Generator::Doc::Type::#{type.camelize}.new.generate_doc"
23
23
  end
24
24
 
@@ -72,6 +72,20 @@ Aws.config[:ec2] = {
72
72
  ]
73
73
  }
74
74
  ]
75
+ },
76
+ describe_security_groups: {
77
+ security_groups: [
78
+ {
79
+ group_id: 'sg-da1bc2ef',
80
+ group_name: 'group-name-sg',
81
+ tags: [
82
+ {
83
+ key: 'Name',
84
+ value: 'my-cache-sg'
85
+ }
86
+ ]
87
+ }
88
+ ]
75
89
  }
76
90
  }
77
91
  }
@@ -30,9 +30,39 @@ module Awspec::Type
30
30
  resource_via_client.cache_parameter_group.cache_parameter_group_name == group_name
31
31
  end
32
32
 
33
+ def has_security_group?(sg_id)
34
+ return true if has_vpc_security_group_id?(sg_id)
35
+ return true if has_vpc_security_group_name?(sg_id)
36
+ return true if has_vpc_security_group_tag_name?(sg_id)
37
+ end
38
+
33
39
  def vpc_id
34
40
  cache_subnet_group = find_cache_subnet_group(resource_via_client.cache_subnet_group_name)
35
41
  cache_subnet_group.vpc_id if cache_subnet_group
36
42
  end
43
+
44
+ private
45
+
46
+ def has_vpc_security_group_id?(sg_id)
47
+ resource_security_group_ids.include?(sg_id)
48
+ end
49
+
50
+ def has_vpc_security_group_name?(sg_id)
51
+ res = select_security_group_by_group_name([sg_id])
52
+
53
+ return false unless res.count == 1
54
+ has_vpc_security_group_id?(res.first.group_id)
55
+ end
56
+
57
+ def has_vpc_security_group_tag_name?(sg_id)
58
+ res = select_security_group_by_tag_name([sg_id])
59
+
60
+ return false unless res.count == 1
61
+ has_vpc_security_group_id?(res.first.group_id)
62
+ end
63
+
64
+ def resource_security_group_ids
65
+ resource_via_client.security_groups.map(&:security_group_id)
66
+ end
37
67
  end
38
68
  end
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '0.72.0'
2
+ VERSION = '0.73.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.72.0
4
+ version: 0.73.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-22 00:00:00.000000000 Z
11
+ date: 2017-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec