awspec 0.55.0 → 0.56.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/awspec.rb +1 -0
  3. data/lib/awspec/generator/template.rb +6 -3
  4. data/lib/awspec/shared_context.rb +11 -0
  5. data/lib/awspec/type/ami.rb +7 -5
  6. data/lib/awspec/type/autoscaling_group.rb +8 -6
  7. data/lib/awspec/type/base.rb +15 -7
  8. data/lib/awspec/type/cloudfront_distribution.rb +8 -6
  9. data/lib/awspec/type/cloudtrail.rb +10 -8
  10. data/lib/awspec/type/cloudwatch_alarm.rb +9 -7
  11. data/lib/awspec/type/cloudwatch_event.rb +8 -6
  12. data/lib/awspec/type/directconnect_virtual_interface.rb +11 -4
  13. data/lib/awspec/type/ebs.rb +14 -7
  14. data/lib/awspec/type/ec2.rb +20 -13
  15. data/lib/awspec/type/elasticache.rb +13 -6
  16. data/lib/awspec/type/elasticache_cache_parameter_group.rb +15 -8
  17. data/lib/awspec/type/elasticsearch.rb +9 -7
  18. data/lib/awspec/type/elastictranscoder_pipeline.rb +7 -5
  19. data/lib/awspec/type/elb.rb +11 -9
  20. data/lib/awspec/type/iam_group.rb +8 -6
  21. data/lib/awspec/type/iam_policy.rb +8 -6
  22. data/lib/awspec/type/iam_role.rb +8 -6
  23. data/lib/awspec/type/iam_user.rb +8 -6
  24. data/lib/awspec/type/kms.rb +8 -6
  25. data/lib/awspec/type/lambda.rb +8 -6
  26. data/lib/awspec/type/launch_configuration.rb +7 -5
  27. data/lib/awspec/type/nat_gateway.rb +8 -6
  28. data/lib/awspec/type/network_acl.rb +10 -8
  29. data/lib/awspec/type/network_interface.rb +14 -12
  30. data/lib/awspec/type/rds.rb +14 -12
  31. data/lib/awspec/type/rds_db_cluster_parameter_group.rb +13 -9
  32. data/lib/awspec/type/rds_db_parameter_group.rb +13 -9
  33. data/lib/awspec/type/route53_hosted_zone.rb +11 -7
  34. data/lib/awspec/type/route_table.rb +8 -6
  35. data/lib/awspec/type/s3_bucket.rb +15 -13
  36. data/lib/awspec/type/security_group.rb +14 -13
  37. data/lib/awspec/type/ses_identity.rb +15 -13
  38. data/lib/awspec/type/subnet.rb +7 -5
  39. data/lib/awspec/type/vpc.rb +13 -11
  40. data/lib/awspec/type/waf_web_acl.rb +8 -6
  41. data/lib/awspec/version.rb +1 -1
  42. metadata +3 -2
@@ -1,9 +1,16 @@
1
1
  module Awspec::Type
2
2
  class Elasticache < Base
3
- def initialize(id)
3
+ def initialize(name)
4
4
  super
