awspec 1.33.0 → 1.34.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 415e195d37897b2cd7332fcf58389e5482d586eedd613fc4bd620cd1ce68abc9
4
- data.tar.gz: acb522d0bdadd04bd940489689dad8fe5e3bc7778dd26331b133e281da0c39b1
3
+ metadata.gz: d65a2f5aea6df138e2c8ddef3a36092fc2760f40086c4129ca4f639281b83e52
4
+ data.tar.gz: d9c213638e77e674dd5fd8b08648ec52956855285253330db732877cd40350ff
5
5
  SHA512:
6
- metadata.gz: e4515a1b2cd370d7b9ba19a4b7b560682aa3d6a88da28dc1f822e9d3e19926fd56108c2b5442d3b0cfdfa0e62dc8c6ba0d00b061837dbf7ba136a3ea708db759
7
- data.tar.gz: 1f4400835b5683c698be17ae67e6b0e009ea7dfbe02abed60eb6bf191a6f962af73c1669944b66748f905ce797ceb71f8575fe039fc92b3405ec3041ee7b7059
6
+ metadata.gz: e7972b92325855e58d1c950192b49d477c2d913251c4577371b9f0a2ff593c56a839472cd42c44295562aaef5d9b74445392de9c8fe06ddd4c676962b425ca0f
7
+ data.tar.gz: 99d9f6df0b85b122550f4c07dfcfd2544a1ddb2a8bf17fc09588f53653a086d6caf851ca78663149a130da766e11afdf2ae6e3210987b0443608f09003122457
@@ -0,0 +1,4 @@
1
+ changelog:
2
+ exclude:
3
+ labels:
4
+ - tagpr
@@ -3,7 +3,7 @@ name: CI
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - master
6
+ - main
7
7
  pull_request:
8
8
 
9
9
  jobs:
@@ -13,16 +13,16 @@ jobs:
13
13
 
14
14
  steps:
15
15
  - name: Checkout
16
- uses: actions/checkout@v2
16
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
17
17
 
18
18
  - name: Set up Ruby
19
- uses: ruby/setup-ruby@v1
19
+ uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
20
20
  with:
21
- ruby-version: 3.1
21
+ ruby-version: ruby
22
22
  bundler-cache: true
23
23
 
24
24
  - name: Run rubocop
25
- uses: reviewdog/action-rubocop@v1
25
+ uses: reviewdog/action-rubocop@a434f50eaae1589b90edcb14cabf70555571577a # v1.11.0
26
26
  with:
27
27
  github_token: ${{ secrets.GITHUB_TOKEN }}
28
28
  reporter: github-pr-review
@@ -46,10 +46,10 @@ jobs:
46
46
 
47
47
  steps:
48
48
  - name: Checkout
49
- uses: actions/checkout@v2
49
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
50
50
 
51
51
  - name: Set up Ruby
52
- uses: ruby/setup-ruby@v1
52
+ uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
53
53
  with:
54
54
  ruby-version: ${{ matrix.ruby-version }}
55
55
  bundler-cache: true
@@ -12,18 +12,18 @@ jobs:
12
12
  DISABLE_AWS_CLIENT_CHECK: true
13
13
  steps:
14
14
  - name: Checkout
15
- uses: actions/checkout@v2
15
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
16
16
 
17
17
  - name: Set up Ruby
18
- uses: ruby/setup-ruby@v1
18
+ uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
19
19
  with:
20
- ruby-version: '2.7'
20
+ ruby-version: ruby
21
21
  bundler-cache: true
22
22
 
23
23
  - name: Generate document
24
24
  run: bundle exec bin/toolbox docgen > doc/resource_types.md
25
25
 
26
- - uses: EndBug/add-and-commit@v7
26
+ - uses: EndBug/add-and-commit@8c12ff729a98cfbcd3fe38b49f55eceb98a5ec02 # v7.5.0
27
27
  with:
28
28
  default_author: github_actions
29
29
  add: 'doc/resource_types.md'
