awspec 0.26.2 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +13 -2
  3. data/doc/_resource_types/ebs.md +18 -0
  4. data/doc/_resource_types/ec2.md +18 -0
  5. data/doc/_resource_types/network_acl.md +18 -0
  6. data/doc/_resource_types/rds.md +18 -0
  7. data/doc/_resource_types/route_table.md +18 -0
  8. data/doc/_resource_types/security_group.md +18 -0
  9. data/doc/_resource_types/subnet.md +18 -0
  10. data/doc/_resource_types/vpc.md +18 -0
  11. data/doc/resource_types.md +152 -0
  12. data/lib/awspec/helper/finder.rb +19 -15
  13. data/lib/awspec/helper/finder/autoscaling.rb +3 -3
  14. data/lib/awspec/helper/finder/cloudwatch.rb +5 -5
  15. data/lib/awspec/helper/finder/directconnect.rb +2 -2
  16. data/lib/awspec/helper/finder/ebs.rb +7 -7
  17. data/lib/awspec/helper/finder/ec2.rb +46 -46
  18. data/lib/awspec/helper/finder/elasticache.rb +6 -6
  19. data/lib/awspec/helper/finder/elb.rb +4 -4
  20. data/lib/awspec/helper/finder/iam.rb +16 -16
  21. data/lib/awspec/helper/finder/lambda.rb +4 -4
  22. data/lib/awspec/helper/finder/rds.rb +4 -4
  23. data/lib/awspec/helper/finder/route53.rb +4 -4
  24. data/lib/awspec/helper/finder/s3.rb +6 -6
  25. data/lib/awspec/helper/finder/security_group.rb +12 -12
  26. data/lib/awspec/helper/finder/ses.rb +1 -1
  27. data/lib/awspec/helper/finder/vpc.rb +49 -49
  28. data/lib/awspec/resource_reader.rb +5 -5
  29. data/lib/awspec/type/base.rb +6 -1
  30. data/lib/awspec/type/ebs.rb +2 -0
  31. data/lib/awspec/type/ec2.rb +2 -3
  32. data/lib/awspec/type/elasticache_cache_parameter_group.rb +3 -5
  33. data/lib/awspec/type/network_acl.rb +2 -0
  34. data/lib/awspec/type/rds.rb +8 -6
  35. data/lib/awspec/type/rds_db_parameter_group.rb +3 -5
  36. data/lib/awspec/type/route53_hosted_zone.rb +0 -2
  37. data/lib/awspec/type/route_table.rb +2 -0
  38. data/lib/awspec/type/s3_bucket.rb +6 -8
  39. data/lib/awspec/type/security_group.rb +1 -2
  40. data/lib/awspec/type/ses_identity.rb +15 -15
  41. data/lib/awspec/type/subnet.rb +2 -0
  42. data/lib/awspec/type/vpc.rb +1 -2
  43. data/lib/awspec/version.rb +1 -1
  44. metadata +2 -2
@@ -2,9 +2,9 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Autoscaling
4
4
  def find_autoscaling_group(id)
5
- res = @autoscaling_client.describe_auto_scaling_groups({
6
- auto_scaling_group_names: [id]
7
- })
5
+ res = autoscaling_client.describe_auto_scaling_groups({
6
+ auto_scaling_group_names: [id]
7
+ })
8
8
  res[:auto_scaling_groups].first if res[:auto_scaling_groups].count == 1
9
9
  end
10
10
  end
@@ -2,12 +2,12 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Cloudwatch
4
4
  def find_cloudwatch_alarm(id)
5
- res = @cloudwatch_client.describe_alarms({
6
- alarm_names: [id]
7
- })
5
+ res = cloudwatch_client.describe_alarms({
6
+ alarm_names: [id]
7
+ })
8
8
  return res[:metric_alarms].first if res[:metric_alarms].count == 1
9
9
 
10
- res = @cloudwatch_client.describe_alarms
10
+ res = cloudwatch_client.describe_alarms
11
11
  res[:metric_alarms].find do |alarm|
12
12
  alarm[:alarm_arn] == id
13
13
  end