5
- @resource_via_client = find_cache_cluster(id)
6
- @id = @resource_via_client.cache_cluster_id if @resource_via_client
5
+ @display_name = name
6
+ end
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_cache_cluster(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.cache_cluster_id if resource_via_client
7
14
  end
8
15
 
9
16
  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
- @resource_via_client.cache_cluster_status == state
25
+ resource_via_client.cache_cluster_status == state
19
26
  end
20
27
  end
21
28
 
22
29
  def has_cache_parameter_group?(group_name)
23
- @resource_via_client.cache_parameter_group.cache_parameter_group_name == group_name
30
+ resource_via_client.cache_parameter_group.cache_parameter_group_name == group_name
24
31
  end
25
32
 
26
33
  def vpc_id
27
- cache_subnet_group = find_cache_subnet_group(@resource_via_client.cache_subnet_group_name)
34
+ cache_subnet_group = find_cache_subnet_group(resource_via_client.cache_subnet_group_name)
28
35
  cache_subnet_group.vpc_id if cache_subnet_group
29
36
  end
30
37
  end
@@ -2,27 +2,34 @@ module Awspec::Type
2
2
  class ElasticacheCacheParameterGroup < Base
3
3
  def initialize(name)
4
4
  super
5
- @parameters = {}
5
+ @display_name = name
6
+ end
7
+
8
+ def resource_via_client
9
+ return @resource_via_client if @resource_via_client
10
+
11
+ parameters = {}
6
12
  res = elasticache_client.describe_cache_parameters({
7
- cache_parameter_group_name: name
13
+ cache_parameter_group_name: @display_name
8
14
  })
9
15
 
10
16
  loop do
11
17
  res.parameters.each do |param|
12
- @parameters[param.parameter_name] = param.parameter_value
18
+ parameters[param.parameter_name] = param.parameter_value
13
19
  end
14
20
  (res.next_page? && res = res.next_page) || break
15
21
  end
22
+ @resource_via_client ||= parameters
23
+ end
16
24
 
17
- @id = name unless @parameters.empty?
18
- @resource_via_client = @parameters
19
- @id
25
+ def id
26
+ @id ||= @display_name unless resource_via_client.empty?
20
27
  end
21
28
 
22
29
  def method_missing(name)
23
30
  param_name = name.to_s.tr('_', '-')
24
- if @parameters.include?(param_name)
25
- @parameters[param_name].to_s
31
+ if resource_via_client.include?(param_name)
32
+ resource_via_client[param_name].to_s
26
33
  else
27
34
  super
28
35
  end
@@ -1,21 +1,23 @@
1
1
  module Awspec::Type
2
2
  class Elasticsearch < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_elasticsearch_domain(id)
6
- @id = @resource_via_client.arn if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_elasticsearch_domain(@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 has_access_policies?(policy)
10
- @resource_via_client.access_policies == policy.gsub(/\n/, '').gsub(/ /, '')
12
+ resource_via_client.access_policies == policy.gsub(/\n/, '').gsub(/ /, '')
11
13
  end
12
14
 
13
15
  def created?
14
- @resource_via_client.created
16
+ resource_via_client.created
15
17
  end
16
18
 
17
19
  def deleted?
18
- @resource_via_client.deleted
20
+ resource_via_client.deleted
19
21
  end
20
22
  end
21
23
  end
@@ -1,9 +1,11 @@
1
1
  module Awspec::Type
2
2
  class ElastictranscoderPipeline < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_pipeline(id)
6
- @id = @resource_via_client.id if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_pipeline(@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
- @resource_via_client.status == status
17
+ resource_via_client.status == status
16
18
  end
17
19
  end
18
20
  end
@@ -1,9 +1,11 @@
1
1
  module Awspec::Type
2
2
  class Elb < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_elb(id)
6
- @id = @resource_via_client.load_balancer_name if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_elb(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id = resource_via_client.load_balancer_name if resource_via_client
7
9
  end
8
10
 
9
11
  health_check_options = %w(
@@ -13,19 +15,19 @@ module Awspec::Type
13
15
 
14
16
  health_check_options.each do |option|
15
17
  define_method 'health_check_' + option do
16
- @resource_via_client.health_check[option]
18
+ resource_via_client.health_check[option]
17
19
  end
18
20
  end
19
21
 
20
22
  def has_ec2?(id)
21
23
  ec2 = find_ec2(id)
22
- @resource_via_client.instances.find do |instance|
24
+ resource_via_client.instances.find do |instance|
23
25
  instance.instance_id = ec2.instance_id
24
26
  end if ec2
25
27
  end
26
28
 
27
29
  def has_security_group?(sg_id)
28
- sgs = @resource_via_client.security_groups
30
+ sgs = resource_via_client.security_groups
29
31
  ret = sgs.find do |sg|
30
32
  sg == sg_id
31
33
  end
@@ -38,7 +40,7 @@ module Awspec::Type
38
40
  end
39
41
 
40
42
  def has_subnet?(subnet_id)
41
- subnets = @resource_via_client.subnets
43
+ subnets = resource_via_client.subnets
42
44
  ret = subnets.find do |s|
43
45
  s == subnet_id
44
46
  end
@@ -50,7 +52,7 @@ module Awspec::Type
50
52
  end
51
53
 
52
54
  def has_listener?(protocol:, port:, instance_protocol:, instance_port:)
53
- @resource_via_client.listener_descriptions.find do |desc|
55
+ resource_via_client.listener_descriptions.find do |desc|
54
56
  listener = desc.listener
55
57
  listener.protocol == protocol && listener.load_balancer_port == port && \
56
58
  listener.instance_protocol == instance_protocol && listener.instance_port == instance_port
@@ -2,10 +2,12 @@ module Awspec::Type
2
2
  class IamGroup < Base
3
3
  aws_resource Aws::IAM::Group
4
4
 
5
- def initialize(id)
6
- super
7
- @resource_via_client = find_iam_group(id)
8
- @id = @resource_via_client.group_id if @resource_via_client
5
+ def resource_via_client
6
+ @resource_via_client ||= find_iam_group(@display_name)
7
+ end
8
+
9
+ def id
10
+ @id ||= resource_via_client.group_id if resource_via_client
9
11
  end
10
12
 
11
13
  def has_iam_user?(user_id)
@@ -19,7 +21,7 @@ module Awspec::Type
19
21
  end
20
22
 
21
23
  def has_iam_policy?(policy_id)
22
- policies = select_iam_policy_by_group_name(@resource_via_client.group_name)
24
+ policies = select_iam_policy_by_group_name(resource_via_client.group_name)
23
25
  policies.find do |policy|
24
26
  policy.policy_arn == policy_id || policy.policy_name == policy_id
25
27
  end
@@ -27,7 +29,7 @@ module Awspec::Type
27
29
 
28
30
  def has_inline_policy?(policy_name, document = nil)
29
31
  res = iam_client.get_group_policy({
30
- group_name: @resource_via_client.group_name,
32
+ group_name: resource_via_client.group_name,
31
33
  policy_name: policy_name
32
34
  })
33
35
  return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
@@ -1,17 +1,19 @@
1
1
  module Awspec::Type
2
2
  class IamPolicy < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_iam_policy(id)
6
- @id = @resource_via_client.policy_id if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_iam_policy(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.policy_id if resource_via_client
7
9
  end
8
10
 
9
11
  def attachable?
10
- @resource_via_client.is_attachable
12
+ resource_via_client.is_attachable
11
13
  end
12
14
 
13
15
  def attached_to_user?(user_id = nil)
14
- users = select_attached_users(@id)
16
+ users = select_attached_users(id)
15
17
  if user_id
16
18
  user = find_iam_user(user_id)
17
19
  return false unless user
@@ -2,14 +2,16 @@ module Awspec::Type
2
2
  class IamRole < Base
3
3
  aws_resource Aws::IAM::Role
4
4
 
5
- def initialize(id)
6
- super
7
- @resource_via_client = find_iam_role(id)
8
- @id = @resource_via_client.role_id if @resource_via_client
5
+ def resource_via_client
6
+ @resource_via_client ||= find_iam_role(@display_name)
7
+ end
8
+
9
+ def id
10
+ @id ||= resource_via_client.role_id if resource_via_client
9
11
  end
10
12
 
11
13
  def has_iam_policy?(policy_id)
12
- policies = select_iam_policy_by_role_name(@resource_via_client.role_name)
14
+ policies = select_iam_policy_by_role_name(resource_via_client.role_name)
13
15
  policies.find do |policy|
14
16
  policy.policy_arn == policy_id || policy.policy_name == policy_id
15
17
  end
@@ -17,7 +19,7 @@ module Awspec::Type
17
19
 
18
20
  def has_inline_policy?(policy_name, document = nil)
19
21
  res = iam_client.get_role_policy({
20
- role_name: @resource_via_client.role_name,
22
+ role_name: resource_via_client.role_name,
21
23
  policy_name: policy_name
22
24
  })
23
25
  return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
@@ -2,14 +2,16 @@ module Awspec::Type
2
2
  class IamUser < Base
3
3
  aws_resource Aws::IAM::User
4
4
 
5
- def initialize(id)
6
- super
7
- @resource_via_client = find_iam_user(id)
8
- @id = @resource_via_client.user_name if @resource_via_client
5
+ def resource_via_client
6
+ @resource_via_client ||= find_iam_user(@display_name)
7
+ end
8
+
9
+ def id
10
+ @id ||= resource_via_client.user_name if resource_via_client
9
11
  end
10
12
 
11
13
  def has_iam_policy?(policy_id)
12
- policies = select_iam_policy_by_user_name(@resource_via_client.user_name)
14
+ policies = select_iam_policy_by_user_name(resource_via_client.user_name)
13
15
  policies.find do |policy|
14
16
  policy.policy_arn == policy_id || policy.policy_name == policy_id
15
17
  end
@@ -17,7 +19,7 @@ module Awspec::Type
17
19
 
18
20
  def has_inline_policy?(policy_name, document = nil)
19
21
  res = iam_client.get_user_policy({
20
- user_name: @resource_via_client.user_name,
22
+ user_name: resource_via_client.user_name,
21
23
  policy_name: policy_name
22
24
  })
23
25
  return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
@@ -1,17 +1,19 @@
1
1
  module Awspec::Type
2
2
  class Kms < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_kms_key_by_alias(id)
6
- @id = @resource_via_client.arn if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_kms_key_by_alias(@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 enabled?
10
- @resource_via_client.enabled
12
+ resource_via_client.enabled
11
13
  end
12
14
 
13
15
  def has_key_policy?(policy_name, document = nil)
14
- res = kms_client.get_key_policy(key_id: @id, policy_name: policy_name)
16
+ res = kms_client.get_key_policy(key_id: id, policy_name: policy_name)
15
17
  return JSON.parse(URI.decode(res.policy)) == JSON.parse(document) if document
16
18
  res
17
19
  end
@@ -1,17 +1,19 @@
1
1
  module Awspec::Type
2
2
  class Lambda < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_lambda(id)
6
- @id = @resource_via_client.function_arn if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_lambda(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.function_arn if resource_via_client
7
9
  end
8
10
 
9
11
  def timeout
10
- @resource_via_client.timeout
12
+ resource_via_client.timeout
11
13
  end
12
14
 
13
15
  def has_event_source?(event_source_arn)
14
- sources = select_event_source_by_function_arn(@id)
16
+ sources = select_event_source_by_function_arn(id)
15
17
  sources.find do |source|
16
18
  source.event_source_arn == event_source_arn
17
19
  end
@@ -1,13 +1,15 @@
1
1
  module Awspec::Type
2
2
  class LaunchConfiguration < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_launch_configuration(id)
6
- @id = @resource_via_client.launch_configuration_arn if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_launch_configuration(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.launch_configuration_arn if resource_via_client
7
9
  end
8
10
 
9
11
  def has_security_group?(sg_id)
10
- sgs = @resource_via_client.security_groups
12
+ sgs = resource_via_client.security_groups
11
13
  ret = sgs.find do |sg|
12
14
  sg == sg_id
13
15
  end
@@ -1,9 +1,11 @@
1
1
  module Awspec::Type
2
2
  class NatGateway < Base
3
- def initialize(id)
4
- super
5
- @resource_via_client = find_nat_gateway(id)
6
- @id = @resource_via_client.nat_gateway_id if @resource_via_client
3
+ def resource_via_client
4
+ @resource_via_client ||= find_nat_gateway(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.nat_gateway_id if resource_via_client
7
9
  end
8
10
 
9
11
  STATES = %w(
@@ -12,12 +14,12 @@ module Awspec::Type
12
14
 
13
15
  STATES.each do |state|
14
16
  define_method state.tr('-', '_') + '?' do
15
- @resource_via_client.state == state
17
+ resource_via_client.state == state
16
18
  end
17
19
  end
18
20
 
19
21
  def has_eip?(ip_address = nil)
20
- @resource_via_client.nat_gateway_addresses.find do |address|
22
+ resource_via_client.nat_gateway_addresses.find do |address|
21
23
  return address.public_ip == ip_address
22
24
  end
23
25
  end
@@ -3,14 +3,16 @@ module Awspec::Type
3
3
  aws_resource Aws::EC2::NetworkAcl
4
4
  tags_allowed
5
5
 
6
- def initialize(id)
7
- super
8
- @resource_via_client = find_network_acl(id)
9
- @id = @resource_via_client.network_acl_id if @resource_via_client
6
+ def resource_via_client
7
+ @resource_via_client ||= find_network_acl(@display_name)
8
+ end
9
+
10
+ def id
11
+ @id ||= resource_via_client.network_acl_id if resource_via_client
10
12
  end
11
13
 
12
14
  def has_subnet?(subnet_id)
13
- @resource_via_client.associations.find do |a|
15
+ resource_via_client.associations.find do |a|
14
16
  next true if a.subnet_id == subnet_id
15
17
  subnet = find_subnet(subnet_id)
16
18
  next false unless subnet
@@ -39,13 +41,13 @@ module Awspec::Type
39
41
  end
40
42
 
41
43
  def inbound_entries_count
42
- @resource_via_client.entries.count do |entry|
44
+ resource_via_client.entries.count do |entry|
43
45
  entry.egress == false
44
46
  end
45
47
  end
46
48
 
47
49
  def outbound_entries_count
48
- @resource_via_client.entries.count do |entry|
50
+ resource_via_client.entries.count do |entry|
49
51
  entry.egress == true
50
52
  end
51
53
  end
@@ -71,7 +73,7 @@ module Awspec::Type
71
73
  private
72
74
 
73
75
  def entry?(rule_action, port = nil, protocol = nil, cidr = nil, rule_number = nil)
74
- @resource_via_client.entries.find do |entry|
76
+ resource_via_client.entries.find do |entry|
75
77
  # egress rule_action
76
78
  next false if entry.egress != @egress
77
79
  next false if entry.rule_action != rule_action