@@ -0,0 +1,58 @@
1
+ name: tagpr
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+
7
+ jobs:
8
+ tagpr:
9
+ runs-on: ubuntu-latest
10
+ outputs:
11
+ tagpr-tag: ${{ steps.run-tagpr.outputs.tag }}
12
+ permissions:
13
+ contents: write
14
+ pull-requests: write
15
+ issues: write
16
+ packages: write
17
+ env:
18
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19
+ steps:
20
+ - name: Check out source code
21
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
27
+ with:
28
+ ruby-version: ruby
29
+ bundler-cache: true
30
+
31
+ - id: run-tagpr
32
+ name: Run tagpr
33
+ uses: Songmu/tagpr@9c294c8b7b1815a5f3b7c61d6ee6aa50ac25b030 # v1.8.4
34
+
35
+ release:
36
+ needs: tagpr
37
+ if: needs.tagpr.outputs.tagpr-tag != ''
38
+ runs-on: ubuntu-latest
39
+ permissions:
40
+ contents: write
41
+ packages: write
42
+ id-token: write
43
+ env:
44
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45
+ steps:
46
+ - name: Check out source code
47
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
48
+ with:
49
+ fetch-depth: 0
50
+
51
+ - name: Set up Ruby
52
+ uses: ruby/setup-ruby@ab177d40ee5483edb974554986f56b33477e21d0 # v1.265.0
53
+ with:
54
+ ruby-version: ruby
55
+ bundler-cache: true
56
+
57
+ - name: release gem
58
+ uses: rubygems/release-gem@9fc8c0f9a461e67716cde28f188b9a5c029333a8 # v1
data/.tagpr ADDED
@@ -0,0 +1,35 @@
1
+ # config file for the tagpr in git config format
2
+ # The tagpr generates the initial configuration, which you can rewrite to suit your environment.
3
+ # CONFIGURATIONS:
4
+ # tagpr.releaseBranch
5
+ # Generally, it is "main." It is the branch for releases. The pcpr tracks this branch,
6
+ # creates or updates a pull request as a release candidate, or tags when they are merged.
7
+ #
8
+ # tagpr.versionFile
9
+ # Versioning file containing the semantic version needed to be updated at release.
10
+ # It will be synchronized with the "git tag".
11
+ # Often this is a meta-information file such as gemspec, setup.cfg, package.json, etc.
12
+ # Sometimes the source code file, such as version.go or Bar.pm, is used.
13
+ # If you do not want to use versioning files but only git tags, specify the "-" string here.
14
+ # You can specify multiple version files by comma separated strings.
15
+ #
16
+ # tagpr.vPrefix
17
+ # Flag whether or not v-prefix is added to semver when git tagging. (e.g. v1.2.3 if true)
18
+ # This is only a tagging convention, not how it is described in the version file.
19
+ #
20
+ # tagpr.changelog (Optional)
21
+ # Flag whether or not changelog is added or changed during the release.
22
+ #
23
+ # tagpr.command (Optional)
24
+ # Command to change files just before release.
25
+ #
26
+ # tagpr.tmplate (Optional)
27
+ # Pull request template in go template format
28
+ #
29
+ # tagpr.release (Optional)
30
+ # GitHub Release creation behavior after tagging [true, draft, false]
31
+ # If this value is not set, the release is to be created.
32
+ [tagpr]
33
+ vPrefix = true
34
+ releaseBranch = main
35
+ versionFile = lib/awspec/version.rb
data/CHANGELOG.md ADDED
@@ -0,0 +1,98 @@
1
+ # Changelog
2
+
3
+ ## [v1.34.0](https://github.com/k1LoW/awspec/compare/v1.33.0...v1.34.0) - 2025-10-18
4
+ - Add support for aws backup rules (under backup plan) by @endemics in https://github.com/k1LoW/awspec/pull/605
5
+ - feat: setup tagpr by @k1LoW in https://github.com/k1LoW/awspec/pull/606
6
+
7
+ ## [v1.33.0](https://github.com/k1LoW/awspec/compare/v1.32.0...v1.33.0) - 2025-08-10
8
+ - Add wafv2_web_acl resource by @alpineriveredge in https://github.com/k1LoW/awspec/pull/600
9
+ - Add type backup (new PR - no copyright headers) by @endemics in https://github.com/k1LoW/awspec/pull/601
10
+ - Add tag support for DB and Global clusters by @alpineriveredge in https://github.com/k1LoW/awspec/pull/603
11
+ - Make transfer_server searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/604
12
+
13
+ ## [v1.32.0](https://github.com/k1LoW/awspec/compare/v1.31.0...v1.32.0) - 2025-01-28
14
+ - Add codepipeline resource by @alpineriveredge in https://github.com/k1LoW/awspec/pull/592
15
+ - Add wafv2_ip_set resource by @alpineriveredge in https://github.com/k1LoW/awspec/pull/597
16
+ - Fix find vpc_endpoint by Name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/598
17
+
18
+ ## [v1.31.0](https://github.com/k1LoW/awspec/compare/v1.30.0...v1.31.0) - 2025-01-22
19
+ - Enhance codebuild resource by @alpineriveredge in https://github.com/k1LoW/awspec/pull/591
20
+ - fix: Drop support for Ruby 2.x by @k1LoW in https://github.com/k1LoW/awspec/pull/596
21
+ - Fix finding Gateway VPC Endpoints by id by @alexjfisher in https://github.com/k1LoW/awspec/pull/595
22
+
23
+ ## [v1.30.0](https://github.com/k1LoW/awspec/compare/v1.29.3...v1.30.0) - 2024-04-16
24
+ - Make `transit_gateway` `have_attachment` work with names by @alexjfisher in https://github.com/k1LoW/awspec/pull/586
25
+ - Add managed_prefix_list resource by @alpineriveredge in https://github.com/k1LoW/awspec/pull/587
26
+
27
+ ## [v1.29.3](https://github.com/k1LoW/awspec/compare/v1.29.2...v1.29.3) - 2024-01-04
28
+ - Added pagination support to ssm_parameter by @anjo-swe in https://github.com/k1LoW/awspec/pull/583
29
+
30
+ ## [v1.29.2](https://github.com/k1LoW/awspec/compare/v1.29.1...v1.29.2) - 2023-04-08
31
+ - Add support for a custom aws endpoint by @sverch in https://github.com/k1LoW/awspec/pull/580
32
+
33
+ ## [v1.29.1](https://github.com/k1LoW/awspec/compare/v1.29.0...v1.29.1) - 2023-03-21
34
+ - Make network_interface searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/582
35
+
36
+ ## [v1.29.0](https://github.com/k1LoW/awspec/compare/v1.28.2...v1.29.0) - 2023-03-18
37
+ - Make 'nat_gateway have_eip' searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/576
38
+ - Fix ECR Repository document by @alpineriveredge in https://github.com/k1LoW/awspec/pull/577
39
+ - Add policy_document to IAM Policy by @alpineriveredge in https://github.com/k1LoW/awspec/pull/578
40
+ - Fix ALB & NLB have_subnet by @alpineriveredge in https://github.com/k1LoW/awspec/pull/579
41
+ - [BREAKING] Drop 2.1 2.2 from supported Ruby versions / Add 3.2 by @k1LoW in https://github.com/k1LoW/awspec/pull/581
42
+ - Update doc for ecs_service for using non-default cluster by @jedipunkz in https://github.com/k1LoW/awspec/pull/508
43
+
44
+ ## [v1.28.2](https://github.com/k1LoW/awspec/compare/v1.28.1...v1.28.2) - 2022-10-24
45
+ - Add vpc_endpoints attributes by @alpineriveredge in https://github.com/k1LoW/awspec/pull/571
46
+ - Add Elastic IP attributes by @alpineriveredge in https://github.com/k1LoW/awspec/pull/572
47
+ - s3_bucket - fixed documentation for prefix in have_lifecycle_rule by @anjo-swe in https://github.com/k1LoW/awspec/pull/573
48
+ - Make 'vpc_endponts have_subnet' testable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/574
49
+ - Make vpn_gateway searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/575
50
+
51
+ ## [v1.28.1](https://github.com/k1LoW/awspec/compare/v1.28.0...v1.28.1) - 2022-08-29
52
+ - Fix vpc_endpoints document by @alpineriveredge in https://github.com/k1LoW/awspec/pull/569
53
+ - Allow Tags of CloudFormation Stack by @alpineriveredge in https://github.com/k1LoW/awspec/pull/570
54
+
55
+ ## [v1.28.0](https://github.com/k1LoW/awspec/compare/v1.27.1...v1.28.0) - 2022-08-16
56
+ - Add RDS DB Cluster & Global Cluster by @alpineriveredge in https://github.com/k1LoW/awspec/pull/566
57
+
58
+ ## [v1.27.1](https://github.com/k1LoW/awspec/compare/v1.27.0...v1.27.1) - 2022-07-18
59
+ - Make eip searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/565
60
+
61
+ ## [v1.27.0](https://github.com/k1LoW/awspec/compare/v1.26.0...v1.27.0) - 2022-07-03
62
+ - Add RDS Proxy by @alpineriveredge in https://github.com/k1LoW/awspec/pull/564
63
+
64
+ ## [v1.26.0](https://github.com/k1LoW/awspec/compare/v1.25.2...v1.26.0) - 2022-06-06
65
+ - Use parallel.gem by @k1LoW in https://github.com/k1LoW/awspec/pull/557
66
+ - Add transfer_server type by @andoniaf in https://github.com/k1LoW/awspec/pull/558
67
+ - Make vpc_endpoint searchable by name by @alpineriveredge in https://github.com/k1LoW/awspec/pull/561
68
+ - require octorelease when not CI by @k1LoW in https://github.com/k1LoW/awspec/pull/562
69
+
70
+ ## [v1.25.2](https://github.com/k1LoW/awspec/compare/v1.25.1...v1.25.2) - 2022-01-25
71
+ - Support Ruby 3.0.x by @k1LoW in https://github.com/k1LoW/awspec/pull/554
72
+ - Support Ruby 3.1.x by @k1LoW in https://github.com/k1LoW/awspec/pull/555
73
+ - Update rubocop by @k1LoW in https://github.com/k1LoW/awspec/pull/556
74
+
75
+ ## [v1.25.1](https://github.com/k1LoW/awspec/compare/v1.25.0...v1.25.1) - 2021-10-08
76
+ - Fix: undefined method `by_cidr' by @k1LoW in https://github.com/k1LoW/awspec/pull/550
77
+
78
+ ## [v1.25.0](https://github.com/k1LoW/awspec/compare/v1.24.4...v1.25.0) - 2021-09-04
79
+ - Bugfix/issue 264 by @glasswalk3r in https://github.com/k1LoW/awspec/pull/538
80
+ - Added missing SNS specs by @glasswalk3r in https://github.com/k1LoW/awspec/pull/547
81
+ - Bugfix/issue 527 by @glasswalk3r in https://github.com/k1LoW/awspec/pull/548
82
+
83
+ ## [v1.24.4](https://github.com/k1LoW/awspec/compare/v1.24.3...v1.24.4) - 2021-08-09
84
+ - Use GitHub Actions by @k1LoW in https://github.com/k1LoW/awspec/pull/541
85
+ - Update rubocop by @k1LoW in https://github.com/k1LoW/awspec/pull/542
86
+ - refactor: faster EC2 instance search by @glasswalk3r in https://github.com/k1LoW/awspec/pull/535
87
+ - Feature/issue 407 by @glasswalk3r in https://github.com/k1LoW/awspec/pull/543
88
+ - Feature/metric filter pattern support by @JinhuaK in https://github.com/k1LoW/awspec/pull/544
89
+
90
+ ## [v1.24.3](https://github.com/k1LoW/awspec/compare/v1.24.2...v1.24.3) - 2021-07-12
91
+ - Added elasticache spec generator by @inokappa in https://github.com/k1LoW/awspec/pull/540
92
+
93
+ ## [v1.24.2](https://github.com/k1LoW/awspec/compare/v1.24.1...v1.24.2) - 2021-07-04
94
+ - fix: properly handling EC2 errors by @glasswalk3r in https://github.com/k1LoW/awspec/pull/534
95
+ - Bugfix/issue 325 by @glasswalk3r in https://github.com/k1LoW/awspec/pull/537
96
+
97
+ ## [v1.24.1](https://github.com/k1LoW/awspec/compare/v1.24.0...v1.24.1) - 2021-05-08
98
+ - Fixed a bug when a bucket was placed in us-east-1 by @soruma in https://github.com/k1LoW/awspec/pull/533
@@ -385,6 +385,8 @@ describe backup_plan('my-backup-plan') do
385
385
  end
386
386
  ```
