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 +4 -4
- data/.github/release.yml +4 -0
- data/.github/workflows/ci.yml +7 -7
- data/.github/workflows/doc.yml +4 -4
- data/.github/workflows/tagpr.yml +58 -0
- data/.tagpr +35 -0
- data/CHANGELOG.md +98 -0
- data/doc/resource_types.md +8 -6
- data/lib/awspec/helper/finder/backup.rb +9 -0
- data/lib/awspec/matcher/have_plan_rule.rb +47 -0
- data/lib/awspec/matcher.rb +3 -0
- data/lib/awspec/stub/backup_plan.rb +38 -0
- data/lib/awspec/type/backup_plan.rb +40 -0
- data/lib/awspec/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d65a2f5aea6df138e2c8ddef3a36092fc2760f40086c4129ca4f639281b83e52
|
4
|
+
data.tar.gz: d9c213638e77e674dd5fd8b08648ec52956855285253330db732877cd40350ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7972b92325855e58d1c950192b49d477c2d913251c4577371b9f0a2ff593c56a839472cd42c44295562aaef5d9b74445392de9c8fe06ddd4c676962b425ca0f
|
7
|
+
data.tar.gz: 99d9f6df0b85b122550f4c07dfcfd2544a1ddb2a8bf17fc09588f53653a086d6caf851ca78663149a130da766e11afdf2ae6e3210987b0443608f09003122457
|
data/.github/release.yml
ADDED
data/.github/workflows/ci.yml
CHANGED
@@ -3,7 +3,7 @@ name: CI
|
|
3
3
|
on:
|
4
4
|
push:
|
5
5
|
branches:
|
6
|
-
-
|
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@
|
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:
|
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@
|
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
|
data/.github/workflows/doc.yml
CHANGED
@@ -12,18 +12,18 @@ jobs:
|
|
12
12
|
DISABLE_AWS_CLIENT_CHECK: true
|
13
13
|
steps:
|
14
14
|
- name: Checkout
|
15
|
-
uses: actions/checkout@
|
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:
|
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
|
data/doc/resource_types.md
CHANGED
@@ -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(:
|
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(:
|
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
|
data/lib/awspec/matcher.rb
CHANGED
@@ -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
|
data/lib/awspec/version.rb
CHANGED
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.
|
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:
|
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.
|
880
|
+
rubygems_version: 3.6.9
|
876
881
|
specification_version: 4
|
877
882
|
summary: RSpec tests for your AWS resources.
|
878
883
|
test_files: []
|