awspec 1.29.2 → 1.30.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: f9bf27292173e4e600200e1e2da93c24677e233509b1feb4ac2d6209ca203be6
4
- data.tar.gz: 41672ff537b8faa646ec61fdc7d6dba83dd55f48abf447612d3dc8267467aede
3
+ metadata.gz: 1ac4e770831b2f9127704f76b94a1f99d2adb29e18eb243fa9fc32f7834c4486
4
+ data.tar.gz: '088995fff7e66a7892804df42ecaf10488cd1239763f3ce140a4c25a1dfd98ed'
5
5
  SHA512:
6
- metadata.gz: 40511260590d969bda70a2d6078cea94bbe09faba04ce7d51834a14894ecccbae0f5120e4047c1f90a56fc9d59fa89f266f83d866d8de7dd4c5271ef9a9d16ad
7
- data.tar.gz: 1785bf2af76c9c919008a47817c385c177dc2b5f500af635cd19e6f9db7040ea29558801d844e4b53d58b11ab1c596d9403397d4d7d453fa150d1d89ad98ba0e
6
+ metadata.gz: 60535094ab52fc898f50c8a8cc161e63b77faf6e4999efd0eaf9ca9f0a42353c65af944031ac5bdc724d0ac2e68c3c97e732b8f2a6402e4c47e821c33bbbd753
7
+ data.tar.gz: 93e44185ee31546e493e6cd2302832a725975a368a013377a7a48a6f8c6201e6d7d27be14a5750ec6950ad886f4c3b04b6b7a1c1c0825959667c7157797f6bab
data/awspec.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.required_ruby_version = '>= 2.1'
23
+ spec.required_ruby_version = '>= 2.3'
24
24
  spec.add_runtime_dependency 'addressable'
25
25
  spec.add_runtime_dependency 'awsecrets', '~> 1'
26
26
  spec.add_runtime_dependency 'aws-sdk', '~> 3'
@@ -0,0 +1,32 @@
1
+ ### exist
2
+
3
+ ```ruby
4
+ describe managed_prefix_list('my-managed-prefix-list') do
5
+ it { should exist }
6
+ end
7
+ ```
8
+
9
+ ### have_cidr
10
+
11
+ ```ruby
12
+ describe managed_prefix_list('my-managed-prefix-list') do
13
+ it { should have_cidr('10.0.0.0/16') }
14
+ it { should have_cidr('192.168.0.0/24').desc('dev') }
15
+ end
16
+ ```
17
+
18
+ ### its(:entries_count)
19
+
20
+ ```ruby
21
+ describe managed_prefix_list('my-managed-prefix-list') do
22
+ its(:entries_count) { should eq 2 }
23
+ end
24
+ ```
25
+
26
+ ### have_tag
27
+
28
+ ```ruby
29
+ describe managed_prefix_list('my-managed-prefix-list') do
30
+ it { should have_tag('env').value('dev') }
31
+ end
32
+ ```
@@ -22,3 +22,25 @@ describe transit_gateway('my-tgw') do
22
22
  its(:transit_gateway_id) { should eq 'tgw-1234567890abcdefg' }
23
23
  end
24
24
  ```
25
+ ### have_attachment
26
+
27
+ #### using attachment id
28
+ ```ruby
29
+ describe transit_gateway('tgw-1234567890abcdefg') do
30
+ it { should have_attachment('tgw-attach-1234567890abcdefg') }
31
+ end
32
+ ```
33
+
34
+ #### using attachment name
35
+ ```ruby
36
+ describe transit_gateway('tgw-1234567890abcdefg') do
37
+ it { should have_attachment('my-prod-tgw-attachment') }
38
+ end
39
+ ```
40
+
41
+ #### using regular expression attachment name
42
+ ```ruby
43
+ describe transit_gateway('tgw-1234567890abcdefg') do
44
+ it { should have_attachment(/^my-\w+-tgw-attachment$/) }
45
+ end
46
+ ```
@@ -52,6 +52,7 @@
52
52
  | [lambda](#lambda)
53
53
  | [launch_configuration](#launch_configuration)
54
54
  | [launch_template](#launch_template)
55
+ | [managed_prefix_list](#managed_prefix_list)
55
56
  | [mq](#mq)
56
57
  | [msk](#msk)
57
58
  | [nat_gateway](#nat_gateway)
@@ -173,7 +174,7 @@ describe alb('my-alb') do
173
174
  end
174
175
  ```
175
176
 
176
- ### its(:load_balancer_arn), its(:dns_name), its(:canonical_hosted_zone_id), its(:created_time), its(:load_balancer_name), its(:scheme), its(:vpc_id), its(:type), its(:security_groups), its(:ip_address_type), its(:customer_owned_ipv_4_pool)
177
+ ### its(:load_balancer_arn), its(:dns_name), its(:canonical_hosted_zone_id), its(:created_time), its(:load_balancer_name), its(:scheme), its(:vpc_id), its(:type), its(:security_groups), its(:ip_address_type), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic)
177
178
  ## <a name="alb_listener">alb_listener</a>
178
179
 
179
180
  AlbListener resource type.
@@ -209,7 +210,7 @@ describe alb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:li
209
210
  end