387
387
 
388
+ ### have_plan_rule
389
+
388
390
  ### its(:backup_plan_arn), its(:backup_plan_id), its(:creation_date), its(:deletion_date), its(:version_id), its(:backup_plan_name), its(:creator_request_id), its(:last_execution_date), its(:advanced_backup_settings)
389
391
  ## <a name="backup_selection">backup_selection</a>
390
392
 
@@ -940,7 +942,7 @@ describe directconnect_virtual_interface('my-directconnect-virtual-interface') d
940
942
  end
941
943
  ```
942
944
 
943
- ### its(:owner_account), its(:virtual_interface_id), its(:location), its(:connection_id), its(:virtual_interface_type), its(:virtual_interface_name), its(:vlan), its(:asn), its(:amazon_side_asn), its(:auth_key), its(:amazon_address), its(:customer_address), its(:address_family), its(:virtual_interface_state), its(:customer_router_config), its(:mtu), its(:jumbo_frame_capable), its(:virtual_gateway_id), its(:direct_connect_gateway_id), its(:route_filter_prefixes), its(:bgp_peers), its(:region), its(:aws_device_v2), its(:aws_logical_device_id), its(:tags), its(:site_link_enabled)
945
+ ### its(:owner_account), its(:virtual_interface_id), its(:location), its(:connection_id), its(:virtual_interface_type), its(:virtual_interface_name), its(:vlan), its(:asn), its(:asn_long), its(:amazon_side_asn), its(:auth_key), its(:amazon_address), its(:customer_address), its(:address_family), its(:virtual_interface_state), its(:customer_router_config), its(:mtu), its(:jumbo_frame_capable), its(:virtual_gateway_id), its(:direct_connect_gateway_id), its(:route_filter_prefixes), its(:bgp_peers), its(:region), its(:aws_device_v2), its(:aws_logical_device_id), its(:tags), its(:site_link_enabled)
944
946
  ## <a name="dynamodb_table">dynamodb_table</a>
945
947
 
946
948
  DynamodbTable resource type.
@@ -1036,7 +1038,7 @@ end
1036
1038
  ```
