awspec 0.28.0 → 0.28.1
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/Rakefile +1 -1
- data/doc/resource_types.md +504 -505
- data/lib/awspec/generator.rb +2 -3
- data/lib/awspec/helper/type.rb +7 -6
- data/lib/awspec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20ed13efcb8640c392acddfac6a0a5549a864327
|
4
|
+
data.tar.gz: 73089cd4e5a596637343845a2ca7b0e9c29ac278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf67c07ceb07b99fa0f7b084603928df154f1a10fde662db419002651b7f4ba537ee306334f6d9e288d27f8c21455a8f557979e2451b325fddd0a6d57d5f3a0e
|
7
|
+
data.tar.gz: 3fcc0f0602fa94a8e1a8765e4b5c410913af8468817a5f5b7a6b741c496502b12e506629536ebe9dd5b518e4c7d41fb10de08613e2d8c1e49351555d4beca83a
|
data/Rakefile
CHANGED
data/doc/resource_types.md
CHANGED
@@ -1,1030 +1,1067 @@
|
|
1
1
|
# Resource Types
|
2
2
|
|
3
|
-
[
|
4
|
-
| [
|
5
|
-
| [
|
6
|
-
| [security_group](#security_group)
|
7
|
-
| [vpc](#vpc)
|
8
|
-
| [s3_bucket](#s3_bucket)
|
9
|
-
| [route53_hosted_zone](#route53_hosted_zone)
|
10
|
-
| [autoscaling_group](#autoscaling_group)
|
11
|
-
| [subnet](#subnet)
|
12
|
-
| [route_table](#route_table)
|
3
|
+
[autoscaling_group](#autoscaling_group)
|
4
|
+
| [cloudwatch_alarm](#cloudwatch_alarm)
|
5
|
+
| [directconnect_virtual_interface](#directconnect_virtual_interface)
|
13
6
|
| [ebs](#ebs)
|
7
|
+
| [ec2](#ec2)
|
8
|
+
| [elasticache](#elasticache)
|
9
|
+
| [elasticache_cache_parameter_group](#elasticache_cache_parameter_group)
|
14
10
|
| [elb](#elb)
|
15
|
-
| [lambda](#lambda)
|
16
|
-
| [iam_user](#iam_user)
|
17
11
|
| [iam_group](#iam_group)
|
18
|
-
| [iam_role](#iam_role)
|
19
12
|
| [iam_policy](#iam_policy)
|
20
|
-
| [
|
21
|
-
| [
|
22
|
-
| [
|
23
|
-
| [ses_identity](#ses_identity)
|
24
|
-
| [network_acl](#network_acl)
|
25
|
-
| [directconnect_virtual_interface](#directconnect_virtual_interface)
|
13
|
+
| [iam_role](#iam_role)
|
14
|
+
| [iam_user](#iam_user)
|
15
|
+
| [lambda](#lambda)
|
26
16
|
| [nat_gateway](#nat_gateway)
|
17
|
+
| [network_acl](#network_acl)
|
18
|
+
| [rds](#rds)
|
19
|
+
| [rds_db_parameter_group](#rds_db_parameter_group)
|
20
|
+
| [route53_hosted_zone](#route53_hosted_zone)
|
21
|
+
| [route_table](#route_table)
|
22
|
+
| [s3_bucket](#s3_bucket)
|
23
|
+
| [security_group](#security_group)
|
24
|
+
| [ses_identity](#ses_identity)
|
25
|
+
| [subnet](#subnet)
|
26
|
+
| [vpc](#vpc)
|
27
27
|
|
28
|
-
## <a name="
|
28
|
+
## <a name="autoscaling_group">autoscaling_group</a>
|
29
29
|
|
30
|
-
|
30
|
+
AutoscalingGroup resource type.
|
31
31
|
|
32
32
|
### exist
|
33
33
|
|
34
34
|
```ruby
|
35
|
-
describe
|
35
|
+
describe autoscaling_group('my-auto-scaling-group') do
|
36
36
|
it { should exist }
|
37
37
|
end
|
38
38
|
```
|
39
39
|
|
40
40
|
|
41
|
-
###
|
41
|
+
### have_ec2
|
42
42
|
|
43
43
|
```ruby
|
44
|
-
describe
|
45
|
-
it { should
|
44
|
+
describe autoscaling_group('my-auto-scaling-group') do
|
45
|
+
it { should have_ec2('my-ec2') }
|
46
46
|
end
|
47
47
|
```
|
48
48
|
|
49
49
|
|
50
|
-
###
|
50
|
+
### have_elb
|
51
51
|
|
52
52
|
```ruby
|
53
|
-
describe
|
54
|
-
it { should
|
53
|
+
describe autoscaling_group('my-auto-scaling-group') do
|
54
|
+
it { should have_elb('my-elb') }
|
55
55
|
end
|
56
56
|
```
|
57
57
|
|
58
|
+
### 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(:health_check_type), its(:health_check_grace_period), its(:created_time), its(:placement_group), its(:vpc_zone_identifier), its(:status), its(:new_instances_protected_from_scale_in)
|
59
|
+
## <a name="cloudwatch_alarm">cloudwatch_alarm</a>
|
58
60
|
|
59
|
-
|
61
|
+
CloudwatchAlarm resource type.
|
62
|
+
|
63
|
+
### exist
|
60
64
|
|
61
65
|
```ruby
|
62
|
-
describe
|
63
|
-
it { should
|
64
|
-
it { should have_ebs('my-volume') }
|
66
|
+
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
67
|
+
it { should exist }
|
65
68
|
end
|
66
69
|
```
|
67
70
|
|
68
71
|
|
69
|
-
###
|
72
|
+
### have_alarm_action
|
70
73
|
|
71
74
|
```ruby
|
72
|
-
describe
|
73
|
-
it { should
|
75
|
+
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
76
|
+
it { should have_alarm_action('arn:aws:sns:ap-northeast-1:1234567890:sns_alert') }
|
74
77
|
end
|
75
78
|
```
|
76
79
|
|
77
80
|
|
78
|
-
###
|
81
|
+
### have_insufficient_data_action
|
79
82
|
|
80
83
|
```ruby
|
81
|
-
describe
|
82
|
-
it { should
|
83
|
-
it { should have_security_group('sg-1a2b3cd4') }
|
84
|
+
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
85
|
+
it { should have_insufficient_data_action('arn:aws:sns:ap-northeast-1:1234567890:sns_alert') }
|
84
86
|
end
|
85
87
|
```
|
86
88
|
|
87
89
|
|
88
|
-
###
|
90
|
+
### have_ok_action
|
89
91
|
|
90
92
|
```ruby
|
91
|
-
describe
|
92
|
-
it { should
|
93
|
-
it { should belong_to_subnet('my-subnet') }
|
93
|
+
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
94
|
+
it { should have_ok_action('arn:aws:sns:ap-northeast-1:1234567890:sns_alert') }
|
94
95
|
end
|
95
96
|
```
|
96
97
|
|
97
98
|
|
98
|
-
###
|
99
|
+
### belong_to_metric
|
99
100
|
|
100
101
|
```ruby
|
101
|
-
describe
|
102
|
-
it { should
|
103
|
-
it { should belong_to_vpc('my-vpc') }
|
102
|
+
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
103
|
+
it { should belong_to_metric('NumberOfProcesses').namespace('my-cloudwatch-namespace') }
|
104
104
|
end
|
105
105
|
```
|
106
106
|
|
107
|
+
### its(:alarm_name), its(:alarm_arn), its(:alarm_description), its(:alarm_configuration_updated_timestamp), its(:actions_enabled), its(:state_value), its(:state_reason), its(:state_reason_data), its(:state_updated_timestamp), its(:metric_name), its(:namespace), its(:statistic), its(:period), its(:unit), its(:evaluation_periods), its(:threshold), its(:comparison_operator)
|
108
|
+
## <a name="directconnect_virtual_interface">directconnect_virtual_interface</a>
|
107
109
|
|
108
|
-
|
109
|
-
### :unlock: Advanced use
|
110
|
-
|
111
|
-
`ec2` can use `Aws::EC2::Instance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html).
|
110
|
+
DirectconnectVirtualInterface resource type.
|
112
111
|
|
113
112
|
```ruby
|
114
|
-
describe
|
115
|
-
|
113
|
+
describe directconnect_virtual_interface('my-directconnect-virtual-interface') do
|
114
|
+
it { should exist }
|
115
|
+
it { should be_available }
|
116
|
+
its(:connection_id) { should eq 'dxcon-abcd5fgh' }
|
117
|
+
its(:virtual_interface_id) { should eq 'dxvif-aabbccdd' }
|
118
|
+
its(:amazon_address) { should eq '170.252.252.1/30' }
|
119
|
+
its(:customer_address) { should eq '123.456.789.2/30' }
|
120
|
+
its(:virtual_gateway_id) { should eq 'vgw-d234e5f6' }
|
116
121
|
end
|
117
122
|
```
|
118
123
|
|
119
|
-
|
124
|
+
|
125
|
+
### exist
|
120
126
|
|
121
127
|
```ruby
|
122
|
-
describe
|
123
|
-
|
128
|
+
describe directconnect_virtual_interface('my-directconnect-virtual-interface') do
|
129
|
+
it { should exist }
|
124
130
|
end
|
125
131
|
```
|
126
132
|
|
127
|
-
## <a name="rds">rds</a>
|
128
|
-
|
129
|
-
RDS resource type.
|
130
133
|
|
131
|
-
###
|
134
|
+
### be_confirming, be_verifying, be_pending, be_available, be_deleting, be_deleted, be_rejected
|
132
135
|
|
133
136
|
```ruby
|
134
|
-
describe
|
137
|
+
describe directconnect_virtual_interface('my-directconnect-virtual-interface') do
|
135
138
|
it { should exist }
|
139
|
+
it { should be_available }
|
136
140
|
end
|
137
141
|
```
|
138
142
|
|
143
|
+
### 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(:virtual_interface_state), its(:customer_router_config), its(:virtual_gateway_id)
|
144
|
+
## <a name="ebs">ebs</a>
|
145
|
+
|
146
|
+
EBS resource type.
|
139
147
|
|
140
|
-
###
|
148
|
+
### exist
|
141
149
|
|
142
150
|
```ruby
|
143
|
-
describe
|
144
|
-
it { should
|
151
|
+
describe ebs('my-volume') do
|
152
|
+
it { should exist }
|
145
153
|
end
|
146
154
|
```
|
147
155
|
|
148
156
|
|
149
|
-
###
|
157
|
+
### be_attached_to
|
150
158
|
|
151
159
|
```ruby
|
152
|
-
describe
|
153
|
-
it { should
|
160
|
+
describe ebs('my-volume') do
|
161
|
+
it { should be_attached_to('my-ec2') }
|
154
162
|
end
|
155
163
|
```
|
156
164
|
|
157
165
|
|
158
|
-
###
|
166
|
+
### be_creating, be_available, be_in_use, be_deleting, be_deleted, be_error
|
159
167
|
|
160
168
|
```ruby
|
161
|
-
describe
|
162
|
-
it { should
|
169
|
+
describe ebs('my-volume') do
|
170
|
+
it { should be_in_use }
|
163
171
|
end
|
164
172
|
```
|
165
173
|
|
166
174
|
|
167
|
-
###
|
175
|
+
### its(:volume_id), its(:size), its(:snapshot_id), its(:availability_zone), its(:state), its(:create_time), its(:volume_type), its(:iops), its(:encrypted), its(:kms_key_id)
|
176
|
+
### :unlock: Advanced use
|
177
|
+
|
178
|
+
`ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
|
168
179
|
|
169
180
|
```ruby
|
170
|
-
describe
|
171
|
-
|
172
|
-
it { should have_security_group('my-db-sg') }
|
181
|
+
describe ebs('my-volume') do
|
182
|
+
its('attachments.first.instance_id') { should eq 'i-ec12345a' }
|
173
183
|
end
|
174
184
|
```
|
175
185
|
|
176
|
-
|
177
|
-
### belong_to_db_subnet_group
|
186
|
+
or
|
178
187
|
|
179
188
|
```ruby
|
180
|
-
describe
|
181
|
-
|
189
|
+
describe ebs('my-volume') do
|
190
|
+
its('resource.attachments.first.instance_id') { should eq 'i-ec12345a' }
|
182
191
|
end
|
183
192
|
```
|
184
193
|
|
194
|
+
## <a name="ec2">ec2</a>
|
185
195
|
|
186
|
-
|
196
|
+
EC2 resource type.
|
197
|
+
|
198
|
+
### exist
|
187
199
|
|
188
200
|
```ruby
|
189
|
-
describe
|
190
|
-
it { should
|
191
|
-
it { should belong_to_subnet('db-subnet-a') }
|
201
|
+
describe ec2('my-ec2') do
|
202
|
+
it { should exist }
|
192
203
|
end
|
193
204
|
```
|
194
205
|
|
195
206
|
|
196
|
-
###
|
207
|
+
### be_disabled_api_termination
|
197
208
|
|
198
209
|
```ruby
|
199
|
-
describe
|
200
|
-
it { should
|
201
|
-
it { should belong_to_vpc('my-vpc') }
|
210
|
+
describe ec2('my-ec2') do
|
211
|
+
it { should be_disabled_api_termination }
|
202
212
|
end
|
203
213
|
```
|
204
214
|
|
205
215
|
|
206
|
-
###
|
207
|
-
### :unlock: Advanced use
|
208
|
-
|
209
|
-
`rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
|
216
|
+
### be_pending, be_running, be_shutting_down, be_terminated, be_stopping, be_stopped
|
210
217
|
|
211
218
|
```ruby
|
212
|
-
describe
|
213
|
-
|
219
|
+
describe ec2('my-ec2') do
|
220
|
+
it { should be_running }
|
214
221
|
end
|
215
222
|
```
|
216
223
|
|
217
|
-
|
224
|
+
|
225
|
+
### have_ebs
|
218
226
|
|
219
227
|
```ruby
|
220
|
-
describe
|
221
|
-
|
228
|
+
describe ec2('my-ec2') do
|
229
|
+
it { should have_ebs('vol-123a123b') }
|
230
|
+
it { should have_ebs('my-volume') }
|
222
231
|
end
|
223
232
|
```
|
224
233
|
|
225
|
-
## <a name="rds_db_parameter_group">rds_db_parameter_group</a>
|
226
234
|
|
227
|
-
|
235
|
+
### have_eip
|
228
236
|
|
229
237
|
```ruby
|
230
|
-
describe
|
231
|
-
|
232
|
-
its(:innodb_buffer_pool_size) { '{DBInstanceClassMemory*3/4}' }
|
238
|
+
describe ec2('my-ec2') do
|
239
|
+
it { should have_eip('123.0.456.789') }
|
233
240
|
end
|
234
241
|
```
|
235
242
|
|
236
|
-
|
243
|
+
|
244
|
+
### have_security_group
|
237
245
|
|
238
246
|
```ruby
|
239
|
-
describe
|
240
|
-
it { should
|
247
|
+
describe ec2('my-ec2') do
|
248
|
+
it { should have_security_group('my-security-group-name') }
|
249
|
+
it { should have_security_group('sg-1a2b3cd4') }
|
241
250
|
end
|
242
251
|
```
|
243
252
|
|
244
253
|
|
245
|
-
|
246
|
-
|
247
|
-
SecurityGroup resource type.
|
248
|
-
|
249
|
-
### exist
|
254
|
+
### belong_to_subnet
|
250
255
|
|
251
256
|
```ruby
|
252
|
-
describe
|
253
|
-
it { should
|
257
|
+
describe ec2('my-ec2') do
|
258
|
+
it { should belong_to_subnet('subnet-1234a567') }
|
259
|
+
it { should belong_to_subnet('my-subnet') }
|
254
260
|
end
|
255
261
|
```
|
256
262
|
|
257
263
|
|
258
|
-
###
|
264
|
+
### belong_to_vpc
|
259
265
|
|
260
266
|
```ruby
|
261
|
-
describe
|
262
|
-
|
263
|
-
|
264
|
-
its(:inbound) { should be_opened(80).protocol('tcp').for('203.0.113.1/32') }
|
265
|
-
its(:inbound) { should be_opened(22).protocol('tcp').for('sg-5a6b7cd8') }
|
267
|
+
describe ec2('my-ec2') do
|
268
|
+
it { should belong_to_vpc('vpc-ab123cde') }
|
269
|
+
it { should belong_to_vpc('my-vpc') }
|
266
270
|
end
|
267
271
|
```
|
268
272
|
|
269
273
|
|
270
|
-
### its(:
|
274
|
+
### its(:instance_id), its(:image_id), its(:private_dns_name), its(:public_dns_name), its(:state_transition_reason), its(:key_name), its(:ami_launch_index), its(:instance_type), its(:launch_time), its(:placement), its(:kernel_id), its(:ramdisk_id), its(:platform), its(:monitoring), its(:subnet_id), its(:vpc_id), its(:private_ip_address), its(:public_ip_address), its(:state_reason), its(:architecture), its(:root_device_type), its(:root_device_name), its(:virtualization_type), its(:instance_lifecycle), its(:spot_instance_request_id), its(:client_token), its(:source_dest_check), its(:hypervisor), its(:iam_instance_profile), its(:ebs_optimized), its(:sriov_net_support)
|
271
275
|
### :unlock: Advanced use
|
272
276
|
|
273
|
-
`
|
277
|
+
`ec2` can use `Aws::EC2::Instance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html).
|
274
278
|
|
275
279
|
```ruby
|
276
|
-
describe
|
277
|
-
its('
|
280
|
+
describe ec2('my-ec2') do
|
281
|
+
its('vpc.id') { should eq 'vpc-ab123cde' }
|
278
282
|
end
|
279
283
|
```
|
280
284
|
|
281
285
|
or
|
282
286
|
|
283
287
|
```ruby
|
284
|
-
describe
|
285
|
-
its('resource.
|
288
|
+
describe ec2('my-ec2') do
|
289
|
+
its('resource.vpc.id') { should eq 'vpc-ab123cde' }
|
286
290
|
end
|
287
291
|
```
|
288
292
|
|
289
|
-
## <a name="
|
293
|
+
## <a name="elasticache">elasticache</a>
|
290
294
|
|
291
|
-
|
295
|
+
Elasticache resource type.
|
292
296
|
|
293
297
|
### exist
|
294
298
|
|
295
299
|
```ruby
|
296
|
-
describe
|
300
|
+
describe elasticache('my-rep-group-001') do
|
297
301
|
it { should exist }
|
298
302
|
end
|
299
303
|
```
|
300
304
|
|
301
305
|
|
302
|
-
### be_available,
|
306
|
+
### be_available, be_creating, be_deleted, be_deleting, be_incompatible_network, be_modifying, be_rebooting_cache_cluster_nodes, be_restore_failed, be_snapshotting
|
303
307
|
|
304
308
|
```ruby
|
305
|
-
describe
|
309
|
+
describe elasticache('my-rep-group-001') do
|
306
310
|
it { should be_available }
|
307
311
|
end
|
308
312
|
```
|
309
313
|
|
310
314
|
|
311
|
-
###
|
315
|
+
### have_cache_parameter_group
|
312
316
|
|
313
317
|
```ruby
|
314
|
-
describe
|
315
|
-
it { should
|
316
|
-
it { should have_network_acl('my-network-acl') }
|
318
|
+
describe elasticache('my-rep-group-001') do
|
319
|
+
it { should have_cache_parameter_group('my-cache-parameter-group') }
|
317
320
|
end
|
318
321
|
```
|
319
322
|
|
320
323
|
|
321
|
-
###
|
324
|
+
### belong_to_cache_subnet_group
|
322
325
|
|
323
326
|
```ruby
|
324
|
-
describe
|
325
|
-
it { should
|
326
|
-
it { should have_network_acl('my-network-acl') }
|
327
|
+
describe elasticache('my-rep-group-001') do
|
328
|
+
it { should belong_to_cache_subnet_group('my-cache-subnet-group') }
|
327
329
|
end
|
328
330
|
```
|
329
331
|
|
330
332
|
|
331
|
-
###
|
332
|
-
### :unlock: Advanced use
|
333
|
-
|
334
|
-
`vpc` can use `Aws::EC2::Vpc` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Vpc.html).
|
333
|
+
### belong_to_replication_group
|
335
334
|
|
336
335
|
```ruby
|
337
|
-
describe
|
338
|
-
|
336
|
+
describe elasticache('my-rep-group-001') do
|
337
|
+
it { should belong_to_replication_group('my-rep-group') }
|
339
338
|
end
|
340
339
|
```
|
341
340
|
|
342
|
-
|
341
|
+
|
342
|
+
### belong_to_vpc
|
343
343
|
|
344
344
|
```ruby
|
345
|
-
describe
|
346
|
-
|
345
|
+
describe elasticache('my-rep-group-001') do
|
346
|
+
it { should belong_to_vpc('my-vpc') }
|
347
347
|
end
|
348
348
|
```
|
349
349
|
|
350
|
-
|
350
|
+
### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_subnet_group_name), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window)
|
351
|
+
## <a name="elasticache_cache_parameter_group">elasticache_cache_parameter_group</a>
|
352
|
+
|
353
|
+
ElasticacheCacheParameterGroup resource type.
|
354
|
+
|
355
|
+
```ruby
|
356
|
+
describe elasticache_cache_parameter_group('my-cache-parameter-group') do
|
357
|
+
it { should exist }
|
358
|
+
its(:activerehashing) { should eq 'yes' }
|
359
|
+
its(:client_output_buffer_limit_pubsub_hard_limit) { should eq '33554432' }
|
360
|
+
end
|
361
|
+
```
|
351
362
|
|
352
|
-
S3Bucket resource type.
|
353
363
|
|
354
364
|
### exist
|
355
365
|
|
356
366
|
```ruby
|
357
|
-
describe
|
367
|
+
describe elasticache_cache_parameter_group('my-cache-parameter-group') do
|
358
368
|
it { should exist }
|
359
369
|
end
|
360
370
|
```
|
361
371
|
|
362
372
|
|
363
|
-
|
373
|
+
## <a name="elb">elb</a>
|
374
|
+
|
375
|
+
ELB resource type.
|
376
|
+
|
377
|
+
### exist
|
364
378
|
|
365
379
|
```ruby
|
366
|
-
describe
|
367
|
-
|
368
|
-
its(:acl_grants_count) { should eq 3 }
|
369
|
-
it { should have_acl_grant(grantee: 'my-bucket-owner', permission: 'FULL_CONTROL') }
|
370
|
-
it { should have_acl_grant(grantee: 'http://acs.amazonaws.com/groups/s3/LogDelivery', permission: 'WRITE') }
|
371
|
-
it { should have_acl_grant(grantee: '68f4bb06b094152df53893bfba57760e', permission: 'READ') }
|
380
|
+
describe elb('my-elb') do
|
381
|
+
it { should exist }
|
372
382
|
end
|
373
383
|
```
|
374
384
|
|
375
385
|
|
376
|
-
###
|
386
|
+
### have_ec2
|
377
387
|
|
378
388
|
```ruby
|
379
|
-
describe
|
380
|
-
it
|
381
|
-
should have_cors_rule(
|
382
|
-
allowed_methods: ['GET'],
|
383
|
-
allowed_origins: ['*']
|
384
|
-
)
|
385
|
-
end
|
386
|
-
it do
|
387
|
-
should have_cors_rule(
|
388
|
-
allowed_headers: ['*'],
|
389
|
-
allowed_methods: ['GET'],
|
390
|
-
allowed_origins: ['https://example.org', 'https://example.com'],
|
391
|
-
expose_headers: ['X-Custom-Header'],
|
392
|
-
max_age_seconds: 3600
|
393
|
-
)
|
394
|
-
end
|
389
|
+
describe elb('my-elb') do
|
390
|
+
it { should have_ec2('my-ec2') }
|
395
391
|
end
|
396
392
|
```
|
397
393
|
|
398
394
|
|
399
|
-
###
|
395
|
+
### have_listener
|
396
|
+
|
397
|
+
http://docs.aws.amazon.com/en_us/ElasticLoadBalancing/latest/DeveloperGuide/elb-listener-config.html
|
400
398
|
|
401
399
|
```ruby
|
402
|
-
describe
|
403
|
-
it { should
|
400
|
+
describe elb('my-elb') do
|
401
|
+
it { should have_listener(protocol: 'HTTPS', port: 443, instance_protocol: 'HTTP', instance_port: 80) }
|
404
402
|
end
|
405
403
|
```
|
406
404
|
|
407
405
|
|
408
|
-
###
|
406
|
+
### have_security_group
|
409
407
|
|
410
408
|
```ruby
|
411
|
-
describe
|
412
|
-
|
413
|
-
{
|
414
|
-
"Version": "2012-10-17",
|
415
|
-
"Statement": [
|
416
|
-
{
|
417
|
-
"Sid": "AllowPublicRead",
|
418
|
-
"Effect": "Allow",
|
419
|
-
"Principal": "*",
|
420
|
-
"Action": "s3:GetObject",
|
421
|
-
"Resource": "arn:aws:s3:::my-bucket/*"
|
422
|
-
}
|
423
|
-
]
|
424
|
-
}
|
425
|
-
POLICY
|
426
|
-
end
|
409
|
+
describe elb('my-elb') do
|
410
|
+
it { should have_security_group('my-lb-security-group-tag-name') }
|
427
411
|
end
|
428
412
|
```
|
429
413
|
|
430
414
|
|
431
|
-
###
|
432
|
-
### :unlock: Advanced use
|
433
|
-
|
434
|
-
`s3_bucket` can use `Aws::S3::Bucket` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Bucket.html).
|
415
|
+
### have_subnet
|
435
416
|
|
436
417
|
```ruby
|
437
|
-
describe
|
438
|
-
|
418
|
+
describe elb('my-elb') do
|
419
|
+
it { should have_subnet('my-subnet') }
|
439
420
|
end
|
440
421
|
```
|
441
422
|
|
442
|
-
|
423
|
+
|
424
|
+
### belong_to_vpc
|
443
425
|
|
444
426
|
```ruby
|
445
|
-
describe
|
446
|
-
|
427
|
+
describe elb('my-elb') do
|
428
|
+
it { should belong_to_vpc('my-vpc') }
|
447
429
|
end
|
448
430
|
```
|
449
431
|
|
450
|
-
|
432
|
+
### its(:health_check_target), its(:health_check_interval), its(:health_check_timeout), its(:health_check_unhealthy_threshold), its(:health_check_healthy_threshold), its(:load_balancer_name), its(:dns_name), its(:canonical_hosted_zone_name), its(:canonical_hosted_zone_name_id), its(:vpc_id), its(:created_time), its(:scheme)
|
433
|
+
## <a name="iam_group">iam_group</a>
|
451
434
|
|
452
|
-
|
435
|
+
IamGroup resource type.
|
453
436
|
|
454
437
|
### exist
|
455
438
|
|
456
439
|
```ruby
|
457
|
-
describe
|
440
|
+
describe iam_group('my-iam-group') do
|
458
441
|
it { should exist }
|
459
442
|
end
|
460
443
|
```
|
461
444
|
|
462
445
|
|
463
|
-
###
|
446
|
+
### be_allowed_action
|
464
447
|
|
465
448
|
```ruby
|
466
|
-
describe
|
467
|
-
|
468
|
-
it { should
|
469
|
-
it { should have_record_set('*.example.com.').cname('example.com') }
|
470
|
-
it { should have_record_set('example.com.').mx('10 mail.example.com') }
|
471
|
-
it { should have_record_set('mail.example.com.').a('123.456.7.890').ttl(3600) }
|
472
|
-
ns = 'ns-123.awsdns-45.net.
|
473
|
-
ns-6789.awsdns-01.org.
|
474
|
-
ns-2345.awsdns-67.co.uk.
|
475
|
-
ns-890.awsdns-12.com.'
|
476
|
-
it { should have_record_set('example.com.').ns(ns) }
|
477
|
-
it { should have_record_set('s3.example.com.').alias('s3-website-us-east-1.amazonaws.com.', 'Z2ABCDEFGHIJKL') }
|
449
|
+
describe iam_group('my-iam-group') do
|
450
|
+
it { should be_allowed_action('ec2:DescribeInstances') }
|
451
|
+
it { should be_allowed_action('s3:Put*').resource_arn('arn:aws:s3:::my-bucket-name/*') }
|
478
452
|
end
|
479
453
|
```
|
480
454
|
|
481
|
-
### its(:id), its(:name), its(:caller_reference), its(:config), its(:resource_record_set_count)
|
482
|
-
## <a name="autoscaling_group">autoscaling_group</a>
|
483
455
|
|
484
|
-
|
485
|
-
|
486
|
-
### exist
|
456
|
+
### have_iam_policy
|
487
457
|
|
488
458
|
```ruby
|
489
|
-
describe
|
490
|
-
it { should
|
459
|
+
describe iam_group('my-iam-group') do
|
460
|
+
it { should have_iam_policy('ReadOnlyAccess') }
|
491
461
|
end
|
492
462
|
```
|
493
463
|
|
494
464
|
|
495
|
-
###
|
465
|
+
### have_iam_user
|
496
466
|
|
497
467
|
```ruby
|
498
|
-
describe
|
499
|
-
it { should
|
468
|
+
describe iam_group('my-iam-group') do
|
469
|
+
it { should have_iam_user('my-iam-user') }
|
500
470
|
end
|
501
471
|
```
|
502
472
|
|
473
|
+
### its(:path), its(:group_name), its(:group_id), its(:arn), its(:create_date)
|
474
|
+
## <a name="iam_policy">iam_policy</a>
|
475
|
+
|
476
|
+
IamPolicy resource type.
|
503
477
|
|
504
|
-
###
|
478
|
+
### exist
|
505
479
|
|
506
480
|
```ruby
|
507
|
-
describe
|
508
|
-
it { should
|
481
|
+
describe iam_policy('my-iam-policy') do
|
482
|
+
it { should exist }
|
509
483
|
end
|
510
484
|
```
|
511
485
|
|
512
|
-
### 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(:health_check_type), its(:health_check_grace_period), its(:created_time), its(:placement_group), its(:vpc_zone_identifier), its(:status), its(:new_instances_protected_from_scale_in)
|
513
|
-
## <a name="subnet">subnet</a>
|
514
|
-
|
515
|
-
Subnet resource type.
|
516
486
|
|
517
|
-
###
|
487
|
+
### be_attachable
|
518
488
|
|
519
489
|
```ruby
|
520
|
-
describe
|
521
|
-
it { should
|
490
|
+
describe iam_policy('my-iam-policy') do
|
491
|
+
it { should be_attachable }
|
522
492
|
end
|
523
493
|
```
|
524
494
|
|
525
495
|
|
526
|
-
###
|
496
|
+
### be_attached_to_group
|
527
497
|
|
528
498
|
```ruby
|
529
|
-
describe
|
530
|
-
it { should
|
499
|
+
describe iam_policy('my-iam-policy') do
|
500
|
+
it { should be_attached_to_group('my-iam-group') }
|
531
501
|
end
|
532
502
|
```
|
533
503
|
|
534
504
|
|
535
|
-
###
|
536
|
-
### :unlock: Advanced use
|
537
|
-
|
538
|
-
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
505
|
+
### be_attached_to_role
|
539
506
|
|
540
507
|
```ruby
|
541
|
-
describe
|
542
|
-
|
508
|
+
describe iam_policy('my-iam-policy') do
|
509
|
+
it { should be_attached_to_role('HelloIAmGodRole') }
|
543
510
|
end
|
544
511
|
```
|
545
512
|
|
546
|
-
|
513
|
+
|
514
|
+
### be_attached_to_user
|
547
515
|
|
548
516
|
```ruby
|
549
|
-
describe
|
550
|
-
|
517
|
+
describe iam_policy('my-iam-policy') do
|
518
|
+
it { should be_attached_to_policy('my-iam-policy') }
|
551
519
|
end
|
552
520
|
```
|
553
521
|
|
554
|
-
|
522
|
+
### its(:policy_name), its(:policy_id), its(:arn), its(:path), its(:default_version_id), its(:attachment_count), its(:is_attachable), its(:description), its(:create_date), its(:update_date)
|
523
|
+
## <a name="iam_role">iam_role</a>
|
555
524
|
|
556
|
-
|
525
|
+
IamRole resource type.
|
557
526
|
|
558
527
|
### exist
|
559
528
|
|
560
529
|
```ruby
|
561
|
-
describe
|
530
|
+
describe iam_role('my-iam-role') do
|
562
531
|
it { should exist }
|
563
532
|
end
|
564
533
|
```
|
565
534
|
|
566
535
|
|
567
|
-
###
|
536
|
+
### be_allowed_action
|
568
537
|
|
569
538
|
```ruby
|
570
|
-
describe
|
571
|
-
it { should
|
572
|
-
it { should
|
573
|
-
it { should have_route('192.168.1.0/24').target(instance: 'my-ec2') }
|
574
|
-
it { should have_route('192.168.2.0/24').target(vpc_peering_connection: 'my-pcx') }
|
575
|
-
it { should have_route('192.168.3.0/24').target(nat: 'nat-7ff7777f') }
|
539
|
+
describe iam_role('my-iam-role') do
|
540
|
+
it { should be_allowed_action('ec2:DescribeInstances') }
|
541
|
+
it { should be_allowed_action('s3:Put*').resource_arn('arn:aws:s3:::my-bucket-name/*') }
|
576
542
|
end
|
577
543
|
```
|
578
544
|
|
579
545
|
|
580
|
-
###
|
546
|
+
### have_iam_policy
|
581
547
|
|
582
548
|
```ruby
|
583
|
-
describe
|
584
|
-
it { should
|
549
|
+
describe iam_role('my-iam-role') do
|
550
|
+
it { should have_iam_policy('ReadOnlyAccess') }
|
585
551
|
end
|
586
552
|
```
|
587
553
|
|
554
|
+
### its(:path), its(:role_name), its(:role_id), its(:arn), its(:create_date), its(:assume_role_policy_document)
|
555
|
+
## <a name="iam_user">iam_user</a>
|
588
556
|
|
589
|
-
|
590
|
-
### :unlock: Advanced use
|
557
|
+
IamUser resource type.
|
591
558
|
|
592
|
-
|
559
|
+
### exist
|
593
560
|
|
594
561
|
```ruby
|
595
|
-
describe
|
596
|
-
|
562
|
+
describe iam_user('my-iam-user') do
|
563
|
+
it { should exist }
|
597
564
|
end
|
598
565
|
```
|
599
566
|
|
600
|
-
|
567
|
+
|
568
|
+
### be_allowed_action
|
601
569
|
|
602
570
|
```ruby
|
603
|
-
describe
|
604
|
-
|
571
|
+
describe iam_user('my-iam-user') do
|
572
|
+
it { should be_allowed_action('ec2:DescribeInstances') }
|
573
|
+
it { should be_allowed_action('s3:Put*').resource_arn('arn:aws:s3:::my-bucket-name/*') }
|
605
574
|
end
|
606
575
|
```
|
607
576
|
|
608
|
-
## <a name="ebs">ebs</a>
|
609
577
|
|
610
|
-
|
578
|
+
### have_iam_policy
|
579
|
+
|
580
|
+
```ruby
|
581
|
+
describe iam_user('my-iam-user') do
|
582
|
+
it { should have_iam_policy('ReadOnlyAccess') }
|
583
|
+
end
|
584
|
+
```
|
585
|
+
|
586
|
+
|
587
|
+
### belong_to_iam_group
|
588
|
+
|
589
|
+
```ruby
|
590
|
+
describe iam_user('my-iam-user') do
|
591
|
+
it { should belong_to_iam_group('my-iam-group') }
|
592
|
+
end
|
593
|
+
```
|
594
|
+
|
595
|
+
### its(:path), its(:user_name), its(:user_id), its(:arn), its(:create_date), its(:password_last_used)
|
596
|
+
## <a name="lambda">lambda</a>
|
597
|
+
|
598
|
+
Lambda resource type.
|
611
599
|
|
612
600
|
### exist
|
613
601
|
|
614
602
|
```ruby
|
615
|
-
describe
|
603
|
+
describe lambda('my-lambda-function-name') do
|
616
604
|
it { should exist }
|
617
605
|
end
|
618
606
|
```
|
619
607
|
|
620
608
|
|
621
|
-
###
|
609
|
+
### have_event_source
|
610
|
+
|
611
|
+
This matcher does not support Amazon S3 event sources. ( [See SDK doc](http://docs.aws.amazon.com/sdkforruby/api/Aws/Lambda/Client.html#list_event_source_mappings-instance_method) )
|
612
|
+
|
613
|
+
### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version)
|
614
|
+
## <a name="nat_gateway">nat_gateway</a>
|
615
|
+
|
616
|
+
NatGateway resource type.
|
617
|
+
|
618
|
+
### exist
|
622
619
|
|
623
620
|
```ruby
|
624
|
-
describe
|
625
|
-
it { should
|
621
|
+
describe nat_gateway('nat-7ff7777f') do
|
622
|
+
it { should exist }
|
626
623
|
end
|
627
624
|
```
|
628
625
|
|
629
626
|
|
630
|
-
###
|
627
|
+
### be_pending, be_failed, be_available, be_deleting, be_deleted
|
631
628
|
|
632
629
|
```ruby
|
633
|
-
describe
|
634
|
-
it { should
|
630
|
+
describe nat_gateway('nat-7ff7777f') do
|
631
|
+
it { should be_available }
|
635
632
|
end
|
636
633
|
```
|
637
634
|
|
638
635
|
|
639
|
-
###
|
640
|
-
### :unlock: Advanced use
|
641
|
-
|
642
|
-
`ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
|
636
|
+
### have_eip
|
643
637
|
|
644
638
|
```ruby
|
645
|
-
describe
|
646
|
-
|
639
|
+
describe nat_gateway('nat-7ff7777f') do
|
640
|
+
it { should have_eip('123.0.456.789') }
|
647
641
|
end
|
648
642
|
```
|
649
643
|
|
650
|
-
|
644
|
+
|
645
|
+
### belong_to_vpc
|
651
646
|
|
652
647
|
```ruby
|
653
|
-
describe
|
654
|
-
|
648
|
+
describe nat_gateway('nat-7ff7777f') do
|
649
|
+
it { should belong_to_vpc('my-vpc') }
|
655
650
|
end
|
656
651
|
```
|
657
652
|
|
658
|
-
|
653
|
+
### its(:vpc_id), its(:subnet_id), its(:nat_gateway_id), its(:create_time), its(:delete_time), its(:state), its(:failure_code), its(:failure_message)
|
654
|
+
## <a name="network_acl">network_acl</a>
|
659
655
|
|
660
|
-
|
656
|
+
NetworkAcl resource type.
|
661
657
|
|
662
658
|
### exist
|
663
659
|
|
664
660
|
```ruby
|
665
|
-
describe
|
661
|
+
describe network_acl('my-network-acl') do
|
666
662
|
it { should exist }
|
667
663
|
end
|
668
664
|
```
|
669
665
|
|
670
666
|
|
671
|
-
###
|
667
|
+
### have_subnet
|
672
668
|
|
673
669
|
```ruby
|
674
|
-
describe
|
675
|
-
it { should
|
670
|
+
describe network_acl('my-network-acl') do
|
671
|
+
it { should have_subnet('my-subnet') }
|
676
672
|
end
|
677
673
|
```
|
678
674
|
|
679
675
|
|
680
|
-
###
|
681
|
-
|
682
|
-
http://docs.aws.amazon.com/en_us/ElasticLoadBalancing/latest/DeveloperGuide/elb-listener-config.html
|
676
|
+
### belong_to_vpc
|
683
677
|
|
684
678
|
```ruby
|
685
|
-
describe
|
686
|
-
it { should
|
679
|
+
describe network_acl('my-network-acl') do
|
680
|
+
it { should belong_to_vpc('my-vpc') }
|
687
681
|
end
|
688
682
|
```
|
689
683
|
|
690
684
|
|
691
|
-
###
|
685
|
+
### its(:inbound), its(:outbound), its(:inbound_entries_count), its(:outbound_entries_count)
|
692
686
|
|
693
687
|
```ruby
|
694
|
-
describe
|
695
|
-
|
688
|
+
describe network_acl('my-network-acl') do
|
689
|
+
its(:inbound) { should be_allowed(80).protocol('tcp').source('123.0.456.789/32') }
|
690
|
+
its(:inbound) { should be_denied.rule_number('*').source('0.0.0.0/0') }
|
691
|
+
its(:outbound) { should be_allowed.protocol('ALL').source('0.0.0.0/0') }
|
692
|
+
its(:inbound_entries_count) { should eq 3 }
|
693
|
+
its(:outbound_entries_count) { should eq 2 }
|
696
694
|
end
|
697
695
|
```
|
698
696
|
|
699
697
|
|
700
|
-
###
|
698
|
+
### its(:inbound_entries_count), its(:outbound_entries_count), its(:network_acl_id), its(:vpc_id), its(:is_default)
|
699
|
+
### :unlock: Advanced use
|
700
|
+
|
701
|
+
`network_acl` can use `Aws::EC2::NetworkAcl` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/NetworkAcl.html).
|
701
702
|
|
702
703
|
```ruby
|
703
|
-
describe
|
704
|
-
|
704
|
+
describe network_acl('my-network-acl') do
|
705
|
+
its('vpc.id') { should eq 'vpc-ab123cde' }
|
705
706
|
end
|
706
707
|
```
|
707
708
|
|
708
|
-
|
709
|
-
### belong_to_vpc
|
709
|
+
or
|
710
710
|
|
711
711
|
```ruby
|
712
|
-
describe
|
713
|
-
|
712
|
+
describe network_acl('my-network-acl') do
|
713
|
+
its('resource.vpc.id') { should eq 'vpc-ab123cde' }
|
714
714
|
end
|
715
715
|
```
|
716
716
|
|
717
|
-
|
718
|
-
## <a name="lambda">lambda</a>
|
717
|
+
## <a name="rds">rds</a>
|
719
718
|
|
720
|
-
|
719
|
+
RDS resource type.
|
721
720
|
|
722
721
|
### exist
|
723
722
|
|
724
723
|
```ruby
|
725
|
-
describe
|
724
|
+
describe rds('my-rds') do
|
726
725
|
it { should exist }
|
727
726
|
end
|
728
727
|
```
|
729
728
|
|
730
729
|
|
731
|
-
###
|
732
|
-
|
733
|
-
This matcher does not support Amazon S3 event sources. ( [See SDK doc](http://docs.aws.amazon.com/sdkforruby/api/Aws/Lambda/Client.html#list_event_source_mappings-instance_method) )
|
730
|
+
### be_available, be_backing_up, be_creating, be_deleting, be_failed, be_inaccessible_encryption_credentials, be_incompatible_credentials, be_incompatible_network, be_incompatible_option_group, be_incompatible_parameters, be_incompatible_restore, be_maintenance, be_modifying, be_rebooting, be_renaming, be_resetting_master_credentials, be_restore_error, be_storage_full, be_upgrading
|
734
731
|
|
735
|
-
|
736
|
-
|
732
|
+
```ruby
|
733
|
+
describe rds('my-rds') do
|
734
|
+
it { should be_available }
|
735
|
+
end
|
736
|
+
```
|
737
737
|
|
738
|
-
IamUser resource type.
|
739
738
|
|
740
|
-
###
|
739
|
+
### have_db_parameter_group
|
741
740
|
|
742
741
|
```ruby
|
743
|
-
describe
|
744
|
-
it { should
|
742
|
+
describe rds('my-rds') do
|
743
|
+
it { should belong_to_db_subnet_group('my-db-subnet-group') }
|
745
744
|
end
|
746
745
|
```
|
747
746
|
|
748
747
|
|
749
|
-
###
|
748
|
+
### have_option_group
|
750
749
|
|
751
750
|
```ruby
|
752
|
-
describe
|
753
|
-
it { should
|
754
|
-
it { should be_allowed_action('s3:Put*').resource_arn('arn:aws:s3:::my-bucket-name/*') }
|
751
|
+
describe rds('my-rds') do
|
752
|
+
it { should have_option_group('default:mysql-5-6') }
|
755
753
|
end
|
756
754
|
```
|
757
755
|
|
758
756
|
|
759
|
-
###
|
757
|
+
### have_security_group
|
760
758
|
|
761
759
|
```ruby
|
762
|
-
describe
|
763
|
-
it { should
|
760
|
+
describe rds('my-rds') do
|
761
|
+
it { should have_security_group('sg-5a6b7cd8') }
|
762
|
+
it { should have_security_group('my-db-sg') }
|
764
763
|
end
|
765
764
|
```
|
766
765
|
|
767
766
|
|
768
|
-
###
|
767
|
+
### belong_to_db_subnet_group
|
769
768
|
|
770
769
|
```ruby
|
771
|
-
describe
|
772
|
-
it { should
|
770
|
+
describe rds('my-rds') do
|
771
|
+
it { should belong_to_db_subnet_group('my-db-subnet-group') }
|
773
772
|
end
|
774
773
|
```
|
775
774
|
|
776
|
-
### its(:path), its(:user_name), its(:user_id), its(:arn), its(:create_date), its(:password_last_used)
|
777
|
-
## <a name="iam_group">iam_group</a>
|
778
|
-
|
779
|
-
IamGroup resource type.
|
780
775
|
|
781
|
-
###
|
776
|
+
### belong_to_subnet
|
782
777
|
|
783
778
|
```ruby
|
784
|
-
describe
|
785
|
-
it { should
|
779
|
+
describe rds('my-rds') do
|
780
|
+
it { should belong_to_subnet('subnet-8901b123') }
|
781
|
+
it { should belong_to_subnet('db-subnet-a') }
|
786
782
|
end
|
787
783
|
```
|
788
784
|
|
789
785
|
|
790
|
-
###
|
786
|
+
### belong_to_vpc
|
791
787
|
|
792
788
|
```ruby
|
793
|
-
describe
|
794
|
-
it { should
|
795
|
-
it { should
|
789
|
+
describe rds('my-rds') do
|
790
|
+
it { should belong_to_vpc('vpc-ab123cde') }
|
791
|
+
it { should belong_to_vpc('my-vpc') }
|
796
792
|
end
|
797
793
|
```
|
798
794
|
|
799
795
|
|
800
|
-
###
|
796
|
+
### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn)
|
797
|
+
### :unlock: Advanced use
|
798
|
+
|
799
|
+
`rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
|
801
800
|
|
802
801
|
```ruby
|
803
|
-
describe
|
804
|
-
|
802
|
+
describe rds('my-rds') do
|
803
|
+
its('db_subnet_group.db_subnet_group_name') { should eq 'my-db-subnet-group' }
|
805
804
|
end
|
806
805
|
```
|
807
806
|
|
808
|
-
|
809
|
-
### have_iam_user
|
807
|
+
or
|
810
808
|
|
811
809
|
```ruby
|
812
|
-
describe
|
813
|
-
|
810
|
+
describe rds('my-rds') do
|
811
|
+
its('resource.db_subnet_group.db_subnet_group_name') { should eq 'my-db-subnet-group' }
|
814
812
|
end
|
815
813
|
```
|
816
814
|
|
817
|
-
|
818
|
-
## <a name="iam_role">iam_role</a>
|
815
|
+
## <a name="rds_db_parameter_group">rds_db_parameter_group</a>
|
819
816
|
|
820
|
-
|
817
|
+
RdsDbParameterGroup resource type.
|
818
|
+
|
819
|
+
```ruby
|
820
|
+
describe rds_db_parameter_group('my-rds-db-parameter-group') do
|
821
|
+
its(:basedir) { should eq '/rdsdbbin/mysql' }
|
822
|
+
its(:innodb_buffer_pool_size) { '{DBInstanceClassMemory*3/4}' }
|
823
|
+
end
|
824
|
+
```
|
821
825
|
|
822
826
|
### exist
|
823
827
|
|
824
828
|
```ruby
|
825
|
-
describe
|
829
|
+
describe rds_db_parameter_group('my-rds-db-parameter-group') do
|
826
830
|
it { should exist }
|
827
831
|
end
|
828
832
|
```
|
829
833
|
|
830
834
|
|
831
|
-
|
835
|
+
## <a name="route53_hosted_zone">route53_hosted_zone</a>
|
836
|
+
|
837
|
+
Route53HostedZone resource type.
|
838
|
+
|
839
|
+
### exist
|
832
840
|
|
833
841
|
```ruby
|
834
|
-
describe
|
835
|
-
it { should
|
836
|
-
it { should be_allowed_action('s3:Put*').resource_arn('arn:aws:s3:::my-bucket-name/*') }
|
842
|
+
describe route53_hosted_zone('example.com.') do
|
843
|
+
it { should exist }
|
837
844
|
end
|
838
845
|
```
|
839
846
|
|
840
847
|
|
841
|
-
###
|
848
|
+
### have_record_set
|
842
849
|
|
843
850
|
```ruby
|
844
|
-
describe
|
845
|
-
|
851
|
+
describe route53_hosted_zone('example.com.') do
|
852
|
+
its(:resource_record_set_count) { should eq 6 }
|
853
|
+
it { should have_record_set('example.com.').a('123.456.7.890') }
|
854
|
+
it { should have_record_set('*.example.com.').cname('example.com') }
|
855
|
+
it { should have_record_set('example.com.').mx('10 mail.example.com') }
|
856
|
+
it { should have_record_set('mail.example.com.').a('123.456.7.890').ttl(3600) }
|
857
|
+
ns = 'ns-123.awsdns-45.net.
|
858
|
+
ns-6789.awsdns-01.org.
|
859
|
+
ns-2345.awsdns-67.co.uk.
|
860
|
+
ns-890.awsdns-12.com.'
|
861
|
+
it { should have_record_set('example.com.').ns(ns) }
|
862
|
+
it { should have_record_set('s3.example.com.').alias('s3-website-us-east-1.amazonaws.com.', 'Z2ABCDEFGHIJKL') }
|
846
863
|
end
|
847
864
|
```
|
848
865
|
|
849
|
-
### its(:
|
850
|
-
## <a name="
|
866
|
+
### its(:id), its(:name), its(:caller_reference), its(:config), its(:resource_record_set_count)
|
867
|
+
## <a name="route_table">route_table</a>
|
851
868
|
|
852
|
-
|
869
|
+
RouteTable resource type.
|
853
870
|
|
854
871
|
### exist
|
855
872
|
|
856
873
|
```ruby
|
857
|
-
describe
|
874
|
+
describe route_table('my-route-table') do
|
858
875
|
it { should exist }
|
859
876
|
end
|
860
877
|
```
|
861
878
|
|
862
879
|
|
863
|
-
###
|
880
|
+
### have_route
|
864
881
|
|
865
882
|
```ruby
|
866
|
-
describe
|
867
|
-
it { should
|
883
|
+
describe route_table('my-route-table') do
|
884
|
+
it { should have_route('10.0.0.0/16').target(gateway: 'local') }
|
885
|
+
it { should have_route('0.0.0.0/0').target(gateway: 'igw-1ab2345c') }
|
886
|
+
it { should have_route('192.168.1.0/24').target(instance: 'my-ec2') }
|
887
|
+
it { should have_route('192.168.2.0/24').target(vpc_peering_connection: 'my-pcx') }
|
888
|
+
it { should have_route('192.168.3.0/24').target(nat: 'nat-7ff7777f') }
|
868
889
|
end
|
869
890
|
```
|
870
891
|
|
871
892
|
|
872
|
-
###
|
893
|
+
### have_subnet
|
873
894
|
|
874
895
|
```ruby
|
875
|
-
describe
|
876
|
-
it { should
|
896
|
+
describe route_table('my-route-table') do
|
897
|
+
it { should have_subnet('my-subnet') }
|
877
898
|
end
|
878
899
|
```
|
879
900
|
|
880
901
|
|
881
|
-
###
|
902
|
+
### its(:route_table_id), its(:vpc_id)
|
903
|
+
### :unlock: Advanced use
|
904
|
+
|
905
|
+
`route_table` can use `Aws::EC2::RouteTable` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/RouteTable.html).
|
882
906
|
|
883
907
|
```ruby
|
884
|
-
describe
|
885
|
-
|
908
|
+
describe route_table('my-route-table') do
|
909
|
+
its('vpc.id') { should eq 'vpc-ab123cde' }
|
886
910
|
end
|
887
911
|
```
|
888
912
|
|
889
|
-
|
890
|
-
### be_attached_to_user
|
913
|
+
or
|
891
914
|
|
892
915
|
```ruby
|
893
|
-
describe
|
894
|
-
|
916
|
+
describe s3_bucket('my-bucket') do
|
917
|
+
its('resource.vpc.id') { should eq 'vpc-ab123cde' }
|
895
918
|
end
|
896
919
|
```
|
897
920
|
|
898
|
-
|
899
|
-
## <a name="elasticache">elasticache</a>
|
921
|
+
## <a name="s3_bucket">s3_bucket</a>
|
900
922
|
|
901
|
-
|
923
|
+
S3Bucket resource type.
|
902
924
|
|
903
925
|
### exist
|
904
926
|
|
905
927
|
```ruby
|
906
|
-
describe
|
928
|
+
describe s3_bucket('my-bucket') do
|
907
929
|
it { should exist }
|
908
930
|
end
|
909
931
|
```
|
910
932
|
|
911
933
|
|
912
|
-
###
|
934
|
+
### have_acl_grant
|
913
935
|
|
914
936
|
```ruby
|
915
|
-
describe
|
916
|
-
|
937
|
+
describe s3_bucket('my-bucket') do
|
938
|
+
its(:acl_owner) { should eq 'my-bucket-owner' }
|
939
|
+
its(:acl_grants_count) { should eq 3 }
|
940
|
+
it { should have_acl_grant(grantee: 'my-bucket-owner', permission: 'FULL_CONTROL') }
|
941
|
+
it { should have_acl_grant(grantee: 'http://acs.amazonaws.com/groups/s3/LogDelivery', permission: 'WRITE') }
|
942
|
+
it { should have_acl_grant(grantee: '68f4bb06b094152df53893bfba57760e', permission: 'READ') }
|
917
943
|
end
|
918
944
|
```
|
919
945
|
|
920
946
|
|
921
|
-
###
|
947
|
+
### have_cors_rule
|
922
948
|
|
923
949
|
```ruby
|
924
|
-
describe
|
925
|
-
it
|
950
|
+
describe s3_bucket('my-bucket') do
|
951
|
+
it do
|
952
|
+
should have_cors_rule(
|
953
|
+
allowed_methods: ['GET'],
|
954
|
+
allowed_origins: ['*']
|
955
|
+
)
|
956
|
+
end
|
957
|
+
it do
|
958
|
+
should have_cors_rule(
|
959
|
+
allowed_headers: ['*'],
|
960
|
+
allowed_methods: ['GET'],
|
961
|
+
allowed_origins: ['https://example.org', 'https://example.com'],
|
962
|
+
expose_headers: ['X-Custom-Header'],
|
963
|
+
max_age_seconds: 3600
|
964
|
+
)
|
965
|
+
end
|
926
966
|
end
|
927
967
|
```
|
928
968
|
|
929
969
|
|
930
|
-
###
|
970
|
+
### have_object
|
931
971
|
|
932
972
|
```ruby
|
933
|
-
describe
|
934
|
-
it { should
|
973
|
+
describe s3_bucket('my-bucket') do
|
974
|
+
it { should have_object('path/to/object') }
|
935
975
|
end
|
936
976
|
```
|
937
977
|
|
938
978
|
|
939
|
-
###
|
979
|
+
### have_policy
|
940
980
|
|
941
981
|
```ruby
|
942
|
-
describe
|
943
|
-
|
982
|
+
describe s3_bucket('my-bucket') do
|
983
|
+
should have_policy <<-POLICY
|
984
|
+
{
|
985
|
+
"Version": "2012-10-17",
|
986
|
+
"Statement": [
|
987
|
+
{
|
988
|
+
"Sid": "AllowPublicRead",
|
989
|
+
"Effect": "Allow",
|
990
|
+
"Principal": "*",
|
991
|
+
"Action": "s3:GetObject",
|
992
|
+
"Resource": "arn:aws:s3:::my-bucket/*"
|
993
|
+
}
|
994
|
+
]
|
995
|
+
}
|
996
|
+
POLICY
|
997
|
+
end
|
944
998
|
end
|
945
999
|
```
|
946
1000
|
|
947
1001
|
|
948
|
-
###
|
949
|
-
|
950
|
-
```ruby
|
951
|
-
describe elasticache('my-rep-group-001') do
|
952
|
-
it { should belong_to_vpc('my-vpc') }
|
953
|
-
end
|
954
|
-
```
|
955
|
-
|
956
|
-
### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_subnet_group_name), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window)
|
957
|
-
## <a name="elasticache_cache_parameter_group">elasticache_cache_parameter_group</a>
|
1002
|
+
### its(:acl_grants_count), its(:acl_owner), its(:cors_rules_count), its(:name), its(:creation_date)
|
1003
|
+
### :unlock: Advanced use
|
958
1004
|
|
959
|
-
|
1005
|
+
`s3_bucket` can use `Aws::S3::Bucket` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Bucket.html).
|
960
1006
|
|
961
1007
|
```ruby
|
962
|
-
describe
|
963
|
-
|
964
|
-
its(:activerehashing) { should eq 'yes' }
|
965
|
-
its(:client_output_buffer_limit_pubsub_hard_limit) { should eq '33554432' }
|
1008
|
+
describe s3_bucket('my-bucket') do
|
1009
|
+
its('acl.owner.display_name') { should eq 'my-bucket-owner' }
|
966
1010
|
end
|
967
1011
|
```
|
968
1012
|
|
969
|
-
|
970
|
-
### exist
|
1013
|
+
or
|
971
1014
|
|
972
1015
|
```ruby
|
973
|
-
describe
|
974
|
-
|
1016
|
+
describe s3_bucket('my-bucket') do
|
1017
|
+
its('resource.acl.owner.display_name') { should eq 'my-bucket-owner' }
|
975
1018
|
end
|
976
1019
|
```
|
977
1020
|
|
1021
|
+
## <a name="security_group">security_group</a>
|
978
1022
|
|
979
|
-
|
980
|
-
|
981
|
-
CloudwatchAlarm resource type.
|
1023
|
+
SecurityGroup resource type.
|
982
1024
|
|
983
1025
|
### exist
|
984
1026
|
|
985
1027
|
```ruby
|
986
|
-
describe
|
1028
|
+
describe security_group('my-security-group-name') do
|
987
1029
|
it { should exist }
|
988
1030
|
end
|
989
1031
|
```
|
990
1032
|
|
991
1033
|
|
992
|
-
###
|
1034
|
+
### its(:inbound), its(:outbound)
|
993
1035
|
|
994
1036
|
```ruby
|
995
|
-
describe
|
996
|
-
|
1037
|
+
describe security_group('my-security-group-name') do
|
1038
|
+
its(:outbound) { should be_opened }
|
1039
|
+
its(:inbound) { should be_opened(80) }
|
1040
|
+
its(:inbound) { should be_opened(80).protocol('tcp').for('203.0.113.1/32') }
|
1041
|
+
its(:inbound) { should be_opened(22).protocol('tcp').for('sg-5a6b7cd8') }
|
997
1042
|
end
|
998
1043
|
```
|
999
1044
|
|
1000
1045
|
|
1001
|
-
###
|
1002
|
-
|
1003
|
-
```ruby
|
1004
|
-
describe cloudwatch_alarm('my-cloudwatch-alarm') do
|
1005
|
-
it { should have_insufficient_data_action('arn:aws:sns:ap-northeast-1:1234567890:sns_alert') }
|
1006
|
-
end
|
1007
|
-
```
|
1008
|
-
|
1046
|
+
### its(:inbound_rule_count), its(:outbound_rule_count), its(:inbound_permissions_count), its(:outbound_permissions_count), its(:owner_id), its(:group_name), its(:group_id), its(:description), its(:vpc_id)
|
1047
|
+
### :unlock: Advanced use
|
1009
1048
|
|
1010
|
-
|
1049
|
+
`security_group` can use `Aws::EC2::SecurityGroup` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/SecurityGroup.html).
|
1011
1050
|
|
1012
1051
|
```ruby
|
1013
|
-
describe
|
1014
|
-
|
1052
|
+
describe security_group('my-security-group-name') do
|
1053
|
+
its('group_name') { should eq 'my-security-group-name' }
|
1015
1054
|
end
|
1016
1055
|
```
|
1017
1056
|
|
1018
|
-
|
1019
|
-
### belong_to_metric
|
1057
|
+
or
|
1020
1058
|
|
1021
1059
|
```ruby
|
1022
|
-
describe
|
1023
|
-
|
1060
|
+
describe security_group('my-security-group-name') do
|
1061
|
+
its('resource.group_name') { should eq 'my-security-group-name' }
|
1024
1062
|
end
|
1025
1063
|
```
|
1026
1064
|
|
1027
|
-
### its(:alarm_name), its(:alarm_arn), its(:alarm_description), its(:alarm_configuration_updated_timestamp), its(:actions_enabled), its(:state_value), its(:state_reason), its(:state_reason_data), its(:state_updated_timestamp), its(:metric_name), its(:namespace), its(:statistic), its(:period), its(:unit), its(:evaluation_periods), its(:threshold), its(:comparison_operator)
|
1028
1065
|
## <a name="ses_identity">ses_identity</a>
|
1029
1066
|
|
1030
1067
|
SesIdentity resource type.
|
@@ -1050,57 +1087,35 @@ end
|
|
1050
1087
|
```
|
1051
1088
|
|
1052
1089
|
### its(:dkim_enabled), its(:dkim_verification_status), its(:bounce_topic), its(:complaint_topic), its(:delivery_topic), its(:forwarding_enabled), its(:verification_status), its(:verification_token)
|
1053
|
-
## <a name="
|
1090
|
+
## <a name="subnet">subnet</a>
|
1054
1091
|
|
1055
|
-
|
1092
|
+
Subnet resource type.
|
1056
1093
|
|
1057
1094
|
### exist
|
1058
1095
|
|
1059
1096
|
```ruby
|
1060
|
-
describe
|
1097
|
+
describe subnet('my-subnet') do
|
1061
1098
|
it { should exist }
|
1062
1099
|
end
|
1063
1100
|
```
|
1064
1101
|
|
1065
1102
|
|
1066
|
-
###
|
1067
|
-
|
1068
|
-
```ruby
|
1069
|
-
describe network_acl('my-network-acl') do
|
1070
|
-
it { should have_subnet('my-subnet') }
|
1071
|
-
end
|
1072
|
-
```
|
1073
|
-
|
1074
|
-
|
1075
|
-
### belong_to_vpc
|
1076
|
-
|
1077
|
-
```ruby
|
1078
|
-
describe network_acl('my-network-acl') do
|
1079
|
-
it { should belong_to_vpc('my-vpc') }
|
1080
|
-
end
|
1081
|
-
```
|
1082
|
-
|
1083
|
-
|
1084
|
-
### its(:inbound), its(:outbound), its(:inbound_entries_count), its(:outbound_entries_count)
|
1103
|
+
### be_available, be_pending
|
1085
1104
|
|
1086
1105
|
```ruby
|
1087
|
-
describe
|
1088
|
-
|
1089
|
-
its(:inbound) { should be_denied.rule_number('*').source('0.0.0.0/0') }
|
1090
|
-
its(:outbound) { should be_allowed.protocol('ALL').source('0.0.0.0/0') }
|
1091
|
-
its(:inbound_entries_count) { should eq 3 }
|
1092
|
-
its(:outbound_entries_count) { should eq 2 }
|
1106
|
+
describe subnet('my-subnet') do
|
1107
|
+
it { should be_available }
|
1093
1108
|
end
|
1094
1109
|
```
|
1095
1110
|
|
1096
1111
|
|
1097
|
-
### its(:
|
1112
|
+
### its(:subnet_id), its(:state), its(:vpc_id), its(:cidr_block), its(:available_ip_address_count), its(:availability_zone), its(:default_for_az), its(:map_public_ip_on_launch)
|
1098
1113
|
### :unlock: Advanced use
|
1099
1114
|
|
1100
|
-
`
|
1115
|
+
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
1101
1116
|
|
1102
1117
|
```ruby
|
1103
|
-
describe
|
1118
|
+
describe subnet('my-subnet') do
|
1104
1119
|
its('vpc.id') { should eq 'vpc-ab123cde' }
|
1105
1120
|
end
|
1106
1121
|
```
|
@@ -1108,84 +1123,68 @@ end
|
|
1108
1123
|
or
|
1109
1124
|
|
1110
1125
|
```ruby
|
1111
|
-
describe
|
1126
|
+
describe subnet('my-subnet') do
|
1112
1127
|
its('resource.vpc.id') { should eq 'vpc-ab123cde' }
|
1113
1128
|
end
|
1114
1129
|
```
|
1115
1130
|
|
1116
|
-
## <a name="
|
1117
|
-
|
1118
|
-
DirectconnectVirtualInterface resource type.
|
1119
|
-
|
1120
|
-
```ruby
|
1121
|
-
describe directconnect_virtual_interface('my-directconnect-virtual-interface') do
|
1122
|
-
it { should exist }
|
1123
|
-
it { should be_available }
|
1124
|
-
its(:connection_id) { should eq 'dxcon-abcd5fgh' }
|
1125
|
-
its(:virtual_interface_id) { should eq 'dxvif-aabbccdd' }
|
1126
|
-
its(:amazon_address) { should eq '170.252.252.1/30' }
|
1127
|
-
its(:customer_address) { should eq '123.456.789.2/30' }
|
1128
|
-
its(:virtual_gateway_id) { should eq 'vgw-d234e5f6' }
|
1129
|
-
end
|
1130
|
-
```
|
1131
|
+
## <a name="vpc">vpc</a>
|
1131
1132
|
|
1133
|
+
VPC resource type.
|
1132
1134
|
|
1133
1135
|
### exist
|
1134
1136
|
|
1135
1137
|
```ruby
|
1136
|
-
describe
|
1138
|
+
describe vpc('my-vpc') do
|
1137
1139
|
it { should exist }
|
1138
1140
|
end
|
1139
1141
|
```
|
1140
1142
|
|
1141
1143
|
|
1142
|
-
###
|
1144
|
+
### be_available, be_pending
|
1143
1145
|
|
1144
1146
|
```ruby
|
1145
|
-
describe
|
1146
|
-
it { should exist }
|
1147
|
+
describe vpc('vpc-ab123cde') do
|
1147
1148
|
it { should be_available }
|
1148
1149
|
end
|
1149
1150
|
```
|
1150
1151
|
|
1151
|
-
### 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(:virtual_interface_state), its(:customer_router_config), its(:virtual_gateway_id)
|
1152
|
-
## <a name="nat_gateway">nat_gateway</a>
|
1153
|
-
|
1154
|
-
NatGateway resource type.
|
1155
1152
|
|
1156
|
-
###
|
1153
|
+
### have_network_acl
|
1157
1154
|
|
1158
1155
|
```ruby
|
1159
|
-
describe
|
1160
|
-
it { should
|
1156
|
+
describe vpc('vpc-ab123cde') do
|
1157
|
+
it { should have_network_acl('acl-1abc2d3e') }
|
1158
|
+
it { should have_network_acl('my-network-acl') }
|
1161
1159
|
end
|
1162
1160
|
```
|
1163
1161
|
|
1164
1162
|
|
1165
|
-
###
|
1163
|
+
### have_route_table
|
1166
1164
|
|
1167
1165
|
```ruby
|
1168
|
-
describe
|
1169
|
-
it { should
|
1166
|
+
describe vpc('vpc-ab123cde') do
|
1167
|
+
it { should have_network_acl('acl-1abc2d3e') }
|
1168
|
+
it { should have_network_acl('my-network-acl') }
|
1170
1169
|
end
|
1171
1170
|
```
|
1172
1171
|
|
1173
1172
|
|
1174
|
-
###
|
1173
|
+
### its(:vpc_id), its(:state), its(:cidr_block), its(:dhcp_options_id), its(:instance_tenancy), its(:is_default)
|
1174
|
+
### :unlock: Advanced use
|
1175
|
+
|
1176
|
+
`vpc` can use `Aws::EC2::Vpc` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Vpc.html).
|
1175
1177
|
|
1176
1178
|
```ruby
|
1177
|
-
describe
|
1178
|
-
|
1179
|
+
describe vpc('my-vpc') do
|
1180
|
+
its('route_tables.first.route_table_id') { should eq 'rtb-a12bcd34' }
|
1179
1181
|
end
|
1180
1182
|
```
|
1181
1183
|
|
1182
|
-
|
1183
|
-
### belong_to_vpc
|
1184
|
+
or
|
1184
1185
|
|
1185
1186
|
```ruby
|
1186
|
-
describe
|
1187
|
-
|
1187
|
+
describe vpc('my-vpc') do
|
1188
|
+
its('resource.route_tables.first.route_table_id') { should eq 'rtb-a12bcd34' }
|
1188
1189
|
end
|
1189
1190
|
```
|
1190
|
-
|
1191
|
-
### its(:vpc_id), its(:subnet_id), its(:nat_gateway_id), its(:create_time), its(:delete_time), its(:state), its(:failure_code), its(:failure_message)
|