210
211
  ```
211
212
 
212
- ### its(:listener_arn), its(:load_balancer_arn), its(:port), its(:protocol), its(:certificates), its(:ssl_policy), its(:alpn_policy)
213
+ ### its(:listener_arn), its(:load_balancer_arn), its(:port), its(:protocol), its(:certificates), its(:ssl_policy), its(:alpn_policy), its(:mutual_authentication)
213
214
  ## <a name="alb_target_group">alb_target_group</a>
214
215
 
215
216
  AlbTargetGroup resource type.
@@ -278,7 +279,7 @@ end
278
279
 
279
280
  ### have_tag
280
281
 
281
- ### its(:architecture), its(:creation_date), its(:image_id), its(:image_location), its(:image_type), its(:public), its(:kernel_id), its(:owner_id), its(:platform), its(:platform_details), its(:usage_operation), its(:ramdisk_id), its(:state), its(:description), its(:ena_support), its(:hypervisor), its(:image_owner_alias), its(:name), its(:root_device_name), its(:root_device_type), its(:sriov_net_support), its(:state_reason), its(:virtualization_type), its(:boot_mode), its(:tpm_support), its(:deprecation_time), its(:imds_support)
282
+ ### its(:architecture), its(:creation_date), its(:image_id), its(:image_location), its(:image_type), its(:public), its(:kernel_id), its(:owner_id), its(:platform), its(:platform_details), its(:usage_operation), its(:ramdisk_id), its(:state), its(:description), its(:ena_support), its(:hypervisor), its(:image_owner_alias), its(:name), its(:root_device_name), its(:root_device_type), its(:sriov_net_support), its(:state_reason), its(:virtualization_type), its(:boot_mode), its(:tpm_support), its(:deprecation_time), its(:imds_support), its(:source_instance_id)
282
283
  ### :unlock: Advanced use
283
284
 
284
285
  `ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
@@ -303,7 +304,7 @@ end
303
304
 
304
305
  ### have_path
305
306
 
306
- ### its(:id), its(:name), its(:description), its(:created_date), its(:version), its(:warnings), its(:binary_media_types), its(:minimum_compression_size), its(:api_key_source), its(:policy), its(:tags), its(:disable_execute_api_endpoint)
307
+ ### its(:id), its(:name), its(:description), its(:created_date), its(:version), its(:warnings), its(:binary_media_types), its(:minimum_compression_size), its(:api_key_source), its(:policy), its(:tags), its(:disable_execute_api_endpoint), its(:root_resource_id)
307
308
  ## <a name="autoscaling_group">autoscaling_group</a>
308
309
 
309
310
  AutoscalingGroup resource type.
@@ -365,7 +366,7 @@ describe autoscaling_group('my-auto-scaling-group') do
365
366
  end
366
367
  ```
367
368
 
368
- ### its(:auto_scaling_group_name), its(:auto_scaling_group_arn), its(:launch_configuration_name), its(:launch_template), its(:mixed_instances_policy), its(:min_size), its(:max_size), its(:desired_capacity), its(:predicted_capacity), its(:default_cooldown), its(:availability_zones), its(:load_balancer_names), its(:target_group_arns), its(:health_check_type), its(:health_check_grace_period), its(:created_time), its(:placement_group), its(:vpc_zone_identifier), its(:enabled_metrics), its(:status), its(:termination_policies), its(:new_instances_protected_from_scale_in), its(:service_linked_role_arn), its(:max_instance_lifetime), its(:capacity_rebalance), its(:warm_pool_configuration), its(:warm_pool_size), its(:context), its(:desired_capacity_type), its(:default_instance_warmup), its(:traffic_sources)
369
+ ### its(:auto_scaling_group_name), its(:auto_scaling_group_arn), its(:launch_configuration_name), its(:launch_template), its(:mixed_instances_policy), its(:min_size), its(:max_size), its(:desired_capacity), its(:predicted_capacity), its(:default_cooldown), its(:availability_zones), its(:load_balancer_names), its(:target_group_arns), its(:health_check_type), its(:health_check_grace_period), its(:created_time), its(:placement_group), its(:vpc_zone_identifier), its(:enabled_metrics), its(:status), its(:termination_policies), its(:new_instances_protected_from_scale_in), its(:service_linked_role_arn), its(:max_instance_lifetime), its(:capacity_rebalance), its(:warm_pool_configuration), its(:warm_pool_size), its(:context), its(:desired_capacity_type), its(:default_instance_warmup), its(:traffic_sources), its(:instance_maintenance_policy)
369
370
  ## <a name="batch_compute_environment">batch_compute_environment</a>
370
371
 
371
372
  BatchComputeEnvironment resource type.
@@ -417,7 +418,7 @@ describe batch_job_definition('my-batch-job-definition') do
417
418
  end
418
419
  ```
419
420
 
420
- ### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:scheduling_priority), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags), its(:propagate_tags), its(:platform_capabilities), its(:eks_properties), its(:container_orchestration_type)
421
+ ### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:scheduling_priority), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags), its(:propagate_tags), its(:platform_capabilities), its(:ecs_properties), its(:eks_properties), its(:container_orchestration_type)
421
422
  ## <a name="batch_job_queue">batch_job_queue</a>
422
423
 
423
424
  BatchJobQueue resource type.
@@ -443,7 +444,7 @@ describe batch_job_queue('my-batch-job-queue') do
443
444
  end
444
445
  ```
445
446
 
446
- ### its(:job_queue_name), its(:job_queue_arn), its(:state), its(:scheduling_policy_arn), its(:status), its(:status_reason), its(:priority), its(:tags)
447
+ ### its(:job_queue_name), its(:job_queue_arn), its(:state), its(:scheduling_policy_arn), its(:status), its(:status_reason), its(:priority), its(:tags), its(:job_state_time_limit_actions)
447
448
  ## <a name="cloudformation_stack">cloudformation_stack</a>
448
449
 
449
450
  CloudformationStack resource type.
@@ -466,7 +467,7 @@ describe cloudformation_stack('my-cloudformation-stack') do
466
467
  end
467
468
  ```
468
469
 
469
- ### its(:stack_id), its(:stack_name), its(:change_set_id), its(:description), its(:parameters), its(:creation_time), its(:deletion_time), its(:last_updated_time), its(:rollback_configuration), its(:stack_status), its(:stack_status_reason), its(:disable_rollback), its(:notification_arns), its(:timeout_in_minutes), its(:capabilities), its(:role_arn), its(:enable_termination_protection), its(:parent_id), its(:root_id), its(:drift_information)
470
+ ### its(:stack_id), its(:stack_name), its(:change_set_id), its(:description), its(:parameters), its(:creation_time), its(:deletion_time), its(:last_updated_time), its(:rollback_configuration), its(:stack_status), its(:stack_status_reason), its(:disable_rollback), its(:notification_arns), its(:timeout_in_minutes), its(:capabilities), its(:role_arn), its(:enable_termination_protection), its(:parent_id), its(:root_id), its(:drift_information), its(:retain_except_on_create), its(:detailed_status)
470
471
  ## <a name="cloudfront_distribution">cloudfront_distribution</a>