1037
1039
 
1038
1040
 
1039
- ### its(:outpost_arn), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput), its(:sse_type), its(:operator), its(:volume_initialization_rate), its(:volume_id), its(:size), its(:snapshot_id), its(:availability_zone), its(:state), its(:create_time), its(:encrypted), its(:kms_key_id)
1041
+ ### its(:availability_zone_id), its(:outpost_arn), its(:source_volume_id), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput), its(:sse_type), its(:operator), its(:volume_initialization_rate), its(:volume_id), its(:size), its(:snapshot_id), its(:availability_zone), its(:state), its(:create_time), its(:encrypted), its(:kms_key_id)
1040
1042
  ### :unlock: Advanced use
1041
1043
 
1042
1044
  `ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
@@ -1469,7 +1471,7 @@ describe eks('my-eks') do
1469
1471
  end
1470
1472
  ```
1471
1473
 
1472
- ### its(:name), its(:arn), its(:created_at), its(:version), its(:endpoint), its(:role_arn), its(:kubernetes_network_config), its(:logging), its(:identity), its(:status), its(:client_request_token), its(:platform_version), its(:tags), its(:encryption_config), its(:connector_config), its(:id), its(:health), its(:outpost_config), its(:access_config), its(:upgrade_policy), its(:zonal_shift_config), its(:remote_network_config), its(:compute_config), its(:storage_config)
1474
+ ### its(:name), its(:arn), its(:created_at), its(:version), its(:endpoint), its(:role_arn), its(:kubernetes_network_config), its(:logging), its(:identity), its(:status), its(:client_request_token), its(:platform_version), its(:tags), its(:encryption_config), its(:connector_config), its(:id), its(:health), its(:outpost_config), its(:access_config), its(:upgrade_policy), its(:zonal_shift_config), its(:remote_network_config), its(:compute_config), its(:storage_config), its(:deletion_protection)
1473
1475
  ## <a name="eks_nodegroup">eks_nodegroup</a>
