awspec 1.34.0 → 1.35.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/.tagpr +2 -0
- data/CHANGELOG.md +6 -0
- data/doc/resource_types.md +4 -4
- data/lib/awspec/generator/doc/type/account.rb +1 -1
- data/lib/awspec/generator/doc/type/account_attribute.rb +2 -1
- data/lib/awspec/generator/doc/type/base.rb +1 -1
- data/lib/awspec/generator/doc/type.rb +1 -1
- data/lib/awspec/generator/spec/acm.rb +1 -1
- data/lib/awspec/generator/spec/alb.rb +1 -1
- data/lib/awspec/generator/spec/alb_listener.rb +1 -1
- data/lib/awspec/generator/spec/autoscaling_group.rb +1 -1
- data/lib/awspec/generator/spec/cloudwatch_alarm.rb +1 -1
- data/lib/awspec/generator/spec/cloudwatch_event.rb +1 -1
- data/lib/awspec/generator/spec/cloudwatch_logs.rb +1 -1
- data/lib/awspec/generator/spec/codebuild.rb +1 -1
- data/lib/awspec/generator/spec/codepipeline.rb +1 -1
- data/lib/awspec/generator/spec/directconnect.rb +1 -1
- data/lib/awspec/generator/spec/ebs.rb +2 -2
- data/lib/awspec/generator/spec/ec2.rb +1 -1
- data/lib/awspec/generator/spec/efs.rb +1 -1
- data/lib/awspec/generator/spec/eip.rb +1 -1
- data/lib/awspec/generator/spec/elasticache.rb +1 -1
- data/lib/awspec/generator/spec/elasticsearch.rb +1 -1
- data/lib/awspec/generator/spec/elb.rb +1 -1
- data/lib/awspec/generator/spec/iam_group.rb +1 -1
- data/lib/awspec/generator/spec/iam_policy.rb +1 -1
- data/lib/awspec/generator/spec/iam_role.rb +1 -1
- data/lib/awspec/generator/spec/iam_user.rb +1 -1
- data/lib/awspec/generator/spec/internet_gateway.rb +1 -1
- data/lib/awspec/generator/spec/kms.rb +1 -1
- data/lib/awspec/generator/spec/lambda.rb +1 -1
- data/lib/awspec/generator/spec/managed_prefix_list.rb +1 -1
- data/lib/awspec/generator/spec/nat_gateway.rb +1 -1
- data/lib/awspec/generator/spec/network_acl.rb +1 -1
- data/lib/awspec/generator/spec/network_interface.rb +1 -1
- data/lib/awspec/generator/spec/nlb.rb +1 -1
- data/lib/awspec/generator/spec/nlb_listener.rb +1 -1
- data/lib/awspec/generator/spec/rds.rb +1 -1
- data/lib/awspec/generator/spec/rds_db_cluster.rb +1 -1
- data/lib/awspec/generator/spec/rds_db_cluster_parameter_group.rb +1 -1
- data/lib/awspec/generator/spec/rds_db_parameter_group.rb +1 -1
- data/lib/awspec/generator/spec/rds_global_cluster.rb +1 -1
- data/lib/awspec/generator/spec/rds_proxy.rb +1 -1
- data/lib/awspec/generator/spec/redshift.rb +1 -1
- data/lib/awspec/generator/spec/redshift_cluster_parameter_group.rb +1 -1
- data/lib/awspec/generator/spec/route53_hosted_zone.rb +2 -2
- data/lib/awspec/generator/spec/route_table.rb +10 -6
- data/lib/awspec/generator/spec/s3_bucket.rb +3 -3
- data/lib/awspec/generator/spec/security_group.rb +3 -3
- data/lib/awspec/generator/spec/subnet.rb +1 -1
- data/lib/awspec/generator/spec/vpc.rb +1 -1
- data/lib/awspec/generator/spec/wafv2_ip_set.rb +1 -1
- data/lib/awspec/generator/spec/wafv2_web_acl.rb +1 -1
- data/lib/awspec/helper/finder/iam.rb +17 -1
- data/lib/awspec/matcher/have_plan_rule.rb +18 -27
- data/lib/awspec/stub/iam_policy.rb +15 -1
- data/lib/awspec/stub/iam_role.rb +11 -1
- data/lib/awspec/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: db3c043ecfd88d5ba4d3172eacd752be77fced5cfc8437e8eff6309f08d2cf1d
|
|
4
|
+
data.tar.gz: f2681be63ef0ebe27769fa955c44a8fea5bc40b46ac68fc5d2d84c5dc56b2454
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 97c866e601968425dc87fc154a3a24894bb0361a8a1a0af891a4e06a86d799f8a2778059c234cd09de7d4c6f44de405c6dc481f85de30c916624533b586662a4
|
|
7
|
+
data.tar.gz: ea9f60784223a778a2bc4a2fbda77b6fac713a27863eed4deb716211e81693e122623279641089bfedda0058bd70caa00a25f15f787123f00afc92929999be45
|
data/.tagpr
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v1.35.0](https://github.com/k1LoW/awspec/compare/v1.34.0...v1.35.0) - 2025-11-10
|
|
4
|
+
- Improve backup plan rules output by @endemics in https://github.com/k1LoW/awspec/pull/611
|
|
5
|
+
- Add missing details for IAM roles and policies by @endemics in https://github.com/k1LoW/awspec/pull/609
|
|
6
|
+
- chore: remove ERB trim fix warnings by @endemics in https://github.com/k1LoW/awspec/pull/610
|
|
7
|
+
- chore: setup tagpr labels by @k1LoW in https://github.com/k1LoW/awspec/pull/608
|
|
8
|
+
|
|
3
9
|
## [v1.34.0](https://github.com/k1LoW/awspec/compare/v1.33.0...v1.34.0) - 2025-10-18
|
|
4
10
|
- Add support for aws backup rules (under backup plan) by @endemics in https://github.com/k1LoW/awspec/pull/605
|
|
5
11
|
- feat: setup tagpr by @k1LoW in https://github.com/k1LoW/awspec/pull/606
|
data/doc/resource_types.md
CHANGED
|
@@ -414,7 +414,7 @@ end
|
|
|
414
414
|
```
|
|
415
415
|
|
|
416
416
|
|
|
417
|
-
### its(:backup_vault_name), its(:backup_vault_arn), its(:vault_type), its(:vault_state), its(:creation_date), its(:encryption_key_arn), its(:creator_request_id), its(:number_of_recovery_points), its(:locked), its(:min_retention_days), its(:max_retention_days), its(:lock_date)
|
|
417
|
+
### its(:backup_vault_name), its(:backup_vault_arn), its(:vault_type), its(:vault_state), its(:creation_date), its(:encryption_key_arn), its(:creator_request_id), its(:number_of_recovery_points), its(:locked), its(:min_retention_days), its(:max_retention_days), its(:lock_date), its(:encryption_key_type)
|
|
418
418
|
## <a name="batch_compute_environment">batch_compute_environment</a>
|
|
419
419
|
|
|
420
420
|
BatchComputeEnvironment resource type.
|
|
@@ -2284,7 +2284,7 @@ describe kinesis('my-kinesis') do
|
|
|
2284
2284
|
end
|
|
2285
2285
|
```
|
|
2286
2286
|
|
|
2287
|
-
### its(:stream_name), its(:stream_arn), its(:stream_status), its(:stream_mode_details), its(:retention_period_hours), its(:stream_creation_timestamp), its(:encryption_type), its(:key_id), its(:open_shard_count), its(:consumer_count)
|
|
2287
|
+
### its(:stream_name), its(:stream_arn), its(:stream_status), its(:stream_mode_details), its(:retention_period_hours), its(:stream_creation_timestamp), its(:encryption_type), its(:key_id), its(:open_shard_count), its(:consumer_count), its(:warm_throughput), its(:max_record_size_in_ki_b)
|
|
2288
2288
|
## <a name="kms">kms</a>
|
|
2289
2289
|
|
|
2290
2290
|
Kms resource type.
|
|
@@ -2532,7 +2532,7 @@ end
|
|
|
2532
2532
|
```
|
|
2533
2533
|
|
|
2534
2534
|
|
|
2535
|
-
### its(:prefix_list_id), its(:address_family), its(:state), its(:state_message), its(:prefix_list_arn), its(:prefix_list_name), its(:max_entries), its(:version), its(:owner_id)
|
|
2535
|
+
### its(:prefix_list_id), its(:address_family), its(:state), its(:state_message), its(:prefix_list_arn), its(:prefix_list_name), its(:max_entries), its(:version), its(:owner_id), its(:ipam_prefix_list_resolver_target_id), its(:ipam_prefix_list_resolver_sync_enabled)
|
|
2536
2536
|
## <a name="mq">mq</a>
|
|
2537
2537
|
|
|
2538
2538
|
MQ resource type.
|
|
@@ -2795,7 +2795,7 @@ describe network_interface('eni-12ab3cde') do
|
|
|
2795
2795
|
end
|
|
2796
2796
|
```
|
|
2797
2797
|
|
|
2798
|
-
### its(:association), its(:availability_zone), its(:connection_tracking_configuration), its(:description), its(:interface_type), its(:ipv_6_addresses), its(:mac_address), its(:network_interface_id), its(:outpost_arn), its(:owner_id), its(:private_dns_name), its(:public_dns_name), its(:public_ip_dns_name_options), its(:private_ip_address), its(:ipv_4_prefixes), its(:ipv_6_prefixes), its(:requester_id), its(:requester_managed), its(:source_dest_check), its(:status), its(:subnet_id), its(:vpc_id), its(:deny_all_igw_traffic), its(:ipv_6_native), its(:ipv_6_address), its(:operator), its(:associated_subnets)
|
|
2798
|
+
### its(:association), its(:availability_zone), its(:connection_tracking_configuration), its(:description), its(:interface_type), its(:ipv_6_addresses), its(:mac_address), its(:network_interface_id), its(:outpost_arn), its(:owner_id), its(:private_dns_name), its(:public_dns_name), its(:public_ip_dns_name_options), its(:private_ip_address), its(:ipv_4_prefixes), its(:ipv_6_prefixes), its(:requester_id), its(:requester_managed), its(:source_dest_check), its(:status), its(:subnet_id), its(:vpc_id), its(:deny_all_igw_traffic), its(:ipv_6_native), its(:ipv_6_address), its(:operator), its(:associated_subnets), its(:availability_zone_id)
|
|
2799
2799
|
## <a name="nlb">nlb</a>
|
|
2800
2800
|
|
|
2801
2801
|
NLB resource type.
|
|
@@ -15,7 +15,7 @@ module Awspec::Generator
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def generate_doc
|
|
18
|
-
@account_spec = ERB.new(account_spec_template,
|
|
18
|
+
@account_spec = ERB.new(account_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
19
19
|
super
|
|
20
20
|
end
|
|
21
21
|
|
|
@@ -14,8 +14,9 @@ module Awspec::Generator
|
|
|
14
14
|
@describes = []
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
# rubocop:disable Layout/LineLength
|
|
17
18
|
def generate_doc
|
|
18
|
-
@account_attribute_spec = ERB.new(account_attribute_spec_template,
|
|
19
|
+
@account_attribute_spec = ERB.new(account_attribute_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
19
20
|
super
|
|
20
21
|
end
|
|
21
22
|
|
|
@@ -18,7 +18,7 @@ module Awspec::Generator
|
|
|
18
18
|
<%= links.join("\n| ") %>
|
|
19
19
|
|
|
20
20
|
EOF
|
|
21
|
-
doc = ERB.new(header,
|
|
21
|
+
doc = ERB.new(header, trim_mode: '-').result(binding)
|
|
22
22
|
|
|
23
23
|
types.sort.map do |type|
|
|
24
24
|
doc += eval "Awspec::Generator::Doc::Type::#{type.camelize}.new.generate_doc"
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
certificates = select_all_certificates
|
|
9
9
|
raise 'Not Found Certificates' if certificates.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(acm_spec_template,
|
|
11
|
+
ERB.new(acm_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def acm_spec_template
|
|
@@ -16,7 +16,7 @@ module Awspec::Generator
|
|
|
16
16
|
albs = select_alb_by_vpc_id(@vpc_id)
|
|
17
17
|
|
|
18
18
|
specs = albs.map do |alb|
|
|
19
|
-
content = ERB.new(alb_spec_template,
|
|
19
|
+
content = ERB.new(alb_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
20
20
|
end
|
|
21
21
|
specs.join("\n")
|
|
22
22
|
end
|
|
@@ -20,7 +20,7 @@ module Awspec::Generator
|
|
|
20
20
|
alb_listeners.map do |listener|
|
|
21
21
|
rules = select_rule_by_alb_listener_id(listener.listener_arn).map(&:to_h)
|
|
22
22
|
rules.map do |rule|
|
|
23
|
-
content = ERB.new(alb_listener_spec_template,
|
|
23
|
+
content = ERB.new(alb_listener_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -17,7 +17,7 @@ module Awspec::Generator
|
|
|
17
17
|
@vpc_tag_name = vpc.tag_name
|
|
18
18
|
autoscaling_groups = select_autoscaling_group_by_vpc_id(@vpc_id)
|
|
19
19
|
specs = autoscaling_groups.map do |autoscaling_group|
|
|
20
|
-
content = ERB.new(autoscaling_group_spec_template,
|
|
20
|
+
content = ERB.new(autoscaling_group_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
21
21
|
end
|
|
22
22
|
specs.join("\n")
|
|
23
23
|
end
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
alarms = select_all_cloudwatch_alarms
|
|
9
9
|
raise 'Not Found alarm' if alarms.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(alarm_spec_template,
|
|
11
|
+
ERB.new(alarm_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def alarm_spec_template
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
events = select_all_cloudwatch_events
|
|
9
9
|
raise 'Not Found event' if events.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(event_spec_template,
|
|
11
|
+
ERB.new(event_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def event_spec_template
|
|
@@ -12,7 +12,7 @@ module Awspec::Generator
|
|
|
12
12
|
log_stream_line = generate_log_stream_spec(log_group.log_group_name)
|
|
13
13
|
metric_filter_lines = generate_log_metric_filters_specs(log_group.log_group_name)
|
|
14
14
|
subscription_filter_lines = generate_log_subscription_filters_specs(log_group.log_group_name)
|
|
15
|
-
content = ERB.new(cloudwatch_logs_spec_template,
|
|
15
|
+
content = ERB.new(cloudwatch_logs_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
16
16
|
end
|
|
17
17
|
specs.join("\n")
|
|
18
18
|
end
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
projects = select_all_codebuild_projects
|
|
9
9
|
raise 'Not Found CodeBuild Project' if projects.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(codebuild_spec_template,
|
|
11
|
+
ERB.new(codebuild_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def codebuild_spec_template
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
pipelines = select_all_codepipelines
|
|
9
9
|
raise 'Not Found CodePipeline' if pipelines.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(codepipeline_spec_template,
|
|
11
|
+
ERB.new(codepipeline_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def codepipeline_spec_template
|
|
@@ -12,7 +12,7 @@ module Awspec::Generator
|
|
|
12
12
|
virtual_interfaces = select_virtual_interfaces
|
|
13
13
|
raise 'Not Found virtual_interfaces' if virtual_interfaces.empty?
|
|
14
14
|
|
|
15
|
-
ERB.new(virtual_interface_spec_template,
|
|
15
|
+
ERB.new(virtual_interface_spec_template, trim_mode: '-').result(binding).chomp
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def virtual_interface_spec_template
|
|
@@ -10,7 +10,7 @@ module Awspec::Generator
|
|
|
10
10
|
|
|
11
11
|
specs = volumes.map do |volume|
|
|
12
12
|
attachment_specs = generate_attachment_specs(volume)
|
|
13
|
-
content = ERB.new(ebs_spec_template,
|
|
13
|
+
content = ERB.new(ebs_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
14
14
|
end
|
|
15
15
|
specs.join("\n")
|
|
16
16
|
end
|
|
@@ -19,7 +19,7 @@ module Awspec::Generator
|
|
|
19
19
|
linespecs = []
|
|
20
20
|
volume.attachments.each do |attachment|
|
|
21
21
|
instance = find_ec2(attachment.instance_id)
|
|
22
|
-
linespecs.push(ERB.new(attachment_linetemplate,
|
|
22
|
+
linespecs.push(ERB.new(attachment_linetemplate, trim_mode: '-').result(binding)) if attachment.instance_id
|
|
23
23
|
end
|
|
24
24
|
linespecs
|
|
25
25
|
end
|
|
@@ -23,7 +23,7 @@ module Awspec::Generator
|
|
|
23
23
|
volumes = select_ebs_by_instance_id(instance_id)
|
|
24
24
|
network_interfaces = select_network_interface_by_instance_id(instance_id)
|
|
25
25
|
credit_specification = find_ec2_credit_specifications(instance_id)
|
|
26
|
-
content = ERB.new(ec2_spec_template,
|
|
26
|
+
content = ERB.new(ec2_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
27
27
|
end
|
|
28
28
|
specs.join("\n")
|
|
29
29
|
end
|
|
@@ -10,7 +10,7 @@ module Awspec::Generator
|
|
|
10
10
|
|
|
11
11
|
specs = file_systems.map do |file_system|
|
|
12
12
|
file_system.name = get_name_by_id(file_system.file_system_id)
|
|
13
|
-
content = ERB.new(file_system_spec_template,
|
|
13
|
+
content = ERB.new(file_system_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
14
14
|
end
|
|
15
15
|
specs.join("\n")
|
|
16
16
|
end
|
|
@@ -13,7 +13,7 @@ module Awspec::Generator
|
|
|
13
13
|
eips = select_all_addresses
|
|
14
14
|
raise 'Not Found Elastic IP addresses.' if eips.empty?
|
|
15
15
|
|
|
16
|
-
ERB.new(eip_spec_template,
|
|
16
|
+
ERB.new(eip_spec_template, trim_mode: '-').result(binding).chomp
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def eip_spec_template
|
|
@@ -16,7 +16,7 @@ module Awspec::Generator
|
|
|
16
16
|
end
|
|
17
17
|
raise 'Not Found Cache Clusters' if clusters.empty?
|
|
18
18
|
|
|
19
|
-
ERB.new(cache_clusters_spec_template,
|
|
19
|
+
ERB.new(cache_clusters_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def cache_clusters_spec_template
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
domains = select_all_elasticsearch_domains
|
|
9
9
|
raise 'Not Found Domain' if domains.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(domain_spec_template,
|
|
11
|
+
ERB.new(domain_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def domain_spec_template
|
|
@@ -20,7 +20,7 @@ module Awspec::Generator
|
|
|
20
20
|
lbs = select_elb_by_vpc_id(@vpc_id)
|
|
21
21
|
|
|
22
22
|
specs = lbs.map do |lb|
|
|
23
|
-
content = ERB.new(elb_spec_template,
|
|
23
|
+
content = ERB.new(elb_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
24
24
|
end
|
|
25
25
|
specs.join("\n")
|
|
26
26
|
end
|
|
@@ -17,7 +17,7 @@ module Awspec::Generator
|
|
|
17
17
|
document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
|
|
18
18
|
"it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
|
|
19
19
|
end
|
|
20
|
-
content = ERB.new(iam_group_spec_template,
|
|
20
|
+
content = ERB.new(iam_group_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
21
21
|
end
|
|
22
22
|
specs.join("\n")
|
|
23
23
|
end
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
policies = select_all_attached_policies
|
|
9
9
|
raise 'Not Found policy' if policies.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(policy_spec_template,
|
|
11
|
+
ERB.new(policy_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
# rubocop:disable all
|
|
@@ -17,7 +17,7 @@ module Awspec::Generator
|
|
|
17
17
|
document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
|
|
18
18
|
"it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
|
|
19
19
|
end
|
|
20
|
-
content = ERB.new(iam_role_spec_template,
|
|
20
|
+
content = ERB.new(iam_role_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
21
21
|
end
|
|
22
22
|
specs.join("\n")
|
|
23
23
|
end
|
|
@@ -17,7 +17,7 @@ module Awspec::Generator
|
|
|
17
17
|
document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
|
|
18
18
|
"it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
|
|
19
19
|
end
|
|
20
|
-
content = ERB.new(iam_user_spec_template,
|
|
20
|
+
content = ERB.new(iam_user_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
21
21
|
end
|
|
22
22
|
specs.join("\n")
|
|
23
23
|
end
|
|
@@ -15,7 +15,7 @@ module Awspec::Generator
|
|
|
15
15
|
internet_gateways = select_internet_gateway_by_vpc_id(@vpc_id)
|
|
16
16
|
specs = internet_gateways.map do |internet_gateway|
|
|
17
17
|
internet_gateway_id = internet_gateway[:internet_gateway_id]
|
|
18
|
-
content = ERB.new(internet_gateway_spec_template,
|
|
18
|
+
content = ERB.new(internet_gateway_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
19
19
|
end
|
|
20
20
|
specs.join("\n")
|
|
21
21
|
end
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
aliases = select_all_kms_aliases.select { |kms_alias| customer_managed_key?(kms_alias) }
|
|
9
9
|
raise 'Not Found alias' if aliases.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(keys_spec_template,
|
|
11
|
+
ERB.new(keys_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def keys_spec_template
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
|
8
8
|
lambda_functions = select_all_lambda_functions
|
|
9
9
|
raise 'Not Found lambda' if lambda_functions.empty?
|
|
10
10
|
|
|
11
|
-
ERB.new(lambda_spec_template,
|
|
11
|
+
ERB.new(lambda_spec_template, trim_mode: '-').result(binding).chomp
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def lambda_spec_template
|
|
@@ -15,7 +15,7 @@ module Awspec::Generator
|
|
|
15
15
|
|
|
16
16
|
specs = prefix_lists.map do |prefix_list|
|
|
17
17
|
entries = select_managed_prefix_list_entries(prefix_list.prefix_list_id)
|
|
18
|
-
content = ERB.new(managed_prefix_list_spec_template,
|
|
18
|
+
content = ERB.new(managed_prefix_list_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
19
19
|
end
|
|
20
20
|
specs.join("\n")
|
|
21
21
|
end
|
|
@@ -15,7 +15,7 @@ module Awspec::Generator
|
|
|
15
15
|
nat_gateways = select_nat_gateway_by_vpc_id(@vpc_id)
|
|
16
16
|
specs = nat_gateways.map do |nat_gateway|
|
|
17
17
|
nat_gateway_id = nat_gateway[:nat_gateway_id]
|
|
18
|
-
content = ERB.new(nat_gateway_spec_template,
|
|
18
|
+
content = ERB.new(nat_gateway_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
19
19
|
end
|
|
20
20
|
specs.join("\n")
|
|
21
21
|
end
|
|
@@ -24,7 +24,7 @@ module Awspec::Generator
|
|
|
24
24
|
outbound_entries_count = acl.entries.count do |entry|
|
|
25
25
|
entry.egress == true
|
|
26
26
|
end
|
|
27
|
-
content = ERB.new(network_acl_spec_template,
|
|
27
|
+
content = ERB.new(network_acl_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
28
28
|
end
|
|
29
29
|
specs.join("\n")
|
|
30
30
|
end
|
|
@@ -19,7 +19,7 @@ module Awspec::Generator
|
|
|
19
19
|
network_interface_id = interface[:network_interface_id]
|
|
20
20
|
linespecs = generate_linespecs(interface)
|
|
21
21
|
private_ip_addresses_count = interface.private_ip_addresses.count
|
|
22
|
-
content = ERB.new(network_interface_spec_template,
|
|
22
|
+
content = ERB.new(network_interface_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
23
23
|
end
|
|
24
24
|
specs.join("\n")
|
|
25
25
|
end
|
|
@@ -16,7 +16,7 @@ module Awspec::Generator
|
|
|
16
16
|
nlbs = select_nlb_by_vpc_id(@vpc_id)
|
|
17
17
|
|
|
18
18
|
specs = nlbs.map do |nlb|
|
|
19
|
-
content = ERB.new(nlb_spec_template,
|
|
19
|
+
content = ERB.new(nlb_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
20
20
|
end
|
|
21
21
|
specs.join("\n")
|
|
22
22
|
end
|
|
@@ -20,7 +20,7 @@ module Awspec::Generator
|
|
|
20
20
|
nlb_listeners.map do |listener|
|
|
21
21
|
rules = select_rule_by_nlb_listener_id(listener.listener_arn).map(&:to_h)
|
|
22
22
|
rules.map do |rule|
|
|
23
|
-
content = ERB.new(nlb_listener_spec_template,
|
|
23
|
+
content = ERB.new(nlb_listener_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -21,7 +21,7 @@ module Awspec::Generator
|
|
|
21
21
|
ret = find_security_group(sg_id)
|
|
22
22
|
ret[:group_name]
|
|
23
23
|
end
|
|
24
|
-
content = ERB.new(rds_spec_template,
|
|
24
|
+
content = ERB.new(rds_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
25
25
|
end
|
|
26
26
|
specs.join("\n")
|
|
27
27
|
end
|
|
@@ -7,7 +7,7 @@ module Awspec::Generator
|
|
|
7
7
|
def generate_by_parameter_group(parameter_group)
|
|
8
8
|
@parameter_group = parameter_group
|
|
9
9
|
res = select_all_rds_db_cluster_parameters(@parameter_group)
|
|
10
|
-
ERB.new(db_cluster_parameter_group_template,
|
|
10
|
+
ERB.new(db_cluster_parameter_group_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def db_cluster_parameter_group_template
|
|
@@ -7,7 +7,7 @@ module Awspec::Generator
|
|
|
7
7
|
def generate_by_parameter_group(parameter_group)
|
|
8
8
|
@parameter_group = parameter_group
|
|
9
9
|
res = select_all_rds_db_parameters(@parameter_group)
|
|
10
|
-
ERB.new(db_parameter_group_template,
|
|
10
|
+
ERB.new(db_parameter_group_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def db_parameter_group_template
|
|
@@ -11,7 +11,7 @@ module Awspec::Generator
|
|
|
11
11
|
@vpc_id = vpc[:vpc_id]
|
|
12
12
|
db_proxies = select_rds_proxy_by_vpc_id(@vpc_id)
|
|
13
13
|
specs = db_proxies.map do |db_proxy|
|
|
14
|
-
content = ERB.new(rds_proxy_spec_template,
|
|
14
|
+
content = ERB.new(rds_proxy_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
15
15
|
end
|
|
16
16
|
specs.join("\n")
|
|
17
17
|
end
|
|
@@ -24,7 +24,7 @@ module Awspec::Generator
|
|
|
24
24
|
ret = find_security_group(sg_id)
|
|
25
25
|
ret[:group_name]
|
|
26
26
|
end
|
|
27
|
-
content = ERB.new(redshift_spec_template,
|
|
27
|
+
content = ERB.new(redshift_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
28
28
|
end
|
|
29
29
|
specs.join("\n")
|
|
30
30
|
end
|
|
@@ -7,7 +7,7 @@ module Awspec::Generator
|
|
|
7
7
|
def generate_by_parameter_group(parameter_group)
|
|
8
8
|
@parameter_group = parameter_group
|
|
9
9
|
res = select_all_redshift_cluster_parameters(@parameter_group)
|
|
10
|
-
ERB.new(redshift_cluster_parameters_spec_template,
|
|
10
|
+
ERB.new(redshift_cluster_parameters_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def redshift_cluster_parameters_spec_template
|
|
@@ -28,7 +28,7 @@ module Awspec::Generator
|
|
|
28
28
|
generate_linespec(record_set)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
content = ERB.new(route53_hosted_zone_spec_template,
|
|
31
|
+
content = ERB.new(route53_hosted_zone_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def generate_linespec(record_set)
|
|
@@ -55,7 +55,7 @@ it { should have_record_set('<%= name %>').alias('<%= dns_name %>', '<%= hosted_
|
|
|
55
55
|
<% end -%>
|
|
56
56
|
EOF
|
|
57
57
|
end
|
|
58
|
-
ERB.new(template,
|
|
58
|
+
ERB.new(template, trim_mode: '-').result(binding)
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def route53_hosted_zone_spec_template
|
|
@@ -18,7 +18,7 @@ module Awspec::Generator
|
|
|
18
18
|
subnet_linespecs = generate_subnet_linespecs(route_table)
|
|
19
19
|
route_table_id = route_table[:route_table_id]
|
|
20
20
|
route_table_tag_name = route_table.tag_name
|
|
21
|
-
content = ERB.new(route_table_spec_template,
|
|
21
|
+
content = ERB.new(route_table_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
22
22
|
end
|
|
23
23
|
specs.join("\n")
|
|
24
24
|
end
|
|
@@ -29,18 +29,22 @@ module Awspec::Generator
|
|
|
29
29
|
if route.gateway_id
|
|
30
30
|
destination = route.destination_cidr_block
|
|
31
31
|
destination ||= route.destination_prefix_list_id
|
|
32
|
-
linespecs.push(ERB.new(route_table_spec_gateway_linetemplate,
|
|
32
|
+
linespecs.push(ERB.new(route_table_spec_gateway_linetemplate, trim_mode: '-').result(binding))
|
|
33
33
|
end
|
|
34
34
|
if route.instance_id
|
|
35
35
|
instance = find_ec2(route.instance_id)
|
|
36
|
-
|
|
36
|
+
if instance
|
|
37
|
+
linespecs.push(ERB.new(route_table_spec_instance_linetemplate, trim_mode: '-').result(binding))
|
|
38
|
+
end
|
|
37
39
|
end
|
|
38
40
|
if route.vpc_peering_connection_id
|
|
39
41
|
connection = find_vpc_peering_connection(route.vpc_peering_connection_id)
|
|
40
|
-
|
|
42
|
+
if connection
|
|
43
|
+
linespecs.push(ERB.new(route_table_spec_connection_linetemplate, trim_mode: '-').result(binding))
|
|
44
|
+
end
|
|
41
45
|
end
|
|
42
46
|
if route.nat_gateway_id
|
|
43
|
-
linespecs.push(ERB.new(route_table_spec_nat_linetemplate,
|
|
47
|
+
linespecs.push(ERB.new(route_table_spec_nat_linetemplate, trim_mode: '-').result(binding))
|
|
44
48
|
end
|
|
45
49
|
end
|
|
46
50
|
linespecs
|
|
@@ -52,7 +56,7 @@ module Awspec::Generator
|
|
|
52
56
|
next if a.subnet_id.nil?
|
|
53
57
|
|
|
54
58
|
subnet = find_subnet(a.subnet_id)
|
|
55
|
-
linespecs.push(ERB.new(route_table_spec_subnet_linetemplate,
|
|
59
|
+
linespecs.push(ERB.new(route_table_spec_subnet_linetemplate, trim_mode: '-').result(binding)) if subnet
|
|
56
60
|
end
|
|
57
61
|
linespecs
|
|
58
62
|
end
|
|
@@ -24,7 +24,7 @@ module Awspec::Generator
|
|
|
24
24
|
|
|
25
25
|
linespecs = []
|
|
26
26
|
acl.grants.each do |grant|
|
|
27
|
-
linespecs.push(ERB.new(grant_linetemplate,
|
|
27
|
+
linespecs.push(ERB.new(grant_linetemplate, trim_mode: '-').result(binding))
|
|
28
28
|
end
|
|
29
29
|
linespecs
|
|
30
30
|
end
|
|
@@ -79,7 +79,7 @@ it do
|
|
|
79
79
|
)
|
|
80
80
|
end
|
|
81
81
|
EOF
|
|
82
|
-
linespecs.push(ERB.new(template,
|
|
82
|
+
linespecs.push(ERB.new(template, trim_mode: '-').result(binding))
|
|
83
83
|
end
|
|
84
84
|
linespecs
|
|
85
85
|
end
|
|
@@ -124,7 +124,7 @@ EOF
|
|
|
124
124
|
lifecycle_rule = find_bucket_lifecycle_configuration(bucket.name)
|
|
125
125
|
lifecycle_specs = generate_lifecycle_rule_specs(lifecycle_rule) if lifecycle_rule
|
|
126
126
|
location = find_bucket_location(bucket.name)
|
|
127
|
-
ERB.new(bucket_spec_template,
|
|
127
|
+
ERB.new(bucket_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
128
128
|
end
|
|
129
129
|
end
|
|
130
130
|
end
|
|
@@ -23,7 +23,7 @@ module Awspec::Generator
|
|
|
23
23
|
outbound_rule_count = sg[:ip_permissions_egress].reduce(0) do |sum, permission|
|
|
24
24
|
sum += permission.ip_ranges.count + permission.user_id_group_pairs.count
|
|
25
25
|
end
|
|
26
|
-
content = ERB.new(security_group_spec_template,
|
|
26
|
+
content = ERB.new(security_group_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
27
27
|
end
|
|
28
28
|
specs.join("\n")
|
|
29
29
|
end
|
|
@@ -49,12 +49,12 @@ module Awspec::Generator
|
|
|
49
49
|
|
|
50
50
|
permission.ip_ranges.each do |ip_range|
|
|
51
51
|
target = ip_range.cidr_ip
|
|
52
|
-
linespecs.push(ERB.new(security_group_spec_linetemplate,
|
|
52
|
+
linespecs.push(ERB.new(security_group_spec_linetemplate, trim_mode: '-').result(binding))
|
|
53
53
|
end
|
|
54
54
|
permission.user_id_group_pairs.each do |group|
|
|
55
55
|
target = group.group_name
|
|
56
56
|
target = group.group_id unless group.group_name
|
|
57
|
-
linespecs.push(ERB.new(security_group_spec_linetemplate,
|
|
57
|
+
linespecs.push(ERB.new(security_group_spec_linetemplate, trim_mode: '-').result(binding))
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
end
|
|
@@ -17,7 +17,7 @@ module Awspec::Generator
|
|
|
17
17
|
specs = subnets.map do |subnet|
|
|
18
18
|
subnet_id = subnet[:subnet_id]
|
|
19
19
|
subnet_tag_name = subnet.tag_name
|
|
20
|
-
content = ERB.new(subnet_spec_template,
|
|
20
|
+
content = ERB.new(subnet_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
21
21
|
end
|
|
22
22
|
specs.join("\n")
|
|
23
23
|
end
|
|
@@ -16,7 +16,7 @@ module Awspec::Generator
|
|
|
16
16
|
route_tables = select_route_table_by_vpc_id(@vpc_id)
|
|
17
17
|
network_acls = select_network_acl_by_vpc_id(@vpc_id)
|
|
18
18
|
vpc_attributes = select_vpc_attribute(@vpc_id)
|
|
19
|
-
spec = ERB.new(vpc_spec_template,
|
|
19
|
+
spec = ERB.new(vpc_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# rubocop:disable all
|
|
@@ -10,7 +10,7 @@ module Awspec::Generator
|
|
|
10
10
|
|
|
11
11
|
specs = ip_sets.map do |i|
|
|
12
12
|
ip_set = get_ip_set(scope, i.name, i.id)
|
|
13
|
-
ERB.new(wafv2_ip_set_spec_template,
|
|
13
|
+
ERB.new(wafv2_ip_set_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
14
14
|
end
|
|
15
15
|
specs.join("\n")
|
|
16
16
|
end
|
|
@@ -10,7 +10,7 @@ module Awspec::Generator
|
|
|
10
10
|
|
|
11
11
|
specs = web_acls.map do |acl|
|
|
12
12
|
web_acl = get_web_acl(scope, acl.name, acl.id)
|
|
13
|
-
ERB.new(wafv2_web_acl_spec_template,
|
|
13
|
+
ERB.new(wafv2_web_acl_spec_template, trim_mode: '-').result(binding).gsub(/^\n/, '')
|
|
14
14
|
end
|
|
15
15
|
specs.join("\n")
|
|
16
16
|
end
|
|
@@ -23,7 +23,23 @@ module Awspec::Helper
|
|
|
23
23
|
)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
selected.single_resource(id)
|
|
26
|
+
res = selected.single_resource(id)
|
|
27
|
+
|
|
28
|
+
unless res.nil?
|
|
29
|
+
# Enrich the resource with all the fields returned by get_user, get_group, get_role, get_policy
|
|
30
|
+
params = type == 'policy' ? { :policy_arn => res['arn'] } : { "#{type}_name".to_sym => res["#{type}_name"] }
|
|
31
|
+
r = iam_client.send(
|
|
32
|
+
"get_#{type}",
|
|
33
|
+
params
|
|
34
|
+
)
|
|
35
|
+
object = r[type.to_sym]
|
|
36
|
+
unless object.nil?
|
|
37
|
+
object.to_h.each_key do |k|
|
|
38
|
+
res[k] = object[k] if res[k].nil?
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
res
|
|
27
43
|
end
|
|
28
44
|
end
|
|
29
45
|
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
RSpec::Matchers.define :have_plan_rule do |rule_id|
|
|
4
|
+
attr_list = %w[
|
|
5
|
+
rule_name target_backup_vault_name schedule_expression
|
|
6
|
+
start_window_minutes completion_window_minutes lifecycle
|
|
7
|
+
enable_continuous_backup schedule_expression_timezone
|
|
8
|
+
]
|
|
9
|
+
|
|
4
10
|
match do |plan|
|
|
5
11
|
plan.has_plan_rule?(rule_id,
|
|
6
12
|
rule_name: @rule_name,
|
|
@@ -13,35 +19,20 @@ RSpec::Matchers.define :have_plan_rule do |rule_id|
|
|
|
13
19
|
schedule_expression_timezone: @schedule_expression_timezone)
|
|
14
20
|
end
|
|
15
21
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
@target_backup_vault_name = target_backup_vault_name
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
chain :schedule_expression do |schedule_expression|
|
|
25
|
-
@schedule_expression = schedule_expression
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
chain :start_window_minutes do |start_window_minutes|
|
|
29
|
-
@start_window_minutes = start_window_minutes
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
chain :completion_window_minutes do |completion_window_minutes|
|
|
33
|
-
@completion_window_minutes = completion_window_minutes
|
|
22
|
+
attr_list.each do |a|
|
|
23
|
+
define_method a.to_sym do |*args|
|
|
24
|
+
instance_variable_set("@#{a}", args[0])
|
|
25
|
+
self
|
|
26
|
+
end
|
|
34
27
|
end
|
|
35
28
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
@enable_continuous_backup = enable_continuous_backup
|
|
42
|
-
end
|
|
29
|
+
description do
|
|
30
|
+
attr = ''
|
|
31
|
+
attr_list.each do |a|
|
|
32
|
+
attr += "#{a} #{instance_variable_get("@#{a}")}" unless instance_variable_get("@#{a}").nil?
|
|
33
|
+
end
|
|
43
34
|
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
attr = " with #{attr}" if attr != ''
|
|
36
|
+
"have plan rule #{rule_id}#{attr}"
|
|
46
37
|
end
|
|
47
38
|
end
|
|
@@ -33,7 +33,7 @@ Aws.config[:iam] = {
|
|
|
33
33
|
policies: [
|
|
34
34
|
{
|
|
35
35
|
attachment_count: 1,
|
|
36
|
-
arn: 'arn:aws:iam::
|
|
36
|
+
arn: 'arn:aws:iam::123456789012:policy/my-iam-policy',
|
|
37
37
|
default_version_id: 'v1',
|
|
38
38
|
is_attachable: true,
|
|
39
39
|
policy_id: 'PABCDEFGHI123455689',
|
|
@@ -81,6 +81,20 @@ Aws.config[:iam] = {
|
|
|
81
81
|
is_default_version: true,
|
|
82
82
|
create_date: Time.new(2022, 11, 12, 01, 23, 45, '+00:00')
|
|
83
83
|
}
|
|
84
|
+
},
|
|
85
|
+
get_policy: {
|
|
86
|
+
policy: {
|
|
87
|
+
policy_name: 'my-iam-policy',
|
|
88
|
+
create_date: Time.new(2014, 1, 2, 10, 00, 00, '+00:00'),
|
|
89
|
+
description: 'my-description',
|
|
90
|
+
attachment_count: 1,
|
|
91
|
+
is_attachable: true,
|
|
92
|
+
policy_id: 'PABCDEFGHI123455689',
|
|
93
|
+
default_version_id: 'v1',
|
|
94
|
+
path: '/',
|
|
95
|
+
arn: 'arn:aws:iam::123456789012:policy/my-iam-policy',
|
|
96
|
+
update_date: Time.new(2015, 1, 2, 10, 00, 00, '+00:00')
|
|
97
|
+
}
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
100
|
}
|
data/lib/awspec/stub/iam_role.rb
CHANGED
|
@@ -8,6 +8,7 @@ Aws.config[:iam] = {
|
|
|
8
8
|
role_name: 'my-iam-role',
|
|
9
9
|
role_id: 'RABCDEFGHI123455689',
|
|
10
10
|
arn: 'arn:aws:iam::123456789012:role/my-iam-role',
|
|
11
|
+
description: 'my-description',
|
|
11
12
|
create_date: Time.new(2015, 1, 2, 9, 00, 00, '+00:00')
|
|
12
13
|
]
|
|
13
14
|
},
|
|
@@ -34,7 +35,16 @@ Aws.config[:iam] = {
|
|
|
34
35
|
role_name: 'my-iam-role',
|
|
35
36
|
role_id: 'RABCDEFGHI123455689',
|
|
36
37
|
arn: 'arn:aws:iam::123456789012:role/my-iam-role',
|
|
37
|
-
|
|
38
|
+
description: 'my-description',
|
|
39
|
+
create_date: Time.new(2015, 1, 2, 9, 00, 00, '+00:00'),
|
|
40
|
+
permissions_boundary: {
|
|
41
|
+
permissions_boundary_type: 'Policy',
|
|
42
|
+
permissions_boundary_arn: 'arn:aws:iam::123456789012:policy/my-permission-boundary'
|
|
43
|
+
},
|
|
44
|
+
role_last_used: {
|
|
45
|
+
region: 'us-east-1',
|
|
46
|
+
last_used_date: Time.new(2019, 11, 13, 17, 14, 00, '+00:00')
|
|
47
|
+
}
|
|
38
48
|
}
|
|
39
49
|
},
|
|
40
50
|
get_role_policy: {
|
data/lib/awspec/version.rb
CHANGED