awspec 1.32.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.github/release.yml +4 -0
  3. data/.github/workflows/ci.yml +7 -7
  4. data/.github/workflows/doc.yml +4 -4
  5. data/.github/workflows/tagpr.yml +58 -0
  6. data/.rubocop.yml +1 -0
  7. data/.tagpr +35 -0
  8. data/CHANGELOG.md +98 -0
  9. data/doc/_resource_types/backup_plan.md +7 -0
  10. data/doc/_resource_types/backup_selection.md +7 -0
  11. data/doc/_resource_types/backup_vault.md +35 -0
  12. data/doc/_resource_types/rds_db_cluster.md +8 -0
  13. data/doc/_resource_types/rds_global_cluster.md +8 -0
  14. data/doc/_resource_types/transfer_server.md +4 -0
  15. data/doc/_resource_types/wafv2_ip_set.md +6 -2
  16. data/doc/_resource_types/wafv2_web_acl.md +25 -0
  17. data/doc/contributing.md +2 -2
  18. data/doc/resource_types.md +131 -33
  19. data/lib/awspec/generator/doc/type/backup_plan.rb +19 -0
  20. data/lib/awspec/generator/doc/type/backup_selection.rb +19 -0
  21. data/lib/awspec/generator/doc/type/backup_vault.rb +19 -0
  22. data/lib/awspec/generator/doc/type/wafv2_ip_set.rb +1 -1
  23. data/lib/awspec/generator/doc/type/wafv2_web_acl.rb +19 -0
  24. data/lib/awspec/generator/spec/wafv2_web_acl.rb +39 -0
  25. data/lib/awspec/generator.rb +1 -0
  26. data/lib/awspec/helper/finder/backup.rb +97 -0
  27. data/lib/awspec/helper/finder/transfer.rb +21 -1
  28. data/lib/awspec/helper/finder/wafv2.rb +20 -0
  29. data/lib/awspec/helper/finder.rb +4 -1
  30. data/lib/awspec/helper/type.rb +2 -1
  31. data/lib/awspec/matcher/belong_to_backup_plan.rb +12 -0
  32. data/lib/awspec/matcher/have_plan_rule.rb +47 -0
  33. data/lib/awspec/matcher/have_rule.rb +5 -0
  34. data/lib/awspec/matcher.rb +6 -0
  35. data/lib/awspec/stub/backup_plan.rb +71 -0
  36. data/lib/awspec/stub/backup_selection.rb +33 -0
  37. data/lib/awspec/stub/backup_vault.rb +53 -0
  38. data/lib/awspec/stub/rds_db_cluster.rb +6 -1
  39. data/lib/awspec/stub/rds_global_cluster.rb +7 -1
  40. data/lib/awspec/stub/transfer_server.rb +25 -6
  41. data/lib/awspec/stub/wafv2_ip_set.rb +7 -5
  42. data/lib/awspec/stub/wafv2_web_acl.rb +151 -0
  43. data/lib/awspec/type/backup_plan.rb +53 -0
  44. data/lib/awspec/type/backup_selection.rb +13 -0
  45. data/lib/awspec/type/backup_vault.rb +13 -0
  46. data/lib/awspec/type/base.rb +5 -1
  47. data/lib/awspec/type/codepipeline.rb +1 -1
  48. data/lib/awspec/type/rds_db_cluster.rb +1 -0
  49. data/lib/awspec/type/rds_global_cluster.rb +1 -0
  50. data/lib/awspec/type/transfer_server.rb +4 -7
  51. data/lib/awspec/type/wafv2_web_acl.rb +33 -0
  52. data/lib/awspec/version.rb +1 -1
  53. metadata +27 -3
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Helper
4
+ module Finder
5
+ module Backup
6
+ def find_backup_vault(id)
7
+ selected = []
8
+ req = {}
9
+ loop do
10
+ res = backup_client.list_backup_vaults(req)
11
+ selected += res.backup_vault_list.select do |v|
12
+ v.backup_vault_name == id || v.backup_vault_arn == id
13
+ end
14
+ break if res.next_token.nil?
15
+
16
+ req[:next_token] = res.next_token
17
+ end
18
+ selected.single_resource(id)
19
+ rescue Aws::Backup::Errors::ResourceNotFoundException
20
+ nil
21
+ end
22
+
23
+ def find_backup_plan(id)
24
+ selected = []
25
+ req = {}
26
+ loop do
27
+ res = backup_client.list_backup_plans(req)
28
+ selected += res.backup_plans_list.select do |p|
29
+ p.backup_plan_name == id || p.backup_plan_arn == id || p.backup_plan_id == id
30
+ end
31
+ break if res.next_token.nil?
32
+
33
+ req[:next_token] = res.next_token
34
+ end
35
+ selected.single_resource(id)
36
+ rescue Aws::Backup::Errors::ResourceNotFoundException
37
+ nil
38
+ end
39
+
40
+ def find_backup_selection(id)
41
+ backup_plans = []
42
+ req = {}
43
+ loop do
44
+ res = backup_client.list_backup_plans(req)
45
+ backup_plans += res.backup_plans_list.map { |p| p.backup_plan_id }
46
+ break if res.next_token.nil?
47
+
48
+ req[:next_token] = res.next_token
49
+ end
50
+
51
+ selected = []
52
+ next_token = nil
53
+
54
+ backup_plans.each do |plan_id|
55
+ loop do
56
+ res = backup_client.list_backup_selections({ backup_plan_id: plan_id, next_token: next_token })
57
+ selected += res.backup_selections_list.select do |s|
58
+ s.selection_id == id || s.selection_name == id
59
+ end
60
+ break if res.next_token.nil?
61
+
62
+ next_token = res.next_token
63
+ end
64
+ end
65
+ selected.single_resource(id)
66
+ rescue Aws::Backup::Errors::ResourceNotFoundException
67
+ nil
68
+ end
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
+
79
+ def locked?
80
+ resource_via_client.locked
81
+ end
82
+
83
+ def airgapped?
84
+ resource_via_client.vault_type == 'LOGICALLY_AIR_GAPPED_BACKUP_VAULT'
85
+ end
86
+
87
+ STATES = %w[
88
+ creating available failed
89
+ ]
90
+ STATES.each do |state|
91
+ define_method "#{state}?" do
92
+ resource_via_client.vault_state.downcase == state
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -4,8 +4,28 @@ module Awspec::Helper
4
4
  module Finder