1474
1476
 
1475
1477
  EksNodegroup resource type.
@@ -3021,7 +3023,7 @@ end
3021
3023
  ```
3022
3024
 
3023
3025
 
3024
- ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:automatic_restart_time), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:replica_mode), its(:license_model), its(:iops), its(:character_set_name), its(:nchar_character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:enabled_cloudwatch_logs_exports), its(:processor_features), its(:deletion_protection), its(:associated_roles), its(:listener_endpoint), its(:max_allocated_storage), its(:tag_list), its(:db_instance_automated_backups_replications), its(:customer_owned_ip_enabled), its(:aws_backup_recovery_point_arn), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:activity_stream_mode), its(:activity_stream_engine_native_audit_fields_included), its(:automation_mode), its(:resume_full_automation_mode_time), its(:custom_iam_instance_profile), its(:backup_target), its(:network_type), its(:activity_stream_policy_status), its(:storage_throughput), its(:db_system_id), its(:master_user_secret), its(:certificate_details), its(:read_replica_source_db_cluster_identifier), its(:percent_progress), its(:dedicated_log_volume), its(:is_storage_config_upgrade_available), its(:multi_tenant), its(:engine_lifecycle_support)
3026
+ ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:replica_mode), its(:license_model), its(:iops), its(:storage_throughput), its(:character_set_name), its(:nchar_character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:enabled_cloudwatch_logs_exports), its(:processor_features), its(:deletion_protection), its(:associated_roles), its(:listener_endpoint), its(:max_allocated_storage), its(:tag_list), its(:automation_mode), its(:resume_full_automation_mode_time), its(:customer_owned_ip_enabled), its(:network_type), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:activity_stream_mode), its(:activity_stream_engine_native_audit_fields_included), its(:aws_backup_recovery_point_arn), its(:db_instance_automated_backups_replications), its(:backup_target), its(:automatic_restart_time), its(:custom_iam_instance_profile), its(:activity_stream_policy_status), its(:certificate_details), its(:db_system_id), its(:master_user_secret), its(:read_replica_source_db_cluster_identifier), its(:percent_progress), its(:multi_tenant), its(:dedicated_log_volume), its(:is_storage_config_upgrade_available), its(:engine_lifecycle_support)
3025
3027
  ### :unlock: Advanced use
3026
3028
 
3027
3029
  `rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
