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.
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