@@ -15,7 +15,7 @@ module Awspec::Helper
15
15
 
16
16
  def select_all_cloudwatch_alarms
17
17
  selected = []
18
- res = @cloudwatch_client.describe_alarms
18
+ res = cloudwatch_client.describe_alarms
19
19
 
20
20
  loop do
21
21
  selected += res.metric_alarms
@@ -2,7 +2,7 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Directconnect
4
4
  def find_virtual_interface(virtual_interface_id)
5
- res = @directconnect_client.describe_virtual_interfaces
5
+ res = directconnect_client.describe_virtual_interfaces
6
6
  ret = res.virtual_interfaces.select do |virtual_interface|
7
7
  next true if virtual_interface.virtual_interface_id == virtual_interface_id
8
8
  next true if virtual_interface.virtual_interface_name == virtual_interface_id
@@ -11,7 +11,7 @@ module Awspec::Helper
11
11
  end
12
12
 
13
13
  def select_virtual_interfaces
14
- res = @directconnect_client.describe_virtual_interfaces
14
+ res = directconnect_client.describe_virtual_interfaces
15
15
  res.virtual_interfaces
16
16
  end
17
17
  end
@@ -2,13 +2,13 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Ebs
4
4
  def find_ebs(volume_id)
5
- res = @ec2_client.describe_volumes({
6
- filters: [{ name: 'volume-id', values: [volume_id] }]
7
- })
5
+ res = ec2_client.describe_volumes({
6
+ filters: [{ name: 'volume-id', values: [volume_id] }]
7
+ })
8
8
  return res[:volumes].first if res[:volumes].count == 1
9
- res = @ec2_client.describe_volumes({
10
- filters: [{ name: 'tag:Name', values: [volume_id] }]
11
- })
9
+ res = ec2_client.describe_volumes({
10
+ filters: [{ name: 'tag:Name', values: [volume_id] }]
11
+ })
12
12
  return res[:volumes].first if res[:volumes].count == 1
13
13
  end
14
14
 
@@ -25,7 +25,7 @@ module Awspec::Helper
25
25
 
26
26
  def select_all_attached_ebs
27
27
  selected = []
28
- res = @ec2_client.describe_volumes
28
+ res = ec2_client.describe_volumes
29
29
 
30
30
  loop do
31
31
  selected += res.volumes.select { |v| v.attachments.count > 0 }
@@ -4,30 +4,30 @@ module Awspec::Helper
4
4
  def find_ec2(id)
5
5
  if id.is_a?(Array)
6
6
  # Aws::EC2::Client.describe_instances native filters format
7
- res = @ec2_client.describe_instances({
8
- filters: id
9
- })
7
+ res = ec2_client.describe_instances({
8
+ filters: id
9
+ })
10
10
  elsif id.is_a?(Hash)
11
11
  # syntax sugar
12
12
  filters = []
13
13
  id.each do |k, v|
14
14
  filters.push({ name: k, values: Array(v) })
15
15
  end
16
- res = @ec2_client.describe_instances({
17
- filters: filters
18
- })
16
+ res = ec2_client.describe_instances({
17
+ filters: filters
18
+ })
19
19
  elsif id.is_a?(String)
20
20
  # instance_id or tag:Name
21
21
  begin
22
- res = @ec2_client.describe_instances({
23
- instance_ids: [id]
24
- })
22
+ res = ec2_client.describe_instances({
23
+ instance_ids: [id]
24
+ })
25
25
  rescue
26
26
  # Aws::EC2::Errors::InvalidInstanceIDMalformed
27
27
  # Aws::EC2::Errors::InvalidInstanceIDNotFound
28
- res = @ec2_client.describe_instances({
29
- filters: [{ name: 'tag:Name', values: [id] }]
30
- })
28
+ res = ec2_client.describe_instances({
29
+ filters: [{ name: 'tag:Name', values: [id] }]
30
+ })
31
31
  end
32
32
  else
33
33
  return nil
@@ -37,9 +37,9 @@ module Awspec::Helper
37
37
  end
38
38
 
39
39
  def find_ec2_attribute(id, attribute)