471
472
 
472
473
  CloudfrontDistribution resource type.
@@ -729,7 +730,7 @@ describe cloudwatch_logs('my-cloudwatch-logs-group') do
729
730
  end
730
731
  ```
731
732
 
732
- ### its(:log_group_name), its(:creation_time), its(:retention_in_days), its(:metric_filter_count), its(:arn), its(:stored_bytes), its(:kms_key_id), its(:data_protection_status)
733
+ ### its(:log_group_name), its(:creation_time), its(:retention_in_days), its(:metric_filter_count), its(:arn), its(:stored_bytes), its(:kms_key_id), its(:data_protection_status), its(:inherited_properties), its(:log_group_class), its(:log_group_arn)
733
734
  ## <a name="codebuild">codebuild</a>
734
735
 
735
736
  Codebuild resource type.
@@ -767,7 +768,7 @@ describe codedeploy_deployment_group('my-codedeploy-deployment-group'), applicat
767
768
  end
768
769
  ```
769
770
 
770
- ### its(:application_name), its(:deployment_group_id), its(:deployment_group_name), its(:deployment_config_name), its(:on_premises_instance_tag_filters), its(:service_role_arn), its(:target_revision), its(:trigger_configurations), its(:alarm_configuration), its(:deployment_style), its(:outdated_instances_strategy), its(:load_balancer_info), its(:last_successful_deployment), its(:last_attempted_deployment), its(:ec2_tag_set), its(:on_premises_tag_set), its(:compute_platform), its(:ecs_services)
771
+ ### its(:application_name), its(:deployment_group_id), its(:deployment_group_name), its(:deployment_config_name), its(:on_premises_instance_tag_filters), its(:service_role_arn), its(:target_revision), its(:trigger_configurations), its(:alarm_configuration), its(:deployment_style), its(:outdated_instances_strategy), its(:load_balancer_info), its(:last_successful_deployment), its(:last_attempted_deployment), its(:ec2_tag_set), its(:on_premises_tag_set), its(:compute_platform), its(:ecs_services), its(:termination_hook_enabled)
771
772
  ## <a name="cognito_identity_pool">cognito_identity_pool</a>
772
773
 
773
774
  CognitoIdentityPool resource type.
@@ -955,7 +956,7 @@ end
955
956
  ```
956
957
 
957
958
 
958
- ### its(:availability_zone), its(:create_time), its(:encrypted), its(:kms_key_id), its(:outpost_arn), its(:size), its(:snapshot_id), its(:state), its(:volume_id), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput)
959
+ ### its(:availability_zone), its(:create_time), its(:encrypted), its(:kms_key_id), its(:outpost_arn), its(:size), its(:snapshot_id), its(:state), its(:volume_id), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput), its(:sse_type)
959
960
  ### :unlock: Advanced use
960
961
 
961
962
  `ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
@@ -1336,7 +1337,7 @@ describe efs('my-efs') do
1336
1337
  end
1337
1338
  ```
1338
1339
 
1339
- ### its(:owner_id), its(:creation_token), its(:file_system_id), its(:file_system_arn), its(:creation_time), its(:life_cycle_state), its(:name), its(:number_of_mount_targets), its(:performance_mode), its(:encrypted), its(:kms_key_id), its(:throughput_mode), its(:provisioned_throughput_in_mibps), its(:availability_zone_name), its(:availability_zone_id)
1340
+ ### its(:owner_id), its(:creation_token), its(:file_system_id), its(:file_system_arn), its(:creation_time), its(:life_cycle_state), its(:name), its(:number_of_mount_targets), its(:performance_mode), its(:encrypted), its(:kms_key_id), its(:throughput_mode), its(:provisioned_throughput_in_mibps), its(:availability_zone_name), its(:availability_zone_id), its(:file_system_protection)
1340
1341
  ## <a name="elastic_ip">elastic_ip</a>
1341
1342
 
1342
1343
  Elastic IP resource type.
@@ -1388,7 +1389,7 @@ describe eks('my-eks') do
1388
1389
  end
1389
1390
  ```
1390
1391
 
1391
- ### 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)
1392
+ ### 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)
1392
1393
  ## <a name="eks_nodegroup">eks_nodegroup</a>
1393
1394
 
1394
1395
  EksNodegroup resource type.
@@ -1595,7 +1596,7 @@ end
1595
1596
  ```
1596
1597
 
1597
1598
 
1598
- ### its(:domain_id), its(:domain_name), its(:arn), its(:created), its(:deleted), its(:endpoint), its(:endpoints), its(:processing), its(:upgrade_processing), its(:elasticsearch_version), its(:access_policies), its(:snapshot_options), its(:vpc_options), its(:cognito_options), its(:encryption_at_rest_options), its(:node_to_node_encryption_options), its(:advanced_options), its(:log_publishing_options), its(:service_software_options), its(:domain_endpoint_options), its(:advanced_security_options), its(:auto_tune_options), its(:change_progress_details)
1599
+ ### its(:domain_id), its(:domain_name), its(:arn), its(:created), its(:deleted), its(:endpoint), its(:endpoints), its(:processing), its(:upgrade_processing), its(:elasticsearch_version), its(:access_policies), its(:snapshot_options), its(:vpc_options), its(:cognito_options), its(:encryption_at_rest_options), its(:node_to_node_encryption_options), its(:advanced_options), its(:log_publishing_options), its(:service_software_options), its(:domain_endpoint_options), its(:advanced_security_options), its(:auto_tune_options), its(:change_progress_details), its(:domain_processing_status), its(:modifying_properties)
1599
1600
  ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
1600
1601
 
1601
1602
  ElastictranscoderPipeline resource type.
@@ -1740,7 +1741,7 @@ describe emr('my-emr') do
1740
1741
  end
1741
1742
  ```