5
5
  module Transfer
6
6
  def find_transfer_server(id)
7
- res = transfer_client.describe_server(server_id: id)
7
+ res = transfer_client.describe_server({ server_id: id })
8
8
  res.server
9
+ rescue Aws::Transfer::Errors::ValidationException, Aws::Transfer::Errors::ResourceNotFoundException
10
+ req = {}
11
+ servers = []
12
+ loop do
13
+ res = transfer_client.list_servers(req)
14
+ servers.push(*res.servers)
15
+ break if res.next_token.nil?
16
+
17
+ req[:next_token] = res.next_token
18
+ end
19
+
20
+ servers.each do |s|
21
+ server = transfer_client.describe_server({ server_id: s.server_id }).server
22
+ server.tags.each do |tag|
23
+ if tag.key == 'Name' && tag.value == id
24
+ return server
25
+ end
26
+ end
27
+ end
28
+ nil
9
29
  end
10
30
  end
11
31
  end
@@ -22,6 +22,26 @@ module Awspec::Helper
22
22
  res = wafv2_client.get_ip_set({ name: name, scope: scope, id: id })
23
23
  res.ip_set
24
24
  end
25
+
26
+ def find_web_acl(scope, name)
27
+ web_acls = select_all_web_acls(scope)
28
+ web_acl = web_acls.find do |acl|
29
+ acl.name == name
30
+ end
31
+ return false unless web_acl
32
+
33
+ get_web_acl(scope, name, web_acl.id)
34
+ end
35
+
36
+ def select_all_web_acls(scope)
37
+ res = wafv2_client.list_web_acls({ scope: scope })
38
+ res.web_acls
39
+ end
40
+
41
+ def get_web_acl(scope, name, id)
42
+ res = wafv2_client.get_web_acl({ name: name, scope: scope, id: id })
43
+ res.web_acl
44
+ end
25
45
  end