@@ -3103,7 +3105,7 @@ describe rds_db_cluster('my-rds-db-cluster') do
3103
3105
  end
3104
3106
  ```
3105
3107
 
3106
- ### its(:allocated_storage), its(:availability_zones), its(:backup_retention_period), its(:character_set_name), its(:database_name), its(:db_cluster_identifier), its(:db_cluster_parameter_group), its(:db_subnet_group), its(:status), its(:automatic_restart_time), its(:percent_progress), its(:earliest_restorable_time), its(:endpoint), its(:reader_endpoint), its(:custom_endpoints), its(:multi_az), its(:engine), its(:engine_version), its(:latest_restorable_time), its(:port), its(:master_username), its(:db_cluster_option_group_memberships), its(:preferred_backup_window), its(:preferred_maintenance_window), its(:replication_source_identifier), its(:read_replica_identifiers), its(:status_infos), its(:hosted_zone_id), its(:storage_encrypted), its(:kms_key_id), its(:db_cluster_resource_id), its(:db_cluster_arn), its(:associated_roles), its(:iam_database_authentication_enabled), its(:clone_group_id), its(:cluster_create_time), its(:earliest_backtrack_time), its(:backtrack_window), its(:backtrack_consumed_change_records), its(:enabled_cloudwatch_logs_exports), its(:capacity), its(:engine_mode), its(:scaling_configuration_info), its(:rds_custom_cluster_configuration), its(:deletion_protection), its(:http_endpoint_enabled), its(:activity_stream_mode), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:copy_tags_to_snapshot), its(:cross_account_clone), its(:domain_memberships), its(:global_cluster_identifier), its(:global_write_forwarding_status), its(:global_write_forwarding_requested), its(:pending_modified_values), its(:db_cluster_instance_class), its(:storage_type), its(:iops), its(:publicly_accessible), its(:auto_minor_version_upgrade), its(:monitoring_interval), its(:monitoring_role_arn), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:serverless_v2_scaling_configuration), its(:network_type), its(:db_system_id), its(:master_user_secret), its(:io_optimized_next_allowed_modification_time), its(:local_write_forwarding_status), its(:aws_backup_recovery_point_arn), its(:limitless_database), its(:storage_throughput), its(:cluster_scalability_type), its(:certificate_details), its(:engine_lifecycle_support)
3108
+ ### its(:allocated_storage), its(:availability_zones), its(:backup_retention_period), its(:character_set_name), its(:database_name), its(:db_cluster_identifier), its(:db_cluster_parameter_group), its(:db_subnet_group), its(:status), its(:percent_progress), its(:earliest_restorable_time), its(:endpoint), its(:reader_endpoint), its(:custom_endpoints), its(:multi_az), its(:engine), its(:engine_version), its(:latest_restorable_time), its(:port), its(:master_username), its(:db_cluster_option_group_memberships), its(:preferred_backup_window), its(:preferred_maintenance_window), its(:replication_source_identifier), its(:read_replica_identifiers), its(:status_infos), its(:hosted_zone_id), its(:storage_encrypted), its(:kms_key_id), its(:db_cluster_resource_id), its(:db_cluster_arn), its(:associated_roles), its(:iam_database_authentication_enabled), its(:clone_group_id), its(:cluster_create_time), its(:earliest_backtrack_time), its(:backtrack_window), its(:backtrack_consumed_change_records), its(:enabled_cloudwatch_logs_exports), its(:capacity), its(:pending_modified_values), its(:engine_mode), its(:scaling_configuration_info), its(:rds_custom_cluster_configuration), its(:db_cluster_instance_class), its(:storage_type), its(:iops), its(:storage_throughput), its(:io_optimized_next_allowed_modification_time), its(:publicly_accessible), its(:auto_minor_version_upgrade), its(:deletion_protection), its(:http_endpoint_enabled), its(:activity_stream_mode), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:copy_tags_to_snapshot), its(:cross_account_clone), its(:domain_memberships), its(:global_cluster_identifier), its(:global_write_forwarding_status), its(:global_write_forwarding_requested), its(:network_type), its(:automatic_restart_time), its(:serverless_v2_scaling_configuration), its(:serverless_v2_platform_version), its(:monitoring_interval), its(:monitoring_role_arn), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:db_system_id), its(:master_user_secret), its(:local_write_forwarding_status), its(:aws_backup_recovery_point_arn), its(:limitless_database), its(:cluster_scalability_type), its(:certificate_details), its(:engine_lifecycle_support)
3107
3109
  ## <a name="rds_db_cluster_parameter_group">rds_db_cluster_parameter_group</a>
3108
3110
 
3109
3111
  RdsDBClusterParameterGroup resource type.
@@ -3282,7 +3284,7 @@ describe rds_proxy('my-rds-proxy') do
3282
3284
  end
3283
3285
  ```