40
- res = @ec2_client.describe_instance_attribute({
41
- instance_id: id, attribute: attribute
42
- })
40
+ res = ec2_client.describe_instance_attribute({
41
+ instance_id: id, attribute: attribute
42
+ })
43
43
  end
44
44
 
45
45
  # fine_internet_gateway fine_vpn_gateway fine_customer_gateway
@@ -47,46 +47,46 @@ module Awspec::Helper
47
47
  gateway_types.each do |type|
48
48
  define_method 'find_' + type + '_gateway' do |*args|
49
49
  gateway_id = args.first
50
- res = @ec2_client.method('describe_' + type + '_gateways').call({
51
- filters: [
52
- {
53
- name: type + '-gateway-id',
54
- values: [gateway_id]
55
- }
56
- ]
57
- })
50
+ res = ec2_client.method('describe_' + type + '_gateways').call({
51
+ filters: [
52
+ {
53
+ name: type + '-gateway-id',
54
+ values: [gateway_id]
55
+ }
56
+ ]
57
+ })
58
58
  return res[type + '_gateways'].first if res[type + '_gateways'].count == 1
59
- res = @ec2_client.method('describe_' + type + '_gateways').call({
60
- filters: [
61
- {
62
- name: 'tag:Name',
63
- values: [gateway_id]
64
- }
65
- ]
66
- })
59
+ res = ec2_client.method('describe_' + type + '_gateways').call({
60
+ filters: [
61
+ {
62
+ name: 'tag:Name',
63
+ values: [gateway_id]
64
+ }
65
+ ]
66
+ })
67
67
  return res[type + '_gateways'].first if res[type + '_gateways'].count == 1
68
68
  end
69
69
  end
70
70
 
71
71
  def find_security_group(sg_id)
72
- res = @ec2_client.describe_security_groups({
73
- filters: [{ name: 'group-id', values: [sg_id] }]
74
- })
72
+ res = ec2_client.describe_security_groups({
73
+ filters: [{ name: 'group-id', values: [sg_id] }]
74
+ })
75
75
  return res[:security_groups].first if res[:security_groups].count == 1
76
- res = @ec2_client.describe_security_groups({
77
- filters: [{ name: 'group-name', values: [sg_id] }]
78
- })
76
+ res = ec2_client.describe_security_groups({
77
+ filters: [{ name: 'group-name', values: [sg_id] }]
78
+ })
79
79
  return res[:security_groups].first if res[:security_groups].count == 1
80
- res = @ec2_client.describe_security_groups({
81
- filters: [{ name: 'tag:Name', values: [sg_id] }]
82
- })
80
+ res = ec2_client.describe_security_groups({
81
+ filters: [{ name: 'tag:Name', values: [sg_id] }]
82
+ })
83
83
  return res[:security_groups].first if res[:security_groups].count == 1
84
84
  end
85
85
 
86
86
  def select_ec2_by_vpc_id(vpc_id)
87
- res = @ec2_client.describe_instances({
88
- filters: [{ name: 'vpc-id', values: [vpc_id] }]
89
- })
87
+ res = ec2_client.describe_instances({
88
+ filters: [{ name: 'vpc-id', values: [vpc_id] }]
89
+ })
90
90
  instances = []
91
91
  return instances unless res[:reservations].count > 0
92
92
  res[:reservations].each do |reservation|
@@ -98,9 +98,9 @@ module Awspec::Helper
98
98
  end
99
99
 
100
100
  def select_eip_by_instance_id(id)
101
- res = @ec2_client.describe_addresses({
102
- filters: [{ name: 'instance-id', values: [id] }]
103
- })
101
+ res = ec2_client.describe_addresses({
102
+ filters: [{ name: 'instance-id', values: [id] }]
103
+ })
104
104
  return [] unless res[:addresses].count > 0
105
105
  res[:addresses]
106
106
  end
@@ -2,18 +2,18 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Elasticache
4
4
  def find_cache_cluster(id)
5
- res = @elasticache_client.describe_cache_clusters({
6
- cache_cluster_id: id
7
- })
5
+ res = elasticache_client.describe_cache_clusters({
6
+ cache_cluster_id: id
7
+ })
8
8
  res[:cache_clusters].first if res[:cache_clusters].count == 1