26
46
  end
27
47
  end
@@ -57,6 +57,7 @@ require 'awspec/helper/finder/cognito_identity_pool'
57
57
  require 'awspec/helper/finder/transfer'
58
58
  require 'awspec/helper/finder/codepipeline'
59
59
  require 'awspec/helper/finder/wafv2'
60
+ require 'awspec/helper/finder/backup'
60
61
 
61
62
  require 'awspec/helper/finder/account_attributes'
62
63
 
@@ -121,6 +122,7 @@ module Awspec::Helper
121
122
  include Awspec::Helper::Finder::Transfer
122
123
  include Awspec::Helper::Finder::Codepipeline
123
124
  include Awspec::Helper::Finder::Wafv2
125
+ include Awspec::Helper::Finder::Backup
124
126
 
125
127
  CLIENTS = {
126
128
  ec2_client: Aws::EC2::Client,
@@ -171,7 +173,8 @@ module Awspec::Helper
171
173
  cognito_identity_provider_client: Aws::CognitoIdentityProvider::Client,
172
174
  transfer_client: Aws::Transfer::Client,
173
175
  codepipeline_client: Aws::CodePipeline::Client,
174
- wafv2_client: Aws::WAFV2::Client
176
+ wafv2_client: Aws::WAFV2::Client,
177
+ backup_client: Aws::Backup::Client
175
178
  }
176
179
 
177
180
  CLIENT_OPTIONS = {
@@ -24,7 +24,8 @@ module Awspec
24
24
  internet_gateway acm cloudwatch_logs dynamodb_table eip sqs ssm_parameter cloudformation_stack
25
25
  codebuild sns_topic redshift redshift_cluster_parameter_group codedeploy codedeploy_deployment_group
26
26
  secretsmanager msk transit_gateway cognito_identity_pool cognito_user_pool vpc_endpoints
27
- transfer_server managed_prefix_list codepipeline wafv2_ip_set
27
+ transfer_server managed_prefix_list codepipeline wafv2_ip_set wafv2_web_acl
28
+ backup_vault backup_plan backup_selection
28
29
  ]
29
30
 
