awspec 0.55.0 → 0.56.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 +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
|