1742
1743
 
1743
- ### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:log_encryption_kms_key_id), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:outpost_arn), its(:step_concurrency_level), its(:placement_groups), its(:os_release_label)
1744
+ ### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:log_encryption_kms_key_id), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:unhealthy_node_replacement), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:outpost_arn), its(:step_concurrency_level), its(:placement_groups), its(:os_release_label), its(:ebs_root_volume_iops), its(:ebs_root_volume_throughput)
1744
1745
  ## <a name="firehose">firehose</a>
1745
1746
 
1746
1747
  Firehose resource type.
@@ -2330,7 +2331,7 @@ end
2330
2331
 
2331
2332
  This matcher does not support Amazon S3 event sources ([see SDK doc](http://docs.aws.amazon.com/sdkforruby/api/Aws/Lambda/Client.html#list_event_source_mappings-instance_method)).
2332
2333
 
2333
- ### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version), its(:vpc_config), its(:dead_letter_config), its(:kms_key_arn), its(:master_arn), its(:revision_id), its(:layers), its(:state), its(:state_reason), its(:state_reason_code), its(:last_update_status), its(:last_update_status_reason), its(:last_update_status_reason_code), its(:file_system_configs), its(:package_type), its(:image_config_response), its(:signing_profile_version_arn), its(:signing_job_arn), its(:architectures), its(:ephemeral_storage), its(:snap_start), its(:runtime_version_config)
2334
+ ### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version), its(:vpc_config), its(:dead_letter_config), its(:kms_key_arn), its(:master_arn), its(:revision_id), its(:layers), its(:state), its(:state_reason), its(:state_reason_code), its(:last_update_status), its(:last_update_status_reason), its(:last_update_status_reason_code), its(:file_system_configs), its(:package_type), its(:image_config_response), its(:signing_profile_version_arn), its(:signing_job_arn), its(:architectures), its(:ephemeral_storage), its(:snap_start), its(:runtime_version_config), its(:logging_config)
2334
2335
  ## <a name="launch_configuration">launch_configuration</a>
2335
2336
 
2336
2337
  LaunchConfiguration resource type.
@@ -2411,6 +2412,47 @@ end
2411
2412
  ```
2412
2413
 
2413
2414
  ### its(:launch_template_id), its(:launch_template_name), its(:create_time), its(:created_by), its(:default_version_number), its(:latest_version_number), its(:tags)
2415
+ ## <a name="managed_prefix_list">managed_prefix_list</a>
2416
+
2417
+ ManagedPrefixList resource type.
2418
+
2419
+ ### exist
2420
+
2421
+ ```ruby
2422
+ describe managed_prefix_list('my-managed-prefix-list') do
2423
+ it { should exist }
2424
+ end
2425
+ ```
2426
+
2427
+
2428
+ ### have_cidr
2429
+
2430
+ ```ruby
2431
+ describe managed_prefix_list('my-managed-prefix-list') do
2432
+ it { should have_cidr('10.0.0.0/16') }
2433
+ it { should have_cidr('192.168.0.0/24').desc('dev') }
2434
+ end
2435
+ ```
2436
+
2437
+
2438
+ ### have_tag
2439
+
2440
+ ```ruby
2441
+ describe managed_prefix_list('my-managed-prefix-list') do
2442
+ it { should have_tag('env').value('dev') }
2443
+ end
2444
+ ```
2445
+
2446
+ ### its(:entries_count)
2447
+
2448
+ ```ruby
2449
+ describe managed_prefix_list('my-managed-prefix-list') do
2450
+ its(:entries_count) { should eq 2 }
2451
+ end
2452
+ ```
2453
+
2454
+
2455
+ ### 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)
2414
2456
  ## <a name="mq">mq</a>
2415
2457
 
2416
2458
  MQ resource type.
@@ -2452,7 +2494,7 @@ describe mq('my-mq') do
2452
2494
  end
2453
2495
  ```
2454
2496
 
2455
- ### its(:vpc_id), its(:actions_required), its(:authentication_strategy), its(:auto_minor_version_upgrade), its(:broker_arn), its(:broker_id), its(:broker_name), its(:broker_state), its(:created), its(:deployment_mode), its(:encryption_options), its(:engine_type), its(:engine_version), its(:host_instance_type), its(:ldap_server_metadata), its(:pending_authentication_strategy), its(:pending_engine_version), its(:pending_host_instance_type), its(:pending_ldap_server_metadata), its(:pending_security_groups), its(:publicly_accessible), its(:security_groups), its(:storage_type), its(:subnet_ids)
2497
+ ### its(:vpc_id), its(:actions_required), its(:authentication_strategy), its(:auto_minor_version_upgrade), its(:broker_arn), its(:broker_id), its(:broker_name), its(:broker_state), its(:created), its(:deployment_mode), its(:encryption_options), its(:engine_type), its(:engine_version), its(:host_instance_type), its(:ldap_server_metadata), its(:pending_authentication_strategy), its(:pending_engine_version), its(:pending_host_instance_type), its(:pending_ldap_server_metadata), its(:pending_security_groups), its(:publicly_accessible), its(:security_groups), its(:storage_type), its(:subnet_ids), its(:data_replication_metadata), its(:data_replication_mode), its(:pending_data_replication_metadata), its(:pending_data_replication_mode)
2456
2498
  ## <a name="msk">msk</a>
2457
2499
 
2458
2500
  Msk resource type.
@@ -2476,7 +2518,7 @@ end
2476
2518
 
2477
2519
  ### be_updating
2478
2520
 
2479
- ### its(:active_operation_arn), its(:client_authentication), its(:cluster_arn), its(:cluster_name), its(:creation_time), its(:current_version), its(:enhanced_monitoring), its(:number_of_broker_nodes), its(:state), its(:state_info), its(:zookeeper_connect_string), its(:zookeeper_connect_string_tls), its(:storage_mode)
2521
+ ### its(:active_operation_arn), its(:client_authentication), its(:cluster_arn), its(:cluster_name), its(:creation_time), its(:current_version), its(:enhanced_monitoring), its(:number_of_broker_nodes), its(:state), its(:state_info), its(:zookeeper_connect_string), its(:zookeeper_connect_string_tls), its(:storage_mode), its(:customer_action_status)
2480
2522
  ## <a name="nat_gateway">nat_gateway</a>
2481
2523
 
2482
2524
  NatGateway resource type.
@@ -2677,7 +2719,7 @@ describe network_interface('eni-12ab3cde') do
2677
2719
  end
2678
2720
  ```
2679
2721
 
2680
- ### its(:association), its(:availability_zone), 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(: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)
2722
+ ### 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(: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)
2681
2723
  ## <a name="nlb">nlb</a>
2682
2724
 
2683
2725
  NLB resource type.
@@ -2728,7 +2770,7 @@ describe nlb('my-nlb') do
2728
2770
  end
2729
2771
  ```
2730
2772
 
2731
- ### its(:load_balancer_arn), its(:dns_name), its(:canonical_hosted_zone_id), its(:created_time), its(:load_balancer_name), its(:scheme), its(:vpc_id), its(:type), its(:security_groups), its(:ip_address_type), its(:customer_owned_ipv_4_pool)
2773
+ ### its(:load_balancer_arn), its(:dns_name), its(:canonical_hosted_zone_id), its(:created_time), its(:load_balancer_name), its(:scheme), its(:vpc_id), its(:type), its(:security_groups), its(:ip_address_type), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic)
2732
2774
  ## <a name="nlb_listener">nlb_listener</a>
2733
2775
 
2734
2776
  NlbListener resource type.
@@ -2764,7 +2806,7 @@ describe nlb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:li
2764
2806
  end
2765
2807
  ```
2766
2808
 
2767
- ### its(:listener_arn), its(:load_balancer_arn), its(:port), its(:protocol), its(:certificates), its(:ssl_policy), its(:alpn_policy)
2809
+ ### its(:listener_arn), its(:load_balancer_arn), its(:port), its(:protocol), its(:certificates), its(:ssl_policy), its(:alpn_policy), its(:mutual_authentication)
2768
2810
  ## <a name="nlb_target_group">nlb_target_group</a>
2769
2811
 
2770
2812
  NlbTargetGroup resource type.
@@ -2905,7 +2947,7 @@ end
2905
2947
  ```
2906
2948
 
2907
2949
 
2908
- ### 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(: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)
2950
+ ### 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(: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)
2909
2951
  ### :unlock: Advanced use
2910
2952
 
2911
2953
  `rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
@@ -2978,7 +3020,7 @@ describe rds_db_cluster('my-rds-db-cluster') do
2978
3020
  end
2979
3021
  ```
2980
3022
 
2981
- ### 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(: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(: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(:tag_list), 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(: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)
3023
+ ### 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(:tag_list), 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(: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(:certificate_details)
2982
3024
  ## <a name="rds_db_cluster_parameter_group">rds_db_cluster_parameter_group</a>
2983
3025
 
2984
3026
  RdsDbClusterParameterGroup resource type.
@@ -3221,7 +3263,7 @@ describe redshift('my-redshift') do
3221
3263
  end
3222
3264
  ```
3223
3265
 
3224
- ### its(:vpc_id), its(:cluster_identifier), its(:node_type), its(:cluster_status), its(:cluster_availability_status), its(:modify_status), its(:master_username), its(:db_name), its(:endpoint), its(:cluster_create_time), its(:automated_snapshot_retention_period), its(:manual_snapshot_retention_period), its(:cluster_security_groups), its(:cluster_subnet_group_name), its(:vpc_id), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:cluster_version), its(:allow_version_upgrade), its(:number_of_nodes), its(:publicly_accessible), its(:encrypted), its(:restore_status), its(:data_transfer_progress), its(:hsm_status), its(:cluster_snapshot_copy_status), its(:cluster_public_key), its(:cluster_nodes), its(:elastic_ip_status), its(:cluster_revision_number), its(:kms_key_id), its(:enhanced_vpc_routing), its(:iam_roles), its(:pending_actions), its(:maintenance_track_name), its(:elastic_resize_number_of_node_options), its(:deferred_maintenance_windows), its(:snapshot_schedule_identifier), its(:snapshot_schedule_state), its(:expected_next_snapshot_schedule_time), its(:expected_next_snapshot_schedule_time_status), its(:next_maintenance_window_start_time), its(:resize_info), its(:availability_zone_relocation_status), its(:cluster_namespace_arn), its(:total_storage_capacity_in_mega_bytes), its(:aqua_configuration), its(:default_iam_role_arn), its(:reserved_node_exchange_status)
3266
+ ### its(:vpc_id), its(:cluster_identifier), its(:node_type), its(:cluster_status), its(:cluster_availability_status), its(:modify_status), its(:master_username), its(:db_name), its(:endpoint), its(:cluster_create_time), its(:automated_snapshot_retention_period), its(:manual_snapshot_retention_period), its(:cluster_security_groups), its(:cluster_subnet_group_name), its(:vpc_id), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:cluster_version), its(:allow_version_upgrade), its(:number_of_nodes), its(:publicly_accessible), its(:encrypted), its(:restore_status), its(:data_transfer_progress), its(:hsm_status), its(:cluster_snapshot_copy_status), its(:cluster_public_key), its(:cluster_nodes), its(:elastic_ip_status), its(:cluster_revision_number), its(:kms_key_id), its(:enhanced_vpc_routing), its(:iam_roles), its(:pending_actions), its(:maintenance_track_name), its(:elastic_resize_number_of_node_options), its(:deferred_maintenance_windows), its(:snapshot_schedule_identifier), its(:snapshot_schedule_state), its(:expected_next_snapshot_schedule_time), its(:expected_next_snapshot_schedule_time_status), its(:next_maintenance_window_start_time), its(:resize_info), its(:availability_zone_relocation_status), its(:cluster_namespace_arn), its(:total_storage_capacity_in_mega_bytes), its(:aqua_configuration), its(:default_iam_role_arn), its(:reserved_node_exchange_status), its(:custom_domain_name), its(:custom_domain_certificate_arn), its(:custom_domain_certificate_expiry_date), its(:master_password_secret_arn), its(:master_password_secret_kms_key_id), its(:ip_address_type), its(:multi_az), its(:multi_az_secondary)
3225
3267
  ## <a name="redshift_cluster_parameter_group">redshift_cluster_parameter_group</a>
3226
3268
 
3227
3269
  RedshiftClusterParameterGroup resource type.
@@ -3759,7 +3801,7 @@ end
3759
3801
  ```
3760
3802
 
3761
3803
 
3762
- ### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies), its(:data_type)
3804
+ ### its(:name), its(:arn), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies), its(:data_type)
3763
3805
  ### :unlock: Advanced use
3764
3806
 
3765
3807
  ```ruby
@@ -3852,7 +3894,7 @@ end
3852
3894
  ```
3853
3895
 
3854
3896
 
3855
- ### its(:arn), its(:certificate), its(:protocol_details), its(:domain), its(:endpoint_type), its(:host_key_fingerprint), its(:identity_provider_details), its(:identity_provider_type), its(:logging_role), its(:post_authentication_login_banner), its(:pre_authentication_login_banner), its(:protocols), its(:security_policy_name), its(:server_id), its(:state), its(:user_count), its(:workflow_details)
3897
+ ### its(:arn), its(:certificate), its(:protocol_details), its(:domain), its(:endpoint_type), its(:host_key_fingerprint), its(:identity_provider_details), its(:identity_provider_type), its(:logging_role), its(:post_authentication_login_banner), its(:pre_authentication_login_banner), its(:protocols), its(:security_policy_name), its(:server_id), its(:state), its(:user_count), its(:workflow_details), its(:structured_log_destinations), its(:s3_storage_options), its(:as_2_service_managed_egress_ip_addresses)
3856
3898
  ## <a name="transit_gateway">transit_gateway</a>
3857
3899
 
3858
3900
  TransitGateway resource type.
@@ -3884,6 +3926,27 @@ end
3884
3926
 
3885
3927
  ### have_attachment
3886
3928
 
3929
+ #### using attachment id
3930
+ ```ruby
3931
+ describe transit_gateway('tgw-1234567890abcdefg') do
3932
+ it { should have_attachment('tgw-attach-1234567890abcdefg') }
3933
+ end
3934
+ ```
3935
+
3936
+ #### using attachment name
3937
+ ```ruby
3938
+ describe transit_gateway('tgw-1234567890abcdefg') do
3939
+ it { should have_attachment('my-prod-tgw-attachment') }
3940
+ end
3941
+ ```
3942
+
3943
+ #### using regular expression attachment name
3944
+ ```ruby
3945
+ describe transit_gateway('tgw-1234567890abcdefg') do
3946
+ it { should have_attachment(/^my-\w+-tgw-attachment$/) }
3947
+ end
3948
+ ```
3949
+
3887
3950
  ### have_tag
3888
3951
 
3889
3952
  ### its(:transit_gateway_id), its(:transit_gateway_arn), its(:state), its(:owner_id), its(:description), its(:creation_time)
@@ -65,7 +65,7 @@ module Awspec
65
65
  types_for_generate_all = %w[
66
66
  cloudwatch_alarm cloudwatch_event directconnect ebs efs
67
67
  elasticsearch iam_group iam_policy iam_role iam_user kms lambda
68
- acm cloudwatch_logs eip codebuild elasticache
68
+ acm cloudwatch_logs eip codebuild elasticache managed_prefix_list
69
69
  ]
70
70
 
71
71
  types_for_generate_all.each do |type|
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Generator
4
+ module Doc
5
+ module Type
6
+ class ManagedPrefixList < Base
7
+ def initialize
8
+ super
9
+ @type_name = 'ManagedPrefixList'
10
+ @type = Awspec::Type::ManagedPrefixList.new('my-managed-prefix-list')
11
+ @ret = @type.resource_via_client
12
+ @matchers = ['its(:entries_count)']
13
+ @ignore_matchers = []
14
+ @describes = []
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Generator
4
+ module Spec
5
+ class ManagedPrefixList
6
+ include Awspec::Helper::Finder
7
+ def select_all_managed_prefix_lists
8
+ res = ec2_client.describe_managed_prefix_lists
9
+ res.prefix_lists
10
+ end
11
+
12
+ def generate_all
13
+ prefix_lists = select_all_managed_prefix_lists
14
+ raise 'Not Found Managed Prefix List.' if prefix_lists.empty?
15
+
16
+ specs = prefix_lists.map do |prefix_list|
17
+ entries = select_managed_prefix_list_entries(prefix_list.prefix_list_id)
18
+ content = ERB.new(managed_prefix_list_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
19
+ end
20
+ specs.join("\n")
21
+ end
22
+
23
+ def managed_prefix_list_spec_template
24
+ <<-'EOF'
25
+ describe managed_prefix_list('<%= prefix_list.prefix_list_name %>') do
26
+ it { should exist }
27
+ <% entries.each do |entry| %>
28
+ <% if entry.description.nil? %>
29
+ it { should have_cidr('<%= entry.cidr %>') }
30
+ <% else %>
31
+ it { should have_cidr('<%= entry.cidr %>').desc('<%= entry.description %>') }
32
+ <% end %>
33
+ <% end %>
34
+ its(:entries_count) { should eq <%= entries.length %> }
35
+ its(:prefix_list_id) { should eq '<%= prefix_list.prefix_list_id %>' }
36
+ its(:address_family) { should eq '<%= prefix_list.address_family %>' }
37
+ its(:state) { should eq '<%= prefix_list.state %>' }
38
+ its(:prefix_list_arn) { should eq '<%= prefix_list.prefix_list_arn %>' }
39
+ <% if prefix_list.max_entries %>
40
+ its(:max_entries) { should eq <%= prefix_list.max_entries %> }
41
+ <% end %>
42
+ <% if prefix_list.version %>
43
+ its(:version) { should eq <%= prefix_list.version %> }
44
+ <% end %>
45
+ its(:owner_id) { should eq '<%= prefix_list.owner_id %>' }
46
+ <% prefix_list.tags.each do |tag| %>
47
+ it { should have_tag('<%= tag.key %>').value('<%= tag.value %>') }
48
+ <% end %>
49
+ end
50
+ EOF
51
+ end
52
+ end
53
+ end
54
+ end
@@ -43,6 +43,7 @@ require 'awspec/generator/spec/redshift_cluster_parameter_group'
43
43
  require 'awspec/generator/spec/rds_proxy'
44
44
  require 'awspec/generator/spec/rds_db_cluster'
45
45
  require 'awspec/generator/spec/rds_global_cluster'
46
+ require 'awspec/generator/spec/managed_prefix_list'
46
47
 
47
48
  # Doc
48
49
  require 'awspec/generator/doc/type'
@@ -228,6 +228,18 @@ module Awspec::Helper
228
228
  })
229
229
  res.transit_gateway_attachments
230
230
  end
231
+
232
+ def find_managed_prefix_list(prefix_list_name)
233
+ res = ec2_client.describe_managed_prefix_lists({
234
+ filters: [{ name: 'prefix-list-name',
235
+ values: [prefix_list_name] }]
236
+ })
237
+ res.prefix_lists.single_resource(prefix_list_name)
238
+ end
239
+
240
+ def select_managed_prefix_list_entries(prefix_list_id)
241
+ ec2_client.get_managed_prefix_list_entries({ prefix_list_id: prefix_list_id }).data.entries
242
+ end
231
243
  end
232
244
  end
233
245
  end
@@ -4,16 +4,23 @@ module Awspec::Helper
4
4
  module Finder
5
5
  module SsmParameter
6
6
  def find_ssm_parameter(name)
7
- ssm_client.describe_parameters(
8
- {
9
- filters: [
10
- {
11
- key: 'Name',
12
- values: [name]
13
- }
14
- ]
15
- }
16
- ).parameters[0]
7
+ req = {
8
+ filters: [
9
+ {
10
+ key: 'Name',
11
+ values: [name]
12
+ }
13
+ ]
14
+ }
15
+ loop do
16
+ res = ssm_client.describe_parameters(req)
17
+ if res.parameters.size >= 1
18
+ return res.parameters.first
19
+ end
20
+ break if res.next_token.nil?
21
+
22
+ req[:next_token] = res.next_token
23
+ end
17
24
  end
18
25
 
19
26
  def find_parameter_tag(id, tag_key)
@@ -24,7 +24,7 @@ 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
27
+ transfer_server managed_prefix_list
28
28
  ]
