awspec 0.55.0 → 0.56.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/awspec.rb +1 -0
- data/lib/awspec/generator/template.rb +6 -3
- data/lib/awspec/shared_context.rb +11 -0
- data/lib/awspec/type/ami.rb +7 -5
- data/lib/awspec/type/autoscaling_group.rb +8 -6
- data/lib/awspec/type/base.rb +15 -7
- data/lib/awspec/type/cloudfront_distribution.rb +8 -6
- data/lib/awspec/type/cloudtrail.rb +10 -8
- data/lib/awspec/type/cloudwatch_alarm.rb +9 -7
- data/lib/awspec/type/cloudwatch_event.rb +8 -6
- data/lib/awspec/type/directconnect_virtual_interface.rb +11 -4
- data/lib/awspec/type/ebs.rb +14 -7
- data/lib/awspec/type/ec2.rb +20 -13
- data/lib/awspec/type/elasticache.rb +13 -6
- data/lib/awspec/type/elasticache_cache_parameter_group.rb +15 -8
- data/lib/awspec/type/elasticsearch.rb +9 -7
- data/lib/awspec/type/elastictranscoder_pipeline.rb +7 -5
- data/lib/awspec/type/elb.rb +11 -9
- data/lib/awspec/type/iam_group.rb +8 -6
- data/lib/awspec/type/iam_policy.rb +8 -6
- data/lib/awspec/type/iam_role.rb +8 -6
- data/lib/awspec/type/iam_user.rb +8 -6
- data/lib/awspec/type/kms.rb +8 -6
- data/lib/awspec/type/lambda.rb +8 -6
- data/lib/awspec/type/launch_configuration.rb +7 -5
- data/lib/awspec/type/nat_gateway.rb +8 -6
- data/lib/awspec/type/network_acl.rb +10 -8
- data/lib/awspec/type/network_interface.rb +14 -12
- data/lib/awspec/type/rds.rb +14 -12
- data/lib/awspec/type/rds_db_cluster_parameter_group.rb +13 -9
- data/lib/awspec/type/rds_db_parameter_group.rb +13 -9
- data/lib/awspec/type/route53_hosted_zone.rb +11 -7
- data/lib/awspec/type/route_table.rb +8 -6
- data/lib/awspec/type/s3_bucket.rb +15 -13
- data/lib/awspec/type/security_group.rb +14 -13
- data/lib/awspec/type/ses_identity.rb +15 -13
- data/lib/awspec/type/subnet.rb +7 -5
- data/lib/awspec/type/vpc.rb +13 -11
- data/lib/awspec/type/waf_web_acl.rb +8 -6
- data/lib/awspec/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29b03262bb9f7a144d1baa26418051af1898f0a2
|
4
|
+
data.tar.gz: 4ad6c4180e0837b971d4ae7dcb5dfaf92d444245
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d17e5911fc2e6927a0cc2db573e02f2dc77731fb2b24f192995427f1ba7c63e6a2f1cc4a8a3c3bb4a0be226d30728429576489a8eb15861827a1d817fa2e4e2f
|
7
|
+
data.tar.gz: 174d4e576def401d02993ffe598723ecb8b76cf3783120796b7ea70b869cd27ca9bb3929ae7997689a0355fc3021bd01a896eaf9ab73733ef647ab4011ade3ac
|
data/lib/awspec.rb
CHANGED
@@ -16,9 +16,12 @@ module Awspec::Generator
|
|
16
16
|
content = <<-"EOF"
|
17
17
|
module Awspec::Type
|
18
18
|
class #{@type.camelize} < Base
|
19
|
-
def
|
20
|
-
|
21
|
-
|
19
|
+
def resource_via_client
|
20
|
+
@resource_via_client ||= # FIXME
|
21
|
+
end
|
22
|
+
|
23
|
+
def id
|
24
|
+
@id ||= # FIXME
|
22
25
|
end
|
23
26
|
end
|
24
27
|
end
|
data/lib/awspec/type/ami.rb
CHANGED
@@ -2,10 +2,12 @@ module Awspec::Type
|
|
2
2
|
class Ami < Base
|
3
3
|
aws_resource Aws::EC2::Image
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def resource_via_client
|
6
|
+
@resource_via_client ||= find_ami(@display_name)
|
7
|
+
end
|
8
|
+
|
9
|
+
def id
|
10
|
+
@id ||= resource_via_client.image_id if resource_via_client
|
9
11
|
end
|
10
12
|
|
11
13
|
STATES = %w(
|
@@ -15,7 +17,7 @@ module Awspec::Type
|
|
15
17
|
|
16
18
|
STATES.each do |state|
|
17
19
|
define_method state + '?' do
|
18
|
-
|
20
|
+
resource_via_client.state == state
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -1,20 +1,22 @@
|
|
1
1
|
module Awspec::Type
|
2
2
|
class AutoscalingGroup < Base
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
def resource_via_client
|
4
|
+
@resource_via_client ||= find_autoscaling_group(@display_name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def id
|
8
|
+
@id ||= resource_via_client.auto_scaling_group_arn if resource_via_client
|
7
9
|
end
|
8
10
|
|
9
11
|
def has_elb?(name)
|
10
|
-
|
12
|
+
resource_via_client.load_balancer_names.find do |lb_name|
|
11
13
|
lb_name == name
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
def has_ec2?(id)
|
16
18
|
ec2 = find_ec2(id)
|
17
|
-
|
19
|
+
resource_via_client.instances.find do |instance|
|
18
20
|
instance.instance_id = ec2.instance_id
|
19
21
|
end if ec2
|
20
22
|
end
|
data/lib/awspec/type/base.rb
CHANGED
@@ -9,8 +9,8 @@ module Awspec::Type
|
|
9
9
|
|
10
10
|
attr_reader :id, :resource_via_client
|
11
11
|
|
12
|
-
def initialize(
|
13
|
-
@display_name =
|
12
|
+
def initialize(display_name = nil)
|
13
|
+
@display_name = display_name
|
14
14
|
@id = nil
|
15
15
|
end
|
16
16
|
|
@@ -24,18 +24,26 @@ module Awspec::Type
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def exists?
|
27
|
-
|
27
|
+
id
|
28
|
+
end
|
29
|
+
|
30
|
+
def id
|
31
|
+
raise 'this method must be override!'
|
32
|
+
end
|
33
|
+
|
34
|
+
def resource_via_client
|
35
|
+
raise 'this method must be override!'
|
28
36
|
end
|
29
37
|
|
30
38
|
def self.aws_resource(resource)
|
31
39
|
define_method :resource do
|
32
|
-
@resource ||= Awspec::ResourceReader.new(resource.new(
|
40
|
+
@resource ||= Awspec::ResourceReader.new(resource.new(id))
|
33
41
|
end
|
34
42
|
end
|
35
43
|
|
36
44
|
def self.tags_allowed
|
37
45
|
define_method :has_tag? do |key, value|
|
38
|
-
tags =
|
46
|
+
tags = resource_via_client.tags
|
39
47
|
return false unless tags
|
40
48
|
tags.any? { |t| t['key'] == key && t['value'] == value }
|
41
49
|
end
|
@@ -43,8 +51,8 @@ module Awspec::Type
|
|
43
51
|
|
44
52
|
def method_missing(name)
|
45
53
|
describe = name.to_sym
|
46
|
-
if
|
47
|
-
|
54
|
+
if resource_via_client.members.include?(describe)
|
55
|
+
resource_via_client[describe]
|
48
56
|
else
|
49
57
|
super unless self.respond_to?(:resource)
|
50
58
|
method_missing_via_black_list(name, delegate_to: resource)
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Awspec::Type
|
2
2
|
class CloudfrontDistribution < Base
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
def resource_via_client
|
4
|
+
@resource_via_client ||= find_cloudfront_distribution(@display_name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def id
|
8
|
+
@id ||= resource_via_client.id if resource_via_client
|
7
9
|
end
|
8
10
|
|
9
11
|
STATUSES = %w(
|
@@ -12,7 +14,7 @@ module Awspec::Type
|
|
12
14
|
|
13
15
|
STATUSES.each do |status|
|
14
16
|
define_method status.underscore + '?' do
|
15
|
-
|
17
|
+
resource_via_client.status == status
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
@@ -21,7 +23,7 @@ module Awspec::Type
|
|
21
23
|
origin_path: nil,
|
22
24
|
origin_access_identity: nil)
|
23
25
|
return false unless [origin_id, domain_name].any?
|
24
|
-
|
26
|
+
resource_via_client.origins.items.find do |origin|
|
25
27
|
next false if !origin_id.nil? && origin.id != origin_id
|
26
28
|
next false if !domain_name.nil? && origin.domain_name != domain_name
|
27
29
|
next false if !origin_path.nil? && origin.origin_path != origin_path
|
@@ -2,26 +2,28 @@ module Awspec::Type
|
|
2
2
|
class Cloudtrail < Base
|
3
3
|
aws_resource Aws::CloudTrail
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def resource_via_client
|
6
|
+
@resource_via_client ||= find_trail(@display_name)
|
7
|
+
end
|
8
|
+
|
9
|
+
def id
|
10
|
+
@id ||= resource_via_client.name if resource_via_client
|
9
11
|
end
|
10
12
|
|
11
13
|
def has_global_service_events_included?
|
12
|
-
|
14
|
+
resource_via_client.include_global_service_events
|
13
15
|
end
|
14
16
|
|
15
17
|
def multi_region_trail?
|
16
|
-
|
18
|
+
resource_via_client.is_multi_region_trail
|
17
19
|
end
|
18
20
|
|
19
21
|
def has_log_file_validation_enabled?
|
20
|
-
|
22
|
+
resource_via_client.log_file_validation_enabled
|
21
23
|
end
|
22
24
|
|
23
25
|
def logging?
|
24
|
-
is_logging?(
|
26
|
+
is_logging?(id)
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
@@ -1,21 +1,23 @@
|
|
1
1
|
module Awspec::Type
|
2
2
|
class CloudwatchAlarm < Base
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
def resource_via_client
|
4
|
+
@resource_via_client ||= find_cloudwatch_alarm(@display_name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def id
|
8
|
+
@id ||= resource_via_client.alarm_arn if resource_via_client
|
7
9
|
end
|
8
10
|
|
9
11
|
def has_ok_action?(name)
|
10
|
-
|
12
|
+
resource_via_client.ok_actions.include?(name)
|
11
13
|
end
|
12
14
|
|
13
15
|
def has_alarm_action?(name)
|
14
|
-
|
16
|
+
resource_via_client.alarm_actions.include?(name)
|
15
17
|
end
|
16
18
|
|
17
19
|
def has_insufficient_data_action?(name)
|
18
|
-
|
20
|
+
resource_via_client.insufficient_data_actions.include?(name)
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -1,17 +1,19 @@
|
|
1
1
|
module Awspec::Type
|
2
2
|
class CloudwatchEvent < Base
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
def resource_via_client
|
4
|
+
@resource_via_client ||= find_cloudwatch_event(@display_name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def id
|
8
|
+
@id ||= resource_via_client.arn if resource_via_client
|
7
9
|
end
|
8
10
|
|
9
11
|
def enable?
|
10
|
-
|
12
|
+
resource_via_client.state == 'ENABLED'
|
11
13
|
end
|
12
14
|
|
13
15
|
def scheduled?(schedule)
|
14
|
-
|
16
|
+
resource_via_client.schedule_expression == schedule
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -1,9 +1,16 @@
|
|
1
1
|
module Awspec::Type
|
2
2
|
class DirectconnectVirtualInterface < Base
|
3
|
-
def initialize(
|
3
|
+
def initialize(name)
|
4
4
|
super
|
5
|
-
@
|
6
|
-
|
5
|
+
@display_name = name
|
6
|
+
end
|
7
|
+
|
8
|
+
def resource_via_client
|
9
|
+
@resource_via_client ||= find_virtual_interface(@display_name)
|
10
|
+
end
|
11
|
+
|
12
|
+
def id
|
13
|
+
@id ||= resource_via_client.virtual_interface_id if resource_via_client
|
7
14
|
end
|
8
15
|
|
9
16
|
STATES = %w(
|
@@ -13,7 +20,7 @@ module Awspec::Type
|
|
13
20
|
|
14
21
|
STATES.each do |state|
|
15
22
|
define_method state + '?' do
|
16
|
-
|
23
|
+
resource_via_client.virtual_interface_state == state
|
17
24
|
end
|
18
25
|
end
|
19
26
|
end
|
data/lib/awspec/type/ebs.rb
CHANGED
@@ -3,10 +3,17 @@ module Awspec::Type
|
|
3
3
|
aws_resource Aws::EC2::Volume
|
4
4
|
tags_allowed
|
5
5
|
|
6
|
-
def initialize(
|
6
|
+
def initialize(name)
|
7
7
|
super
|
8
|
-
@
|
9
|
-
|
8
|
+
@display_name = name
|
9
|
+
end
|
10
|
+
|
11
|
+
def resource_via_client
|
12
|
+
@resource_via_client ||= find_ebs(@display_name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
@id ||= resource_via_client.volume_id if resource_via_client
|
10
17
|
end
|
11
18
|
|
12
19
|
STATES = %w(
|
@@ -15,16 +22,16 @@ module Awspec::Type
|
|
15
22
|
|
16
23
|
STATES.each do |state|
|
17
24
|
define_method state.tr('-', '_') + '?' do
|
18
|
-
|
25
|
+
resource_via_client.state == state
|
19
26
|
end
|
20
27
|
end
|
21
28
|
|
22
29
|
def attached_to?(instance_id)
|
23
30
|
instance = find_ec2(instance_id)
|
24
31
|
return false unless instance
|
25
|
-
return false unless
|
26
|
-
|
27
|
-
|
32
|
+
return false unless resource_via_client.attachments
|
33
|
+
resource_via_client.attachments.first.instance_id == instance.instance_id && \
|
34
|
+
resource_via_client.attachments.first.state == 'attached'
|
28
35
|
end
|
29
36
|
end
|
30
37
|
end
|
data/lib/awspec/type/ec2.rb
CHANGED
@@ -3,10 +3,17 @@ module Awspec::Type
|
|
3
3
|
aws_resource Aws::EC2::Instance
|
4
4
|
tags_allowed
|
5
5
|
|
6
|
-
def initialize(
|
6
|
+
def initialize(name)
|
7
7
|
super
|
8
|
-
@
|
9
|
-
|
8
|
+
@display_name = name
|
9
|
+
end
|
10
|
+
|
11
|
+
def resource_via_client
|
12
|
+
@resource_via_client ||= find_ec2(@display_name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
@id ||= resource_via_client.instance_id if resource_via_client
|
10
17
|
end
|
11
18
|
|
12
19
|
STATES = %w(
|
@@ -16,18 +23,18 @@ module Awspec::Type
|
|
16
23
|
|
17
24
|
STATES.each do |state|
|
18
25
|
define_method state.tr('-', '_') + '?' do
|
19
|
-
|
26
|
+
resource_via_client.state.name == state
|
20
27
|
end
|
21
28
|
end
|
22
29
|
|
23
30
|
def disabled_api_termination?
|
24
|
-
ret = find_ec2_attribute(
|
31
|
+
ret = find_ec2_attribute(id, 'disableApiTermination')
|
25
32
|
ret.disable_api_termination.value
|
26
33
|
end
|
27
34
|
|
28
35
|
def has_eip?(ip_address = nil)
|
29
36
|
option = {
|
30
|
-
filters: [{ name: 'instance-id', values: [
|
37
|
+
filters: [{ name: 'instance-id', values: [id] }]
|
31
38
|
}
|
32
39
|
option[:public_ips] = [ip_address] if ip_address
|
33
40
|
ret = ec2_client.describe_addresses(option)
|
@@ -36,7 +43,7 @@ module Awspec::Type
|
|
36
43
|
end
|
37
44
|
|
38
45
|
def has_security_group?(sg_id)
|
39
|
-
sgs =
|
46
|
+
sgs = resource_via_client.security_groups
|
40
47
|
ret = sgs.find do |sg|
|
41
48
|
sg.group_id == sg_id || sg.group_name == sg_id
|
42
49
|
end
|
@@ -49,7 +56,7 @@ module Awspec::Type
|
|
49
56
|
end
|
50
57
|
|
51
58
|
def has_ebs?(volume_id)
|
52
|
-
blocks =
|
59
|
+
blocks = resource_via_client.block_device_mappings
|
53
60
|
ret = blocks.find do |block|
|
54
61
|
next false unless block.ebs
|
55
62
|
block.ebs.volume_id == volume_id
|
@@ -57,26 +64,26 @@ module Awspec::Type
|
|
57
64
|
return true if ret
|
58
65
|
blocks2 = find_ebs(volume_id)
|
59
66
|
blocks2.attachments.find do |attachment|
|
60
|
-
attachment.instance_id ==
|
67
|
+
attachment.instance_id == id
|
61
68
|
end
|
62
69
|
end
|
63
70
|
|
64
71
|
def has_event?(event_code)
|
65
|
-
status = find_ec2_status(
|
72
|
+
status = find_ec2_status(id)
|
66
73
|
ret = status.events.find do |event|
|
67
74
|
event.code == event_code
|
68
75
|
end
|
69
76
|
end
|
70
77
|
|
71
78
|
def has_events?
|
72
|
-
status = find_ec2_status(
|
79
|
+
status = find_ec2_status(id)
|
73
80
|
return false if status.nil?
|
74
81
|
status.events.count > 0
|
75
82
|
end
|
76
83
|
|
77
84
|
def has_classiclink?(vpc_id = nil)
|
78
85
|
option = {
|
79
|
-
instance_ids: [
|
86
|
+
instance_ids: [id]
|
80
87
|
}
|
81
88
|
option[:filters] = [{ name: 'vpc-id', values: [vpc_id] }] if vpc_id
|
82
89
|
ret = ec2_client.describe_classic_link_instances(option)
|
@@ -85,7 +92,7 @@ module Awspec::Type
|
|
85
92
|
|
86
93
|
def has_classiclink_security_group?(sg_id)
|
87
94
|
option = {
|
88
|
-
instance_ids: [
|
95
|
+
instance_ids: [id]
|
89
96
|
}
|
90
97
|
classic_link_instances = ec2_client.describe_classic_link_instances(option)
|
91
98
|
return false if classic_link_instances.instances.count == 0
|