3284
3286
 
3285
- ### its(:vpc_id), its(:db_proxy_name), its(:db_proxy_arn), its(:status), its(:engine_family), its(:vpc_id), its(:vpc_security_group_ids), its(:vpc_subnet_ids), its(:role_arn), its(:endpoint), its(:require_tls), its(:idle_client_timeout), its(:debug_logging), its(:created_date), its(:updated_date)
3287
+ ### its(:vpc_id), its(:db_proxy_name), its(:db_proxy_arn), its(:status), its(:engine_family), its(:vpc_id), its(:vpc_security_group_ids), its(:vpc_subnet_ids), its(:default_auth_scheme), its(:role_arn), its(:endpoint), its(:require_tls), its(:idle_client_timeout), its(:debug_logging), its(:created_date), its(:updated_date), its(:endpoint_network_type), its(:target_connection_network_type)
3286
3288
  ## <a name="redshift">redshift</a>
3287
3289
 
3288
3290
  Redshift resource type.
@@ -67,6 +67,15 @@ module Awspec::Helper
67
67
  nil
68
68
  end
69
69
 
70
+ def select_backup_rule_by_plan_id(id)
71
+ selected = []
72
+ req = { backup_plan_id: id }
73
+ res = backup_client.get_backup_plan(req)
74
+ selected = res.backup_plan.rules
75
+ rescue Aws::Backup::Errors::ResourceNotFoundException
76
+ nil
77
+ end
78
+
70
79
  def locked?
71
80
  resource_via_client.locked
72
81
  end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec::Matchers.define :have_plan_rule do |rule_id|
4
+ match do |plan|
5
+ plan.has_plan_rule?(rule_id,
6
+ rule_name: @rule_name,
7
+ target_backup_vault_name: @target_backup_vault_name,
8
+ schedule_expression: @schedule_expression,
9
+ start_window_minutes: @start_window_minutes,
10
+ completion_window_minutes: @completion_window_minutes,
11
+ lifecycle: @lifecycle,
12
+ enable_continuous_backup: @enable_continuous_backup,
13
+ schedule_expression_timezone: @schedule_expression_timezone)
14
+ end
15
+
16
+ chain :rule_name do |rule_name|
17
+ @rule_name = rule_name
18
+ end
19
+
20
+ chain :target_backup_vault_name do |target_backup_vault_name|
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
34
+ end
35
+
36
+ chain :lifecycle do |lifecycle|
37
+ @lifecycle = lifecycle
38
+ end
39
+
40
+ chain :enable_continuous_backup do |enable_continuous_backup|
41
+ @enable_continuous_backup = enable_continuous_backup
42
+ end
43
+
44
+ chain :schedule_expression_timezone do |schedule_expression_timezone|
45
+ @schedule_expression_timezone = schedule_expression_timezone
46
+ end
47
+ end
@@ -96,3 +96,6 @@ require 'awspec/matcher/have_cidr'
96
96
 
97
97
  # BackupSelection
98
98
  require 'awspec/matcher/belong_to_backup_plan'
99
+
100
+ # BackupPlan
101
+ require 'awspec/matcher/have_plan_rule'
@@ -28,6 +28,44 @@ Aws.config[:backup] = {
28
28
  }
29
29
  ],
30
30
  next_token: nil
31
+ },
32
+ get_backup_plan: {
33
+ backup_plan: {
34
+ backup_plan_name: 'my-backup-plan',
35
+ rules: [
36
+ {
37
+ rule_name: 'my-daily-backup',
38
+ target_backup_vault_name: 'my-backup-vault',
39
+ schedule_expression: 'cron(0 0 * * ? *)',
40
+ start_window_minutes: 360,
41
+ completion_window_minutes: 1440,
42
+ lifecycle: {
43
+ delete_after_days: 7
44
+ },
45
+ rule_id: '8dd6ef67-9eeb-4743-98be-5b4c582ee3d0',
46
+ enable_continuous_backup: false,
47
+ schedule_expression_timezone: 'Etc/UTC'
48
+ },
49
+ {
50
+ rule_name: 'backup-rule-hourly-30-days',
51
+ target_backup_vault_name: 'Default',
52
+ schedule_expression: 'cron(30 * ? * * *)',
53
+ start_window_minutes: 60,
54
+ completion_window_minutes: 1440,
55
+ lifecycle: {
56
+ delete_after_days: 30
57
+ },
58
+ rule_id: 'febe7fd4-c95f-4d26-b502-97adf2fd0cf4',
59
+ enable_continuous_backup: false,
60
+ schedule_expression_timezone: 'Etc/UTC'
61
+ }
62
+ ]
63
+ },
64
+ backup_plan_id: 'fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
65
+ backup_plan_arn: 'arn:aws:backup:us-west-2:111122223333:backup-plan:fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
66
+ version_id: 'disFW7K0dOAjTaMWKYlhEyScjBhmi5kKGf7BrY7i1BG8F8wB',
67
+ creation_date: Time.new(2016, 10, 4, 9, 00, 00, '+00:00'),
68
+ last_execution_date: Time.new(2025, 10, 4, 9, 00, 00, '+00:00')
31
69
  }