29
29
 
30
30
  ACCOUNT_ATTRIBUTES = %w[
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec::Matchers.define :have_cidr do |cidr|
4
+ match do |type|
5
+ type.has_cidr?(cidr, @desc)
6
+ end
7
+
8
+ chain :desc do |desc|
9
+ @desc = desc
10
+ end
11
+ end
@@ -90,3 +90,6 @@ require 'awspec/matcher/have_cluster_parameter_group'
90
90
  require 'awspec/matcher/have_env_vars'
91
91
  require 'awspec/matcher/have_env_var'
92
92
  require 'awspec/matcher/have_env_var_value'
93
+
94
+ # ManagedPrefixList
95
+ require 'awspec/matcher/have_cidr'
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:ec2] = {
4
+ stub_responses: {
5
+ describe_managed_prefix_lists: {
6
+ next_token: nil,
7
+ prefix_lists: [
8
+ {
9
+ prefix_list_id: 'pl-12345678',
10
+ address_family: 'IPv4',
11
+ state: 'create-complete',
12
+ state_message: nil,
13
+ prefix_list_arn: 'arn:aws:ec2:ap-northeast-1:aws:prefix-list/pl-12345678',
14
+ prefix_list_name: 'my-managed-prefix-list',
15
+ max_entries: 2,
16
+ version: 1,
17
+ tags: [
18
+ {
19
+ key: 'env',
20
+ value: 'dev'
21
+ }
22
+ ],
23
+ owner_id: '123456789012'
24
+ }
25
+ ]
26
+ },
27
+ get_managed_prefix_list_entries: {
28
+ next_toke: nil,
29
+ entries: [
30
+ {
31
+ cidr: '10.0.0.0/16',
32
+ description: 'test'
33
+ },
34
+ {
35
+ cidr: '192.168.0.0/24',
36
+ description: 'dev'
37
+ }
38
+ ]
39
+ }
40
+ }
41
+ }
@@ -1,18 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Aws.config[:ssm] = {
4
- stub_responses: {
5
- describe_parameters: {
3
+ def describe_parameters_response(context)
4
+ next_token = 'eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ=='
5
+ if context.params[:next_token] == next_token
6
+ {
6
7
  parameters: [
7
8
  {
8
9
  name: 'my-parameter',
9
10
  type: 'SecureString',
10
11
  key_id: 'alias/aws/ssm',
11
12
  description: 'Some description',
12
- version: 1,
13
- next_token: nil
13
+ version: 1
14
14
  }
15
- ]
15
+ ],
16
+ next_token: nil
17
+ }
18
+ else
19
+ {
20
+ parameters: [],
21
+ next_token: next_token
16
22
  }
23
+ end
24
+ end
25
+
26
+ Aws.config[:ssm] = {
27
+ stub_responses: {
28
+ describe_parameters: ->(context) { describe_parameters_response(context) }
17
29
  }
18
30
  }
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Type
4
+ class ManagedPrefixList < ResourceBase
5
+ aws_resource Aws::EC2::Types::ManagedPrefixList
6
+ tags_allowed
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_managed_prefix_list(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.prefix_list_id if resource_via_client
14
+ end
15
+
16
+ def entries
17
+ @entries ||= select_managed_prefix_list_entries(id)
18
+ end
19
+
20
+ def has_cidr?(cidr, description = nil)
21
+ entries.find do |entry|
22
+ if description.nil?
23
+ entry.cidr == cidr
24
+ else
25
+ entry.cidr == cidr && entry.description == description
26
+ end
27
+ end
28
+ end
29
+
30
+ def entries_count
31
+ entries.length
32
+ end
33
+ end
34
+ end
@@ -18,9 +18,21 @@ module Awspec::Type
18
18
  end
19
19
 
20
20
  def has_attachment?(att_id)
21
- atts = find_tgw_attachments_by_tgw_id(@id)
22
- ret = atts.find_all { |att| att.transit_gateway_attachment_id == att_id }
23
- ret.any?
21
+ atts = find_tgw_attachments_by_tgw_id(id)
22
+
23
+ atts.any? do |att|
24
+ att.transit_gateway_attachment_id == att_id || attachment_has_name?(att, att_id)
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def attachment_has_name?(attachment, name)
31
+ if name.is_a?(Regexp)
32
+ attachment.tags.any? { |tag| tag.key == 'Name' && (name =~ tag.value) }
33
+ else
34
+ attachment.tags.any? { |tag| tag.key == 'Name' && tag.value == name }
35
+ end
24
36
  end
25
37
  end
26
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Awspec
4
- VERSION = '1.29.2'
4
+ VERSION = '1.30.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.29.2
4
+ version: 1.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-08 00:00:00.000000000 Z
11
+ date: 2024-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -300,6 +300,7 @@ files:
300
300
  - doc/_resource_types/lambda_account_settings.md
301
301
  - doc/_resource_types/launch_configuration.md
302
302
  - doc/_resource_types/launch_template.md
303
+ - doc/_resource_types/managed_prefix_list.md
303
304
  - doc/_resource_types/mq.md
304
305
  - doc/_resource_types/msk.md
305
306
  - doc/_resource_types/nat_gateway.md
@@ -410,6 +411,7 @@ files:
410
411
  - lib/awspec/generator/doc/type/lambda_account_settings.rb
411
412
  - lib/awspec/generator/doc/type/launch_configuration.rb
412
413
  - lib/awspec/generator/doc/type/launch_template.rb
414
+ - lib/awspec/generator/doc/type/managed_prefix_list.rb
413
415
  - lib/awspec/generator/doc/type/mq.rb
414
416
  - lib/awspec/generator/doc/type/msk.rb
415
417
  - lib/awspec/generator/doc/type/nat_gateway.rb
@@ -470,6 +472,7 @@ files:
470
472
  - lib/awspec/generator/spec/internet_gateway.rb
471
473
  - lib/awspec/generator/spec/kms.rb
472
474
  - lib/awspec/generator/spec/lambda.rb
475
+ - lib/awspec/generator/spec/managed_prefix_list.rb
473
476
  - lib/awspec/generator/spec/nat_gateway.rb
474
477
  - lib/awspec/generator/spec/network_acl.rb
475
478
  - lib/awspec/generator/spec/network_interface.rb
@@ -572,6 +575,7 @@ files:
572
575
  - lib/awspec/matcher/belong_to_subnets.rb
573
576
  - lib/awspec/matcher/belong_to_vpc.rb
574
577
  - lib/awspec/matcher/have_attribute_definition.rb
578
+ - lib/awspec/matcher/have_cidr.rb
575
579
  - lib/awspec/matcher/have_cluster_member.rb
576
580
  - lib/awspec/matcher/have_cluster_parameter_group.rb
577
581
  - lib/awspec/matcher/have_custom_response_error_code.rb
@@ -656,6 +660,7 @@ files:
656
660
  - lib/awspec/stub/lambda.rb
657
661
  - lib/awspec/stub/launch_configuration.rb
658
662
  - lib/awspec/stub/launch_template.rb
663
+ - lib/awspec/stub/managed_prefix_list.rb
659
664
  - lib/awspec/stub/mq.rb
660
665
  - lib/awspec/stub/msk.rb
661
666
  - lib/awspec/stub/nat_gateway.rb
@@ -751,6 +756,7 @@ files:
751
756
  - lib/awspec/type/lambda_account_settings.rb
752
757
  - lib/awspec/type/launch_configuration.rb
753
758
  - lib/awspec/type/launch_template.rb
759
+ - lib/awspec/type/managed_prefix_list.rb
754
760
  - lib/awspec/type/mq.rb
755
761
  - lib/awspec/type/msk.rb
756
762
  - lib/awspec/type/nat_gateway.rb
@@ -802,14 +808,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
802
808
  requirements:
803
809
  - - ">="
804
810
  - !ruby/object:Gem::Version
805
- version: '2.1'
811
+ version: '2.3'
806
812
  required_rubygems_version: !ruby/object:Gem::Requirement
807
813
  requirements:
808
814
  - - ">="
809
815
  - !ruby/object:Gem::Version
810
816
  version: '0'
811
817
  requirements: []
812
- rubygems_version: 3.3.3
818
+ rubygems_version: 3.4.19
813
819
  signing_key:
814
820
  specification_version: 4
815
821
  summary: RSpec tests for your AWS resources.