9
9
  rescue
10
10
  nil
11
11
  end
12
12
 
13
13
  def find_cache_subnet_group(group_name)
14
- res = @elasticache_client.describe_cache_subnet_groups({
15
- cache_subnet_group_name: group_name
16
- })
14
+ res = elasticache_client.describe_cache_subnet_groups({
15
+ cache_subnet_group_name: group_name
16
+ })
17
17
  res[:cache_subnet_groups].first if res[:cache_subnet_groups].count == 1
18
18
  end
19
19
  end
@@ -2,16 +2,16 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Elb
4
4
  def find_elb(id)
5
- res = @elb_client.describe_load_balancers({
6
- load_balancer_names: [id]
7
- })
5
+ res = elb_client.describe_load_balancers({
6
+ load_balancer_names: [id]
7
+ })
8
8
  return res[:load_balancer_descriptions].first if res[:load_balancer_descriptions].count == 1
9
9
  rescue
10
10
  return nil
11
11
  end
12
12
 
13
13
  def select_elb_by_vpc_id(vpc_id)
14
- res = @elb_client.describe_load_balancers
14
+ res = elb_client.describe_load_balancers
15
15
  res[:load_balancer_descriptions].select do |lb|
16
16
  lb.vpc_id == vpc_id
17
17
  end
@@ -7,7 +7,7 @@ module Awspec::Helper
7
7
  define_method 'find_iam_' + type do |*args|
8
8
  id = args.first
9
9
  selected = []
10
- res = @iam_client.method('list_' + type.pluralize).call
10
+ res = iam_client.method('list_' + type.pluralize).call
11
11
  loop do
12
12
  selected += res[type.pluralize].select do |u|
13
13
  u[type + '_name'] == id || u[type + '_id'] == id || u.arn == id
@@ -25,41 +25,41 @@ module Awspec::Helper
25
25
  action_names: [action_name]
26
26
  }
27
27
  options[:resource_arns] = [resource_arn] if resource_arn
28
- res = @iam_client.simulate_principal_policy(options)
28
+ res = iam_client.simulate_principal_policy(options)
29
29
  res.evaluation_results
30
30
  end
31
31
 
32
32
  def select_iam_group_by_user_name(user_name)
33
- res = @iam_client.list_groups_for_user({
34
- user_name: user_name
35
- })
33
+ res = iam_client.list_groups_for_user({
34
+ user_name: user_name
35
+ })
36
36
  res.groups
37
37
  end
38
38
 
39
39
  def select_iam_policy_by_user_name(user_name)
40
- res = @iam_client.list_attached_user_policies({
41
- user_name: user_name
42
- })
40
+ res = iam_client.list_attached_user_policies({
41
+ user_name: user_name
42
+ })
43
43
  res.attached_policies
44
44
  end
45
45
 
46
46
  def select_iam_policy_by_group_name(group_name)
47
- res = @iam_client.list_attached_group_policies({
48
- group_name: group_name
49
- })
47
+ res = iam_client.list_attached_group_policies({
48
+ group_name: group_name
49
+ })
50
50
  res.attached_policies
51
51
  end
52
52
 
53
53
  def select_iam_policy_by_role_name(role_name)
54
- res = @iam_client.list_attached_role_policies({
55
- role_name: role_name
56
- })
54
+ res = iam_client.list_attached_role_policies({
55
+ role_name: role_name
56
+ })
57
57
  res.attached_policies
58
58
  end
59
59
 
60
60
  def select_all_attached_policies
61
61
  selected = []
62
- res = @iam_client.list_policies
62
+ res = iam_client.list_policies
63
63
 
64
64
  loop do
65
65
  selected += res.policies.select { |p| p.attachment_count > 0 }
@@ -71,7 +71,7 @@ module Awspec::Helper
71
71
 
72
72
  def select_attached_entities(policy_id)
73
73
  policy = find_iam_policy(policy_id)
74
- @iam_client.list_entities_for_policy(policy_arn: policy[:arn])
74
+ iam_client.list_entities_for_policy(policy_arn: policy[:arn])
75
75
  end