30
31
  ACCOUNT_ATTRIBUTES = %w[
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec::Matchers.define :belong_to_backup_plan do |plan|
4
+ match do |type|
5
+ return true if type.backup_plan_id == plan
6
+
7
+ ret = type.find_backup_plan(plan)
8
+ return false unless ret
9
+
10
+ type.backup_plan_id == (ret.backup_plan_id)
11
+ end
12
+ 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
@@ -4,6 +4,7 @@ RSpec::Matchers.define :have_rule do |rule_id|
4
4
  match do |type|
5
5
  return type.has_rule?(rule_id, @priority, @action) if type.instance_of?(Awspec::Type::WafWebAcl)
6
6
  return type.has_rule?(rule_id, @priority, @action) if type.instance_of?(Awspec::Type::WafregionalWebAcl)
7
+ return type.has_rule?(rule_id, @priority, @action, @override_action) if type.instance_of?(Awspec::Type::Wafv2WebAcl)
7
8
  return type.has_rule?(rule_id, @priority, @conditions, @actions) if type.instance_of?(Awspec::Type::AlbListener)
8
9
 
9
10
  type.has_rule?(rule_id, @priority, @conditions, @actions) if type.instance_of?(Awspec::Type::NlbListener)
@@ -21,6 +22,10 @@ RSpec::Matchers.define :have_rule do |rule_id|
21
22
  @action = action
22
23
  end
23
24
 
25
+ chain :override_action do |override_action|
26
+ @override_action = override_action
27
+ end
28
+
24
29
  chain :conditions do |conditions|
25
30
  @conditions = conditions
26
31
  end
@@ -93,3 +93,9 @@ require 'awspec/matcher/have_env_var_value'
93
93
 
94
94
  # ManagedPrefixList
95
95
  require 'awspec/matcher/have_cidr'
96
+
97
+ # BackupSelection
98
+ require 'awspec/matcher/belong_to_backup_plan'
99
+
100
+ # BackupPlan
101
+ require 'awspec/matcher/have_plan_rule'
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:backup] = {
4
+ stub_responses: {
5
+ list_backup_plans: {
6
+ backup_plans_list: [
7
+ {
8
+ backup_plan_arn: 'arn:aws:backup:us-west-2:111122223333:backup-plan:a460d5d5-d30b-4631-8014-38c58e3c72ca',
9
+ backup_plan_id: 'a460d5d5-d30b-4631-8014-38c58e3c72ca',
10
+ creation_date: Time.new(2016, 4, 4, 9, 00, 00, '+00:00'),
11
+ deletion_date: nil,
12
+ version_id: 'kMlWPgkmipEb4I9gOEZpdoQiMgxP5KIizKLDhhblGiixgahy',
13
+ backup_plan_name: 'old-obsolete-plan',
14
+ creator_request_id: nil,
15
+ last_execution_date: Time.new(2016, 10, 4, 9, 00, 00, '+00:00'),
16
+ advanced_backup_settings: nil
17
+ },
18
+ {
19
+ backup_plan_arn: 'arn:aws:backup:us-west-2:111122223333:backup-plan:fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
20
+ backup_plan_id: 'fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
21
+ creation_date: Time.new(2016, 10, 4, 9, 00, 00, '+00:00'),
22
+ deletion_date: nil,
23
+ version_id: 'disFW7K0dOAjTaMWKYlhEyScjBhmi5kKGf7BrY7i1BG8F8wB',
24
+ backup_plan_name: 'my-backup-plan',
25
+ creator_request_id: nil,
26
+ last_execution_date: Time.new(2025, 10, 4, 9, 00, 00, '+00:00'),
27
+ advanced_backup_settings: nil
28
+ }
29
+ ],
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')
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:backup] = {
4
+ stub_responses: {
5
+ list_backup_plans: {
6
+ backup_plans_list: [
7
+ {
8
+ backup_plan_arn: 'arn:aws:backup:us-west-2:111122223333:backup-plan:fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
9
+ backup_plan_id: 'fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
10
+ creation_date: Time.new(2016, 10, 4, 9, 00, 00, '+00:00'),
11
+ deletion_date: nil,
12
+ version_id: 'disFW7K0dOAjTaMWKYlhEyScjBhmi5kKGf7BrY7i1BG8F8wB',
13
+ backup_plan_name: 'my-backup-plan',
14
+ creator_request_id: nil,
15
+ last_execution_date: Time.new(2025, 10, 4, 9, 00, 00, '+00:00'),
16
+ advanced_backup_settings: nil
17
+ }
18
+ ],
19
+ next_token: nil
20
+ },
21
+ list_backup_selections: {
22
+ backup_selections_list: [
23
+ selection_id: '01dfb41f-c3ca-4b45-91e7-63ef43fe7231',
24
+ selection_name: 'my-backup-selection',
25
+ backup_plan_id: 'fff3e784-1a0f-4e7c-8fe9-ba69825f7c00',
26
+ creation_date: Time.new(2016, 10, 4, 9, 00, 00, '+00:00'),
27
+ creator_request_id: nil,
28
+ iam_role_arn: 'arn:aws:iam::111122223333:role/service-role/my-backup-service-role'
29
+ ],
30
+ next_token: nil
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:backup] = {
4
+ stub_responses: {
5
+ list_backup_vaults: {
6
+ backup_vault_list: [
7
+ {
8
+ backup_vault_name: 'Default',
9
+ backup_vault_arn: 'arn:aws:backup:us-west-2:111122223333:backup-vault:Default',
10
+ vault_type: 'BACKUP_VAULT',
11
+ vault_state: 'AVAILABLE',
12
+ creation_date: Time.new(2024, 4, 4, 9, 00, 00, '+00:00'),
13
+ encryption_key_arn: 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab',
14
+ creator_request_id: 'Default',
15
+ number_of_recovery_points: 0,
16
+ locked: false,
17
+ min_retention_days: nil,
18
+ max_retention_days: nil,
19
+ lock_date: nil
20
+ },
21
+ {
22
+ backup_vault_name: 'my-backup-vault',
23
+ backup_vault_arn: 'arn:aws:backup:us-west-2:111122223333:backup-vault:my-vault',
24
+ vault_type: 'BACKUP_VAULT',
25
+ vault_state: 'AVAILABLE',
26
+ creation_date: Time.new(2024, 4, 4, 9, 00, 00, '+00:00'),
27
+ encryption_key_arn: 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab',
28
+ creator_request_id: 'Default',
29
+ number_of_recovery_points: 123,
30
+ locked: true,
31
+ min_retention_days: 7,
32
+ max_retention_days: 35,
33
+ lock_date: Time.new(2024, 10, 4, 9, 00, 00, '+00:00')
34
+ },
35
+ {
36
+ backup_vault_name: 'my-airgapped-vault',
37
+ backup_vault_arn: 'arn:aws:backup:us-west-2:111122223333:backup-vault:my-airgapped-vault',
38
+ vault_type: 'LOGICALLY_AIR_GAPPED_BACKUP_VAULT',
39
+ vault_state: 'AVAILABLE',
40
+ creation_date: Time.new(2024, 4, 4, 9, 00, 00, '+00:00'),
41
+ encryption_key_arn: 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab',
42
+ creator_request_id: nil,
43
+ number_of_recovery_points: 12,
44
+ locked: false,
45
+ min_retention_days: 30,
46
+ max_retention_days: 30,
47
+ lock_date: nil
48
+ }
49
+ ],
50
+ next_token: nil
51
+ }
52
+ }
53
+ }
@@ -78,7 +78,12 @@ Aws.config[:rds] = {
78
78
  copy_tags_to_snapshot: false,
79
79
  cross_account_clone: false,
80
80
  domain_memberships: [],
81
- tag_list: [],
81
+ tag_list: [
82
+ {
83
+ key: 'env',
84
+ value: 'dev'
85
+ }
86
+ ],
82
87
  global_write_forwarding_status: nil,
83
88
  global_write_forwarding_requested: false,
84
89
  pending_modified_values: nil,
@@ -30,7 +30,13 @@ Aws.config[:rds] = {
30
30
  global_write_forwarding_status: 'disabled'
31
31
  }
32
32
  ],
33
- failover_state: nil
33
+ failover_state: nil,
34
+ tag_list: [
35
+ {
36
+ key: 'env',
37
+ value: 'dev'
38
+ }
39
+ ]
34
40
  }
35
41
  ],
36
42
  marker: nil
@@ -3,10 +3,10 @@
3
3
  Aws.config[:transfer] = {
4
4
  stub_responses: {
5
5
  describe_server: {
6
- server: Aws::Transfer::Types::DescribedServer.new(
6
+ server: {
7
7
  arn: 'arn:aws:transfer:us-east-1:1234567890:server/s-4dc0a424f0154fa89',
8
8
  domain: 'S3',
9
- endpoint_details: Aws::Transfer::Types::EndpointDetails.new(
9
+ endpoint_details: {
10
10
  address_allocation_ids: %w[
11
11
  eipalloc-00000000000000001
12
12
  eipalloc-00000000000000002
@@ -19,7 +19,7 @@ Aws.config[:transfer] = {
19
19
  ],
20
20
  vpc_endpoint_id: 'vpce-00000000000000001',
21
21
  vpc_id: 'vpc-0123456789abcdefg'
22
- ),
22
+ },
23
23
  endpoint_type: 'VPC',
24
24
  host_key_fingerprint: 'SHA256:0pj2UnuoFAKEfHrCZwfPwuFinG3RJEVir/m8bPRINTo=',
25
25
  identity_provider_type: 'SERVICE_MANAGED',
@@ -29,13 +29,32 @@ Aws.config[:transfer] = {
29
29
  server_id: 's-4dc0a424f0154fa89',
30
30
  state: 'ONLINE',
31
31
  tags: [
32
- Aws::Transfer::Types::Tag.new(
32
+ {
33
33
  key: 'env',
34
34
  value: 'dev'
35
- )
35
+ },
36
+ {
37
+ key: 'Name',
38
+ value: 'my-transfer-server'
39
+ }
36
40
  ],
37
41
  user_count: 13
38
- )
42
+ }
43
+ },
44
+ list_servers: {
45
+ next_token: nil,
46
+ servers: [
47
+ {
48
+ arn: 'arn:aws:transfer:us-east-1:1234567890:server/s-4dc0a424f0154fa89',
49
+ domain: 'S3',
50
+ identity_provider_type: 'SERVICE_MANAGED',
51
+ endpoint_type: 'VPC',
52
+ logging_role: 'arn:aws:iam::1234567890:role/service-role/AWSTransferLoggingAccess',
53
+ server_id: 's-4dc0a424f0154fa89',
54
+ state: 'ONLINE',
55
+ user_count: 13
56
+ }
57
+ ]
39
58
  }
40
59
  }
41
60
  }
@@ -4,9 +4,10 @@ Aws.config[:wafv2] = {
4
4
  stub_responses: {
5
5
  get_ip_set: {
6
6
  ip_set: {
7
- name: 'my-ip-set',
7
+ name: 'my-wafv2-ip-set',
8
8
  id: '01234567-89ab-cdef-0123-456789abcdef',
9
- arn: 'arn:aws:wafv2:ap-northeast-1:123456789012:regional/ipset/my-ip-set/01234567-89ab-cdef-0123-456789abcdef',
9
+ arn: 'arn:aws:wafv2:ap-northeast-1:123456789012:regional/ipset/'\
10
+ 'my-wafv2-ip-set/01234567-89ab-cdef-0123-456789abcdef',
10
11
  description: 'dev ips',
11
12
  ip_address_version: 'IPV4',
12
13
  addresses: [
@@ -17,14 +18,15 @@ Aws.config[:wafv2] = {
17
18
  lock_token: '01234567-89ab-cdef-0123456789abcdef0'
18
19
  },
19
20
  list_ip_sets: {
20
- next_marker: 'my-ip-set',
21
+ next_marker: 'my-wafv2-ip-set',
21
22
  ip_sets: [
22
23
  {
23
- name: 'my-ip-set',
24
+ name: 'my-wafv2-ip-set',
24
25
  id: '01234567-89ab-cdef-0123-456789abcdef',
25
26
  description: 'dev ips',
26
27
  lock_token: '01234567-89ab-cdef-0123456789abcdef0',
27
- arn: 'arn:aws:wafv2:ap-northeast-1:123456789012:regional/ipset/my-ip-set/01234567-89ab-cdef-0123-456789abcdef'
28
+ arn: 'arn:aws:wafv2:ap-northeast-1:123456789012:regional/ipset/'\
29
+ 'my-wafv2-ip-set/01234567-89ab-cdef-0123-456789abcdef'
28
30
  }
29
31
  ]
30
32
  }