32
70
  }
33
71
  }
@@ -9,5 +9,45 @@ module Awspec::Type
9
9
  def id
10
10
  @id ||= resource_via_client.backup_plan_id if resource_via_client
11
11
  end
12
+
13
+ # rubocop:disable Metrics/ParameterLists
14
+ def has_plan_rule?(rule_id,
15
+ rule_name: nil,
16
+ target_backup_vault_name: nil,
17
+ schedule_expression: nil,
18
+ start_window_minutes: nil,
19
+ completion_window_minutes: nil,
20
+ lifecycle: nil,
21
+ enable_continuous_backup: nil,
22
+ schedule_expression_timezone: nil)
23
+ rules = select_backup_rule_by_plan_id(resource_via_client.backup_plan_id)
24
+ rules.find do |rule|
25
+ next false if !rule_id.nil? && rule.rule_id != rule_id && rule.rule_name != rule_id
26
+ next false if !rule_name.nil? && rule.rule_name != rule_name
27
+ next false if !target_backup_vault_name.nil? && rule.target_backup_vault_name != target_backup_vault_name
28
+ next false if !schedule_expression.nil? && rule.schedule_expression != schedule_expression
29
+ next false if !start_window_minutes.nil? && rule.start_window_minutes != start_window_minutes
30
+ next false if !completion_window_minutes.nil? && rule.completion_window_minutes != completion_window_minutes
31
+ next false if !enable_continuous_backup.nil? && rule.enable_continuous_backup != enable_continuous_backup
32
+ next false if !schedule_expression_timezone.nil? && \
33
+ rule.schedule_expression_timezone != schedule_expression_timezone
34
+ next false if !lifecycle.nil? && !_lifecycle_is_equal?(rule.lifecycle, lifecycle)
35
+
36
+ true
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def _lifecycle_is_equal?(lc1, lc2)
43
+ lc2_j = JSON.parse lc2
44
+ ret = false
45
+ %w[move_to_cold_storage_after_days delete_after_days opt_in_to_archive_for_supported_resources].each do |attr|
46
+ ret = true if !lc1[attr].nil? && lc2.include?(attr) && lc1[attr].to_s.strip == lc2_j[attr].to_s.strip
47
+ end
48
+ ret
49
+ rescue JSON::ParserError
50
+ raise ArgumentError, "Lifecycle value '#{lc2}' is not valid JSON"
51
+ end
12
52
  end
13
53
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Awspec
4
- VERSION = '1.33.0'
4
+ VERSION = '1.34.0'
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.33.0
4
+ version: 1.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-08-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: addressable
@@ -262,9 +262,13 @@ extensions: []
262
262
  extra_rdoc_files: []
263
263
  files:
264
264
  - ".editorconfig"
265
+ - ".github/release.yml"
265
266
  - ".github/workflows/ci.yml"
266
267
  - ".github/workflows/doc.yml"
268
+ - ".github/workflows/tagpr.yml"
267
269
  - ".rubocop.yml"
270
+ - ".tagpr"
271
+ - CHANGELOG.md
268
272
  - Gemfile
269
273
  - LICENSE.txt
270
274
  - README.md
@@ -636,6 +640,7 @@ files:
636
640
  - lib/awspec/matcher/have_network_interface.rb
637
641
  - lib/awspec/matcher/have_option_group.rb
638
642
  - lib/awspec/matcher/have_origin.rb
643
+ - lib/awspec/matcher/have_plan_rule.rb
639
644
  - lib/awspec/matcher/have_private_ip_address.rb
640
645
  - lib/awspec/matcher/have_record_set.rb
641
646
  - lib/awspec/matcher/have_route.rb
@@ -872,7 +877,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
872
877
  - !ruby/object:Gem::Version
873
878
  version: '0'
874
879
  requirements: []
875
- rubygems_version: 3.6.2
880
+ rubygems_version: 3.6.9
876
881
  specification_version: 4
877
882
  summary: RSpec tests for your AWS resources.
878
883
  test_files: []