76
76
 
77
77
  def select_attached_users(policy_id)
@@ -3,7 +3,7 @@ module Awspec::Helper
3
3
  module Lambda
4
4
  def find_lambda(id)
5
5
  selected = []
6
- res = @lambda_client.list_functions
6
+ res = lambda_client.list_functions
7
7
 
8
8
  loop do
9
9
  selected += res.functions.select do |function|
@@ -16,9 +16,9 @@ module Awspec::Helper
16
16
  end
17
17
 
18
18
  def select_event_source_by_function_arn(function_arn)
19
- res = @lambda_client.list_event_source_mappings({
20
- function_name: function_arn
21
- })
19
+ res = lambda_client.list_event_source_mappings({
20
+ function_name: function_arn
21
+ })
22
22
  res[:event_source_mappings]
23
23
  end
24
24
  end
@@ -3,14 +3,14 @@ module Awspec::Helper
3
3
  module Rds
4
4
  def find_rds(id)
5
5
  # db_instance_identifier
6
- res = @rds_client.describe_db_instances({
7
- db_instance_identifier: id
8
- })
6
+ res = rds_client.describe_db_instances({
7
+ db_instance_identifier: id
8
+ })
9
9
  return res[:db_instances].first if res[:db_instances].count == 1
10
10
  end
11
11
 
12
12
  def select_rds_by_vpc_id(vpc_id)
13
- res = @rds_client.describe_db_instances
13
+ res = rds_client.describe_db_instances
14
14
  res[:db_instances].select do |db_instance|
15
15
  db_instance.db_subnet_group.vpc_id == vpc_id
16
16
  end
@@ -2,7 +2,7 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Route53
4
4
  def find_hosted_zone(id)
5
- res = @route53_client.list_hosted_zones
5
+ res = route53_client.list_hosted_zones
6
6
  loop do
7
7
  res.hosted_zones.each do |hosted_zone|
8
8
  if hosted_zone[:name] == id || hosted_zone[:id] == '/hostedzone/' + id || hosted_zone[:id] == id
@@ -15,9 +15,9 @@ module Awspec::Helper
15
15
 
16
16
  def select_record_sets_by_hosted_zone_id(id)
17
17
  selected = []
18
- res = @route53_client.list_resource_record_sets({
19
- hosted_zone_id: id
20
- })
18
+ res = route53_client.list_resource_record_sets({
19
+ hosted_zone_id: id
20
+ })
21
21
  loop do
22
22
  selected += res.resource_record_sets
23
23
  (res.next_page? && res = res.next_page) || break
@@ -2,32 +2,32 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module S3
4
4
  def find_bucket(id)
5
- res = @s3_client.list_buckets
6
- ret = @s3_client.list_buckets[:buckets].find do |bucket|
5
+ res = s3_client.list_buckets
6
+ ret = s3_client.list_buckets[:buckets].find do |bucket|
7
7
  bucket.name == id
8
8
  end
9
9
  end
10
10
 
11
11
  def find_bucket_acl(id)
12
- @s3_client.get_bucket_acl(bucket: id)
12
+ s3_client.get_bucket_acl(bucket: id)
13
13
  rescue Aws::S3::Errors::NoSuchBucket
14
14
  nil
15
15
  end
16
16
 
17
17
  def find_bucket_cors(id)
18
- @s3_client.get_bucket_cors(bucket: id)
18
+ s3_client.get_bucket_cors(bucket: id)
19
19
  rescue Aws::S3::Errors::NoSuchBucket
20
20
  nil
21
21
  end
22
22
 
23
23
  def find_bucket_policy(id)
24
- @s3_client.get_bucket_policy(bucket: id)
24
+ s3_client.get_bucket_policy(bucket: id)
25
25
  rescue Aws::S3::Errors::NoSuchBucket
26
26
  nil
27
27
  end
28
28
 
29
29
  def select_all_buckets
30
- @s3_client.list_buckets.buckets
30
+ s3_client.list_buckets.buckets
31
31
  end
32
32
  end
33
33
  end