awspec 1.25.2 → 1.27.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02cc903214e73de4d0d6ed6bee30b9bf987e9f5ef11387b17686ecb92675aae8
4
- data.tar.gz: e890b372efb87f544a31a91caa358a6a313293edebb7fb66a24dd29fa636b34e
3
+ metadata.gz: 8e438eb5cfb3e76e33ccfe2fb709db146f8334316d7ff7784b0d5286e94bee9f
4
+ data.tar.gz: 7f6e39251c505d268168172fea2f87e7faa2e255dbf98169df16445a97e079b4
5
5
  SHA512:
6
- metadata.gz: db38f329352a2488a4fafc1c3f324f6653addb8e05585c90cf0644cacb64e75712cb14ac9095f7ca85c465606e9460f262e2438613ff844d99a5aaee79d3b3d8
7
- data.tar.gz: 4655fa571461a651b73c6afd85aabff2c26ccdad639609b6f51a12df3fe09f8df3330d7b7909a67cfafc5c3dd8a89d85be118e17cf2c13ed4d575c95c54ba0de
6
+ metadata.gz: c919af8b30166ab362c1e8b3381f215c79ae6fd5498cd32ef1863e4d11505ea4e5992e781a1f483bede011fc9c0a91b898c4ac72ffc0eaa50c1bc44f8910206d
7
+ data.tar.gz: 6c21d9579d80a52ad797f1b54318fb3ded718ffa9718831cdcd5cfb7c2aacb4c1459385f4b315fba6a0182a51b049d7d989824a9026d469e4e15fa94ab8bc27b
@@ -2,7 +2,8 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ branches:
6
+ - master
6
7
  pull_request:
7
8
 
8
9
  jobs:
@@ -64,4 +65,4 @@ jobs:
64
65
  run: bundle exec bin/toolbox docgen > doc/resource_types.md
65
66
 
66
67
  - name: Run tests
67
- run: bundle exec rake spec
68
+ run: bundle exec rake spec:parallel
data/Rakefile CHANGED
@@ -6,7 +6,8 @@ begin
6
6
  require 'rspec'
7
7
  require 'rspec/core'
8
8
  require 'rspec/core/rake_task'
9
- require 'octorelease'
9
+ require 'octorelease' unless ENV['CI']
10
+ require 'parallel'
10
11
  require 'rubocop/rake_task'
11
12
  rescue LoadError
12
13
  end
@@ -20,6 +21,18 @@ end
20
21
  if defined?(RSpec)
21
22
  task spec: 'spec:all'
22
23
  namespace :spec do
24
+ task :parallel do
25
+ Parallel.each(types.concat([
26
+ 'spec:account',
27
+ 'spec:core',
28
+ 'spec:generator_spec',
29
+ 'spec:generator_doc',
30
+ 'spec:helper'
31
+ ])) do |t|
32
+ puts ''
33
+ Rake::Task[t].execute
34
+ end
35
+ end
23
36
  task all: ['spec:type',
24
37
  'spec:account',
25
38
  'spec:core',
data/awspec.gemspec CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_runtime_dependency 'thor'
33
33
  spec.add_development_dependency 'bundler', '>= 1.9', '< 3.0'
34
34
  spec.add_development_dependency 'octorelease'
35
+ spec.add_development_dependency 'parallel'
35
36
  spec.add_development_dependency 'pry'
36
37
  spec.add_development_dependency 'rake', '~> 12.0'
37
38
  spec.add_development_dependency 'rubocop'
@@ -1,7 +1,7 @@
1
1
  ### exist
2
2
 
3
3
  ```ruby
4
- describe eip('123.0.456.789') do
4
+ describe eip('my-eip') do
5
5
  it { should exist }
6
6
  end
7
7
  ```
@@ -0,0 +1,42 @@
1
+ ### exist
2
+
3
+ ```ruby
4
+ describe rds_proxy('my-rds-proxy') do
5
+ it { should exist }
6
+ end
7
+ ```
8
+
9
+ ### be_available, be_creating, be_deleting, be_incompatible_network, be_insufficient_resource_limits, be_modifying, be_reactivating, be_suspended, be_suspending
10
+
11
+ ```ruby
12
+ describe rds_proxy('my-rds-proxy') do
13
+ it { should be_available }
14
+ end
15
+ ```
16
+
17
+ ### have_security_group
18
+
19
+ ```ruby
20
+ describe rds_proxy('my-rds-proxy') do
21
+ it { should have_security_group('sg-5a6b7cd8') }
22
+ it { should have_security_group('my-db-sg') }
23
+ end
24
+ ```
25
+
26
+ ### belong_to_subnet
27
+
28
+ ```ruby
29
+ describe rds_proxy('my-rds-proxy') do
30
+ it { should belong_to_subnet('subnet-8901b123') }
31
+ it { should belong_to_subnet('db-subnet-a') }
32
+ end
33
+ ```
34
+
35
+ ### belong_to_vpc
36
+
37
+ ```ruby
38
+ describe rds_proxy('my-rds-proxy') do
39
+ it { should belong_to_vpc('vpc-ab123cde') }
40
+ it { should belong_to_vpc('my-vpc') }
41
+ end
42
+ ```
@@ -0,0 +1,23 @@
1
+ ### exist
2
+
3
+ ```ruby
4
+ describe transfer_server('s-4dc0a424f0154fa89') do
5
+ it { should exist }
6
+ end
7
+ ```
8
+
9
+ ### be_offline, be_online, be_starting, be_stopping, be_start_failed, be_stop_failed
10
+
11
+ ```ruby
12
+ describe transfer_server('s-4dc0a424f0154fa89') do
13
+ it { should be_online }
14
+ end
15
+ ```
16
+
17
+ ### have_tag
18
+ ```
19
+ describe transfer_server('s-4dc0a424f0154fa89') do
20
+ it { should have_tag('env').value('dev') }
21
+ end
22
+ ```
23
+
@@ -63,6 +63,7 @@
63
63
  | [rds](#rds)
64
64
  | [rds_db_cluster_parameter_group](#rds_db_cluster_parameter_group)
65
65
  | [rds_db_parameter_group](#rds_db_parameter_group)
66
+ | [rds_proxy](#rds_proxy)
66
67
  | [redshift](#redshift)
67
68
  | [redshift_cluster_parameter_group](#redshift_cluster_parameter_group)
68
69
  | [route53_hosted_zone](#route53_hosted_zone)
@@ -75,6 +76,7 @@
75
76
  | [sqs](#sqs)
76
77
  | [ssm_parameter](#ssm_parameter)
77
78
  | [subnet](#subnet)
79
+ | [transfer_server](#transfer_server)
78
80
  | [transit_gateway](#transit_gateway)
79
81
  | [vpc](#vpc)
80
82
  | [vpc_endpoints](#vpc_endpoints)
@@ -273,7 +275,7 @@ end
273
275
 
274
276
  ### have_tag
275
277
 
276
- ### 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(:deprecation_time)
278
+ ### 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)
277
279
  ### :unlock: Advanced use
278
280
 
279
281
  `ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
@@ -360,7 +362,7 @@ describe autoscaling_group('my-auto-scaling-group') do
360
362
  end
361
363
  ```
362
364
 
363
- ### 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)
365
+ ### 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)
364
366
  ## <a name="batch_compute_environment">batch_compute_environment</a>
365
367
 
366
368
  BatchComputeEnvironment resource type.
@@ -399,7 +401,7 @@ end
399
401
 
400
402
  ### be_unmanaged
401
403
 
402
- ### its(:compute_environment_name), its(:compute_environment_arn), its(:unmanagedv_cpus), its(:ecs_cluster_arn), its(:tags), its(:type), its(:state), its(:status), its(:status_reason), its(:service_role)
404
+ ### its(:compute_environment_name), its(:compute_environment_arn), its(:unmanagedv_cpus), its(:ecs_cluster_arn), its(:tags), its(:type), its(:state), its(:status), its(:status_reason), its(:service_role), its(:update_policy)
403
405
  ## <a name="batch_job_definition">batch_job_definition</a>
404
406
 
405
407
  BatchJobDefinition resource type.
@@ -1127,7 +1129,7 @@ end
1127
1129
  ```
1128
1130
 
1129
1131
 
1130
- ### its(:ami_launch_index), its(:image_id), its(:instance_id), its(:instance_type), its(:kernel_id), its(:key_name), its(:launch_time), its(:monitoring), its(:placement), its(:platform), its(:private_dns_name), its(:private_ip_address), its(:product_codes), its(:public_dns_name), its(:public_ip_address), its(:ramdisk_id), its(:state_transition_reason), its(:subnet_id), its(:vpc_id), its(:architecture), its(:client_token), its(:ebs_optimized), its(:ena_support), its(:hypervisor), its(:instance_lifecycle), its(:elastic_gpu_associations), its(:elastic_inference_accelerator_associations), its(:outpost_arn), its(:root_device_name), its(:root_device_type), its(:source_dest_check), its(:spot_instance_request_id), its(:sriov_net_support), its(:state_reason), its(:virtualization_type), its(:cpu_options), its(:capacity_reservation_id), its(:capacity_reservation_specification), its(:hibernation_options), its(:licenses), its(:metadata_options), its(:enclave_options), its(:boot_mode), its(:platform_details), its(:usage_operation), its(:usage_operation_update_time), its(:private_dns_name_options), its(:ipv_6_address)
1132
+ ### its(:ami_launch_index), its(:image_id), its(:instance_id), its(:instance_type), its(:kernel_id), its(:key_name), its(:launch_time), its(:monitoring), its(:placement), its(:platform), its(:private_dns_name), its(:private_ip_address), its(:product_codes), its(:public_dns_name), its(:public_ip_address), its(:ramdisk_id), its(:state_transition_reason), its(:subnet_id), its(:vpc_id), its(:architecture), its(:client_token), its(:ebs_optimized), its(:ena_support), its(:hypervisor), its(:instance_lifecycle), its(:elastic_gpu_associations), its(:elastic_inference_accelerator_associations), its(:outpost_arn), its(:root_device_name), its(:root_device_type), its(:source_dest_check), its(:spot_instance_request_id), its(:sriov_net_support), its(:state_reason), its(:virtualization_type), its(:cpu_options), its(:capacity_reservation_id), its(:capacity_reservation_specification), its(:hibernation_options), its(:licenses), its(:metadata_options), its(:enclave_options), its(:boot_mode), its(:platform_details), its(:usage_operation), its(:usage_operation_update_time), its(:private_dns_name_options), its(:ipv_6_address), its(:tpm_support), its(:maintenance_options)
1131
1133
  ### :unlock: Advanced use
1132
1134
 
1133
1135
  `ec2` can use `Aws::EC2::Instance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html).
@@ -1322,7 +1324,7 @@ Elastic IP resource type.
1322
1324
  ### exist
1323
1325
 
1324
1326
  ```ruby
1325
- describe eip('123.0.456.789') do
1327
+ describe eip('my-eip') do
1326
1328
  it { should exist }
1327
1329
  end
1328
1330
  ```
@@ -1573,7 +1575,7 @@ end
1573
1575
  ```
1574
1576
 
1575
1577
 
1576
- ### 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)
1578
+ ### 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)
1577
1579
  ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
1578
1580
 
1579
1581
  ElastictranscoderPipeline resource type.
@@ -1718,7 +1720,7 @@ describe emr('my-emr') do
1718
1720
  end
1719
1721
  ```
1720
1722
 
1721
- ### 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)
1723
+ ### 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)
1722
1724
  ## <a name="firehose">firehose</a>
1723
1725
 
1724
1726
  Firehose resource type.
@@ -2231,7 +2233,7 @@ DOC
2231
2233
  end
2232
2234
  ```
2233
2235
 
2234
- ### its(:aws_account_id), its(:key_id), its(:arn), its(:creation_date), its(:enabled), its(:description), its(:key_usage), its(:key_state), its(:deletion_date), its(:valid_to), its(:origin), its(:custom_key_store_id), its(:cloud_hsm_cluster_id), its(:expiration_model), its(:key_manager), its(:customer_master_key_spec), its(:key_spec), its(:encryption_algorithms), its(:signing_algorithms), its(:multi_region), its(:multi_region_configuration), its(:pending_deletion_window_in_days)
2236
+ ### its(:aws_account_id), its(:key_id), its(:arn), its(:creation_date), its(:enabled), its(:description), its(:key_usage), its(:key_state), its(:deletion_date), its(:valid_to), its(:origin), its(:custom_key_store_id), its(:cloud_hsm_cluster_id), its(:expiration_model), its(:key_manager), its(:customer_master_key_spec), its(:key_spec), its(:encryption_algorithms), its(:signing_algorithms), its(:multi_region), its(:multi_region_configuration), its(:pending_deletion_window_in_days), its(:mac_algorithms)
2235
2237
  ## <a name="lambda">lambda</a>
2236
2238
 
2237
2239
  Lambda resource type.
@@ -2280,7 +2282,7 @@ end
2280
2282
 
2281
2283
  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)).
2282
2284
 
2283
- ### 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)
2285
+ ### 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)
2284
2286
  ## <a name="launch_configuration">launch_configuration</a>
2285
2287
 
2286
2288
  LaunchConfiguration resource type.
@@ -2402,7 +2404,7 @@ describe mq('my-mq') do
2402
2404
  end
2403
2405
  ```
2404
2406
 
2405
- ### its(:vpc_id), 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)
2407
+ ### 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)
2406
2408
  ## <a name="msk">msk</a>
2407
2409
 
2408
2410
  Msk resource type.
@@ -2854,7 +2856,7 @@ end
2854
2856
  ```
2855
2857
 
2856
2858
 
2857
- ### 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)
2859
+ ### 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)
2858
2860
  ### :unlock: Advanced use
2859
2861
 
2860
2862
  `rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
@@ -2914,6 +2916,58 @@ end
2914
2916
  ```
2915
2917
 
2916
2918
 
2919
+ ## <a name="rds_proxy">rds_proxy</a>
2920
+
2921
+ RdsProxy resource type.
2922
+
2923
+ ### exist
2924
+
2925
+ ```ruby
2926
+ describe rds_proxy('my-rds-proxy') do
2927
+ it { should exist }
2928
+ end
2929
+ ```
2930
+
2931
+
2932
+ ### be_available, be_creating, be_deleting, be_incompatible_network, be_insufficient_resource_limits, be_modifying, be_reactivating, be_suspended, be_suspending
2933
+
2934
+ ```ruby
2935
+ describe rds_proxy('my-rds-proxy') do
2936
+ it { should be_available }
2937
+ end
2938
+ ```
2939
+
2940
+
2941
+ ### have_security_group
2942
+
2943
+ ```ruby
2944
+ describe rds_proxy('my-rds-proxy') do
2945
+ it { should have_security_group('sg-5a6b7cd8') }
2946
+ it { should have_security_group('my-db-sg') }
2947
+ end
2948
+ ```
2949
+
2950
+
2951
+ ### belong_to_subnet
2952
+
2953
+ ```ruby
2954
+ describe rds_proxy('my-rds-proxy') do
2955
+ it { should belong_to_subnet('subnet-8901b123') }
2956
+ it { should belong_to_subnet('db-subnet-a') }
2957
+ end
2958
+ ```
2959
+
2960
+
2961
+ ### belong_to_vpc
2962
+
2963
+ ```ruby
2964
+ describe rds_proxy('my-rds-proxy') do
2965
+ it { should belong_to_vpc('vpc-ab123cde') }
2966
+ it { should belong_to_vpc('my-vpc') }
2967
+ end
2968
+ ```
2969
+
2970
+ ### 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)
2917
2971
  ## <a name="redshift">redshift</a>
2918
2972
 
2919
2973
  Redshift resource type.
@@ -3587,6 +3641,37 @@ describe subnet('my-subnet') do
3587
3641
  end
3588
3642
  ```
3589
3643
 
3644
+ ## <a name="transfer_server">transfer_server</a>
3645
+
3646
+ TransferServer resource type.
3647
+
3648
+ ### exist
3649
+
3650
+ ```ruby
3651
+ describe transfer_server('s-4dc0a424f0154fa89') do
3652
+ it { should exist }
3653
+ end
3654
+ ```
3655
+
3656
+
3657
+ ### be_offline, be_online, be_starting, be_stopping, be_start_failed, be_stop_failed
3658
+
3659
+ ```ruby
3660
+ describe transfer_server('s-4dc0a424f0154fa89') do
3661
+ it { should be_online }
3662
+ end
3663
+ ```
3664
+
3665
+
3666
+ ### have_tag
3667
+ ```
3668
+ describe transfer_server('s-4dc0a424f0154fa89') do
3669
+ it { should have_tag('env').value('dev') }
3670
+ end
3671
+ ```
3672
+
3673
+
3674
+ ### 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)
3590
3675
  ## <a name="transit_gateway">transit_gateway</a>
3591
3676
 
3592
3677
  TransitGateway resource type.
@@ -11,7 +11,7 @@ module Awspec
11
11
 
12
12
  types = %w[
13
13
  vpc ec2 rds security_group elb network_acl route_table subnet nat_gateway network_interface alb nlb
14
- internet_gateway autoscaling_group alb_listener nlb_listener redshift
14
+ internet_gateway autoscaling_group alb_listener nlb_listener redshift rds_proxy
15
15
  ]
16
16
 
17
17
  types.each do |type|
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Generator
4
+ module Doc
5
+ module Type
6
+ class RdsProxy < Base
7
+ def initialize
8
+ super
9
+ @type_name = 'RdsProxy'
10
+ @type = Awspec::Type::RdsProxy.new('my-rds-proxy')
11
+ @ret = @type.resource_via_client
12
+ @matchers = [
13
+ Awspec::Type::RdsProxy::STATES.map { |state| "be_#{state.tr('-', '_')}" }.join(', '),
14
+ 'belong_to_vpc',
15
+ 'belong_to_subnet'
16
+ ]
17
+ @ignore_matchers = Awspec::Type::RdsProxy::STATES.map { |state| "be_#{state.tr('-', '_')}" }
18
+ @describes = %w[vpc_id]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Generator
4
+ module Doc
5
+ module Type
6
+ class TransferServer < Base
7
+ def initialize
8
+ super
9
+ @type_name = 'TransferServer'
10
+ @type = Awspec::Type::TransferServer.new('s-4dc0a424f0154fa89')
11
+ @ret = @type.resource_via_client
12
+ @matchers = [
13
+ Awspec::Type::TransferServer::STATES.map { |state| "be_#{state.downcase.tr('-', '_')}" }.join(', ')
14
+ ]
15
+ @ignore_matchers = Awspec::Type::TransferServer::STATES.map { |state| "be_#{state.downcase.tr('-', '_')}" }
16
+ @describes = []
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Generator
4
+ module Spec
5
+ class RdsProxy
6
+ include Awspec::Helper::Finder
7
+ def generate_by_vpc_id(vpc_id)
8
+ vpc = find_vpc(vpc_id)
9
+ raise 'Not Found VPC' unless vpc
10
+
11
+ @vpc_id = vpc[:vpc_id]
12
+ db_proxies = select_rds_proxy_by_vpc_id(@vpc_id)
13
+ specs = db_proxies.map do |db_proxy|
14
+ content = ERB.new(rds_proxy_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
15
+ end
16
+ specs.join("\n")
17
+ end
18
+
19
+ # rubocop:disable all
20
+ def rds_proxy_spec_template
21
+ template = <<-'EOF'
22
+ describe rds_proxy('<%= db_proxy.db_proxy_name %>') do
23
+ it { should exist }
24
+ it { should be_<%= db_proxy.status %> }
25
+ it { should belong_to_vpc('<%= @vpc_id %>') }
26
+ <% db_proxy.vpc_security_group_ids.each do |sg_group_id| %>
27
+ it { should have_security_group('<%= sg_group_id %>') }
28
+ <% end %>
29
+ <% db_proxy.vpc_subnet_ids.each do |subnet_id| %>
30
+ it { should belong_to_subnet('<%= subnet_id %>') }
31
+ <% end %>
32
+ end
33
+ EOF
34
+ template
35
+ end
36
+ end
37
+ end
38
+ end
@@ -40,6 +40,7 @@ require 'awspec/generator/spec/alb_listener'
40
40
  require 'awspec/generator/spec/nlb_listener'
41
41
  require 'awspec/generator/spec/redshift'
42
42
  require 'awspec/generator/spec/redshift_cluster_parameter_group'
43
+ require 'awspec/generator/spec/rds_proxy'
43
44
 
44
45
  # Doc
45
46
  require 'awspec/generator/doc/type'
@@ -163,20 +163,6 @@ module Awspec::Helper
163
163
  instances
164
164
  end
165
165
 
166
- def select_eip_by_instance_id(id)
167
- res = ec2_client.describe_addresses({
168
- filters: [{ name: 'instance-id', values: [id] }]
169
- })
170
- res.addresses
171
- end
172
-
173
- def select_eip_by_public_ip(id)
174
- res = ec2_client.describe_addresses({
175
- filters: [{ name: 'public-ip', values: [id] }]
176
- })
177
- res.addresses
178
- end
179
-
180
166
  def select_network_interface_by_instance_id(id)
181
167
  res = ec2_client.describe_network_interfaces({
182
168
  filters: [{ name: 'attachment.instance-id', values: [id] }]
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Helper
4
+ module Finder
5
+ module Eip
6
+ def select_eip_by_instance_id(id)
7
+ res = ec2_client.describe_addresses({
8
+ filters: [{ name: 'instance-id', values: [id] }]
9
+ })
10
+ res.addresses
11
+ end
12
+
13
+ def select_eip(id)
14
+ res = ec2_client.describe_addresses({
15
+ filters: [{ name: 'public-ip', values: [id] }]
16
+ })
17
+ return res.addresses unless res.addresses.empty?
18
+
19
+ res = ec2_client.describe_addresses({
20
+ filters: [{ name: 'tag:Name', values: [id] }]
21
+ })
22
+ res.addresses
23
+ end
24
+ end
25
+ end
26
+ end
@@ -57,6 +57,20 @@ module Awspec::Helper
57
57
  end
58
58
  parameters
59
59
  end
60
+
61
+ def find_rds_proxy(db_proxy_name)
62
+ res = rds_client.describe_db_proxies({
63
+ db_proxy_name: db_proxy_name
64
+ })
65
+ res.db_proxies.single_resource(db_proxy_name)
66
+ end
67
+
68
+ def select_rds_proxy_by_vpc_id(vpc_id)
69
+ res = rds_client.describe_db_proxies
70
+ res.db_proxies.select do |db_proxy|
71
+ db_proxy.vpc_id == vpc_id
72
+ end
73
+ end
60
74
  end
61
75
  end
62
76
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Helper
4
+ module Finder
5
+ module Transfer
6
+ def find_transfer_server(id)
7
+ res = transfer_client.describe_server(server_id: id)
8
+ res.server
9
+ end
10
+ end
11
+ end
12
+ end
@@ -4,12 +4,27 @@ module Awspec::Helper
4
4
  module Finder
5
5
  module VpcEndpoints
6
6
  def find_vpc_endpoint(id)
7
- res = ec2_client.describe_vpc_endpoints({ vpc_endpoint_ids: [id] })
7
+ res = ec2_client.describe_vpc_endpoints({
8
+ filters: [{ name: 'vpc-endpoint-id', values: [id] }]
9
+ })
8
10
 
9
11
  ret = res.vpc_endpoints.select do |vpce|
10
12
  vpce.vpc_endpoint_id == id
11
13
  end
12
14
 
15
+ resource = ret.single_resource(id)
16
+ return resource if resource
17
+
18
+ res = ec2_client.describe_vpc_endpoints({
19
+ filters: [{ name: 'tag:Name', values: [id] }]
20
+ })
21
+
22
+ ret = res.vpc_endpoints.select do |vpce|
23
+ vpce.tags.find do |tag|
24
+ tag.key == 'Name' && tag.value == id
25
+ end
26
+ end
27
+
13
28
  ret.single_resource(id)
14
29
  end
15
30
  end
@@ -10,6 +10,7 @@ require 'awspec/helper/finder/ec2'
10
10
  require 'awspec/helper/finder/ecr'
11
11
  require 'awspec/helper/finder/ecs'
12
12
  require 'awspec/helper/finder/efs'
13
+ require 'awspec/helper/finder/eip'
13
14
  require 'awspec/helper/finder/security_group'
14
15
  require 'awspec/helper/finder/rds'
15
16
  require 'awspec/helper/finder/route53'
@@ -53,6 +54,7 @@ require 'awspec/helper/finder/secretsmanager'
53
54
  require 'awspec/helper/finder/cognito_user_pool'
54
55
  require 'awspec/helper/finder/msk'
55
56
  require 'awspec/helper/finder/cognito_identity_pool'
57
+ require 'awspec/helper/finder/transfer'
56
58
 
57
59
  require 'awspec/helper/finder/account_attributes'
58
60
 
@@ -69,6 +71,7 @@ module Awspec::Helper
69
71
  include Awspec::Helper::Finder::Ecr
70
72
  include Awspec::Helper::Finder::Ecs
71
73
  include Awspec::Helper::Finder::Efs
74
+ include Awspec::Helper::Finder::Eip
72
75
  include Awspec::Helper::Finder::Firehose
73
76
  include Awspec::Helper::Finder::SecurityGroup
74
77
  include Awspec::Helper::Finder::Rds
@@ -113,6 +116,7 @@ module Awspec::Helper
113
116
  include Awspec::Helper::Finder::CognitoUserPool
114
117
  include Awspec::Helper::Finder::Msk
115
118
  include Awspec::Helper::Finder::CognitoIdentityPool
119
+ include Awspec::Helper::Finder::Transfer
116
120
 
117
121
  CLIENTS = {
118
122
  ec2_client: Aws::EC2::Client,
@@ -160,7 +164,8 @@ module Awspec::Helper
160
164
  secretsmanager_client: Aws::SecretsManager::Client,
161
165
  msk_client: Aws::Kafka::Client,
162
166
  cognito_identity_client: Aws::CognitoIdentity::Client,
163
- cognito_identity_provider_client: Aws::CognitoIdentityProvider::Client
167
+ cognito_identity_provider_client: Aws::CognitoIdentityProvider::Client,
168
+ transfer_client: Aws::Transfer::Client
164
169
  }
165
170
 
166
171
  CLIENT_OPTIONS = {
@@ -17,12 +17,13 @@ module Awspec
17
17
  efs eks eks_nodegroup elasticache elasticache_cache_parameter_group elasticsearch elb emr firehose iam_group
18
18
  iam_policy iam_role iam_user kinesis kms lambda launch_configuration launch_template mq nat_gateway
19
19
  network_acl network_interface nlb nlb_listener nlb_target_group
20
- rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
20
+ rds rds_proxy rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
21
21
  route_table s3_bucket security_group ses_identity subnet vpc cloudfront_distribution
22
22
  elastictranscoder_pipeline waf_web_acl wafregional_web_acl customer_gateway vpn_gateway vpn_connection
23
23
  internet_gateway acm cloudwatch_logs dynamodb_table eip sqs ssm_parameter cloudformation_stack
24
24
  codebuild sns_topic redshift redshift_cluster_parameter_group codedeploy codedeploy_deployment_group
25
25
  secretsmanager msk transit_gateway cognito_identity_pool cognito_user_pool vpc_endpoints
26
+ transfer_server
26
27
  ]
27
28
 
28
29
  ACCOUNT_ATTRIBUTES = %w[
@@ -32,5 +32,22 @@ RSpec::Matchers.define :belong_to_subnet do |subnet_id|
32
32
 
33
33
  return ret[:subnet_availability_zone][:name] == type.availability_zone if ret
34
34
  end
35
+
36
+ # RDS Proxy
37
+ if type.instance_of?(Awspec::Type::RdsProxy)
38
+ subnet_ids = type.resource_via_client[:vpc_subnet_ids]
39
+ return true if subnet_ids.include?(subnet_id)
40
+
41
+ res = type.ec2_client.describe_subnets({
42
+ filters: [{ name: 'tag:Name', values: [subnet_id] }]
43
+ })
44
+ return false unless res
45
+
46
+ ret = subnet_ids.find do |s|
47
+ s == res[:subnets][0][:subnet_id]
48
+ end
49
+
50
+ return ret ? true : false
51
+ end
35
52
  end
36
53
  end
@@ -7,7 +7,13 @@ Aws.config[:ec2] = {
7
7
  {
8
8
  domain: 'vpc',
9
9
  public_ip: '123.0.456.789',
10
- instance_id: 'i-ec12345a'
10
+ instance_id: 'i-ec12345a',
11
+ tags: [
12
+ {
13
+ key: 'Name',
14
+ value: 'my-eip'
15
+ }
16
+ ]
11
17
  }
12
18
  ]
13
19
  }
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:rds] = {
4
+ stub_responses: {
5
+ describe_db_proxies: {
6
+ db_proxies: [
7
+ {
8
+ db_proxy_name: 'my-rds-proxy',
9
+ db_proxy_arn: 'arn:aws:rds:ap-northeast-1:123456789012:db-proxy:my-rds-proxy',
10
+ status: 'available',
11
+ engine_family: 'MYSQL',
12
+ vpc_id: 'vpc-ab123cde',
13
+ vpc_security_group_ids: [
14
+ 'sg-5a6b7cd8'
15
+ ],
16
+ vpc_subnet_ids: [
17
+ 'subnet-8901b123'
18
+ ],
19
+ auth: [
20
+ {
21
+ description: nil,
22
+ user_name: nil,
23
+ auth_scheme: 'SECRETS',
24
+ secret_arn: 'arn:aws:secretsmanager:ap-northeast-1:123456789012:secret:mysql-FShJ8c',
25
+ iam_auth: 'DISABLED'
26
+ }
27
+ ],
28
+ role_arn: 'arn:aws:iam::123456789012:role/service-role/rds-proxy-role-123456789012',
29
+ endpoint: 'rds-proxy.proxy-abcdefghij12.ap-northeast-1.rds.amazonaws.com',
30
+ require_tls: true,
31
+ idle_client_timeout: 5400,
32
+ debug_logging: false,
33
+ created_date: Time.local(2022),
34
+ updated_date: Time.local(2022)
35
+ }
36
+ ],
37
+ marker: nil
38
+ }
39
+ }
40
+ }
41
+
42
+ Aws.config[:ec2] = {
43
+ stub_responses: {
44
+ describe_vpcs: {
45
+ vpcs: [
46
+ {
47
+ vpc_id: 'vpc-ab123cde',
48
+ tags: [
49
+ {
50
+ key: 'Name',
51
+ value: 'my-vpc'
52
+ }
53
+ ]
54
+ }
55
+ ]
56
+ },
57
+ describe_security_groups: {
58
+ security_groups: [
59
+ {
60
+ group_id: 'sg-5a6b7cd8',
61
+ group_name: 'group-name-sg',
62
+ tags: [
63
+ {
64
+ key: 'Name',
65
+ value: 'my-db-sg'
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ },
71
+ describe_subnets: {
72
+ subnets: [
73
+ {
74
+ subnet_id: 'subnet-8901b123',
75
+ tags: [
76
+ {
77
+ key: 'Name',
78
+ value: 'db-subnet-a'
79
+ }
80
+ ]
81
+ }
82
+ ]
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ Aws.config[:transfer] = {
4
+ stub_responses: {
5
+ describe_server: {
6
+ server: Aws::Transfer::Types::DescribedServer.new(
7
+ arn: 'arn:aws:transfer:us-east-1:1234567890:server/s-4dc0a424f0154fa89',
8
+ domain: 'S3',
9
+ endpoint_details: Aws::Transfer::Types::EndpointDetails.new(
10
+ address_allocation_ids: %w[
11
+ eipalloc-00000000000000001
12
+ eipalloc-00000000000000002
13
+ eipalloc-00000000000000003
14
+ ],
15
+ subnet_ids: %w[
16
+ subnet-0000000000000000a
17
+ subnet-0000000000000000b
18
+ subnet-0000000000000000c
19
+ ],
20
+ vpc_endpoint_id: 'vpce-00000000000000001',
21
+ vpc_id: 'vpc-0123456789abcdefg'
22
+ ),
23
+ endpoint_type: 'VPC',
24
+ host_key_fingerprint: 'SHA256:0pj2UnuoFAKEfHrCZwfPwuFinG3RJEVir/m8bPRINTo=',
25
+ identity_provider_type: 'SERVICE_MANAGED',
26
+ logging_role: 'arn:aws:iam::1234567890:role/service-role/AWSTransferLoggingAccess',
27
+ protocols: ['SFTP'],
28
+ security_policy_name: 'TransferSecurityPolicy-2018-11',
29
+ server_id: 's-4dc0a424f0154fa89',
30
+ state: 'ONLINE',
31
+ tags: [
32
+ Aws::Transfer::Types::Tag.new(
33
+ key: 'env',
34
+ value: 'dev'
35
+ )
36
+ ],
37
+ user_count: 13
38
+ )
39
+ }
40
+ }
41
+ }
@@ -3,7 +3,7 @@
3
3
  module Awspec::Type
4
4
  class Eip < ResourceBase
5
5
  def resource_via_client
6
- @resource_via_client ||= select_eip_by_public_ip(@display_name)
6
+ @resource_via_client ||= select_eip(@display_name)
7
7
  end
8
8
 
9
9
  def id
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Type
4
+ class RdsProxy < ResourceBase
5
+ aws_resource Aws::RDS::Types::DBProxy
6
+
7
+ def resource_via_client
8
+ @resource_via_client ||= find_rds_proxy(@display_name)
9
+ end
10
+
11
+ def id
12
+ @id ||= resource_via_client.db_proxy_name if resource_via_client
13
+ end
14
+
15
+ STATES = %w[
16
+ available creating deleting incompatible-network
17
+ insufficient-resource-limits modifying reactivating
18
+ suspended suspending
19
+ ]
20
+
21
+ STATES.each do |state|
22
+ define_method "#{state.tr('-', '_')}?" do
23
+ resource_via_client.status == state
24
+ end
25
+ end
26
+
27
+ def vpc_id
28
+ resource_via_client.vpc_id
29
+ end
30
+
31
+ def has_security_group?(sg_id)
32
+ return true if has_vpc_security_group_id?(sg_id)
33
+ return true if has_vpc_security_group_name?(sg_id)
34
+ return true if has_vpc_security_group_tag_name?(sg_id)
35
+ end
36
+
37
+ private
38
+
39
+ def has_vpc_security_group_id?(sg_id)
40
+ resource_via_client.vpc_security_group_ids.include?(sg_id)
41
+ end
42
+
43
+ def has_vpc_security_group_name?(sg_id)
44
+ sgs = resource_via_client.vpc_security_group_ids
45
+ res = ec2_client.describe_security_groups({
46
+ filters: [{ name: 'group-name', values: [sg_id] }]
47
+ })
48
+ return false unless res.security_groups.count == 1
49
+
50
+ sgs.find do |sg|
51
+ sg == res.security_groups.first.group_id
52
+ end
53
+ end
54
+
55
+ def has_vpc_security_group_tag_name?(sg_id)
56
+ sgs = resource_via_client.vpc_security_group_ids
57
+ res = ec2_client.describe_security_groups({
58
+ filters: [{ name: 'tag:Name', values: [sg_id] }]
59
+ })
60
+ return false unless res.security_groups.count == 1
61
+
62
+ sgs.find do |sg|
63
+ sg == res.security_groups.first.group_id
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Awspec::Type
4
+ class TransferServer < ResourceBase
5
+ attr_reader :id
6
+
7
+ tags_allowed
8
+
9
+ def initialize(id)
10
+ super
11
+ @id = id
12
+ end
13
+
14
+ def resource_via_client
15
+ @resource_via_client ||= find_transfer_server(@id)
16
+ end
17
+
18
+ STATES = %w[
19
+ OFFLINE ONLINE STARTING STOPPING START_FAILED STOP_FAILED
20
+ ]
21
+
22
+ STATES.each do |state|
23
+ define_method "#{state.downcase.tr('-', '_')}?" do
24
+ resource_via_client.state == state
25
+ end
26
+ end
27
+ end
28
+ end
@@ -27,6 +27,11 @@ module Awspec::Type
27
27
  def has_route_table?(route_table_id)
28
28
  rts = resource_via_client.route_table_ids
29
29
 
30
+ ret = find_route_table(route_table_id)
31
+ if ret && rts.include?(ret.route_table_id)
32
+ return true
33
+ end
34
+
30
35
  ret = rts.find do |rt|
31
36
  rt == route_table_id
32
37
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Awspec
4
- VERSION = '1.25.2'
4
+ VERSION = '1.27.1'
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.25.2
4
+ version: 1.27.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-25 00:00:00.000000000 Z
11
+ date: 2022-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -170,6 +170,20 @@ dependencies:
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: parallel
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
173
187
  - !ruby/object:Gem::Dependency
174
188
  name: pry
175
189
  requirement: !ruby/object:Gem::Requirement
@@ -297,6 +311,7 @@ files:
297
311
  - doc/_resource_types/rds_account_attributes.md
298
312
  - doc/_resource_types/rds_db_cluster_parameter_group.md
299
313
  - doc/_resource_types/rds_db_parameter_group.md
314
+ - doc/_resource_types/rds_proxy.md
300
315
  - doc/_resource_types/redshift.md
301
316
  - doc/_resource_types/redshift_cluster_parameter_group.md
302
317
  - doc/_resource_types/route53_hosted_zone.md
@@ -310,6 +325,7 @@ files:
310
325
  - doc/_resource_types/sqs.md
311
326
  - doc/_resource_types/ssm_parameter.md
312
327
  - doc/_resource_types/subnet.md
328
+ - doc/_resource_types/transfer_server.md
313
329
  - doc/_resource_types/transit_gateway.md
314
330
  - doc/_resource_types/vpc.md
315
331
  - doc/_resource_types/vpc_endpoints.md
@@ -402,6 +418,7 @@ files:
402
418
  - lib/awspec/generator/doc/type/rds_account_attributes.rb
403
419
  - lib/awspec/generator/doc/type/rds_db_cluster_parameter_group.rb
404
420
  - lib/awspec/generator/doc/type/rds_db_parameter_group.rb
421
+ - lib/awspec/generator/doc/type/rds_proxy.rb
405
422
  - lib/awspec/generator/doc/type/redshift.rb
406
423
  - lib/awspec/generator/doc/type/redshift_cluster_parameter_group.rb
407
424
  - lib/awspec/generator/doc/type/route53_hosted_zone.rb
@@ -415,6 +432,7 @@ files:
415
432
  - lib/awspec/generator/doc/type/sqs.rb
416
433
  - lib/awspec/generator/doc/type/ssm_parameter.rb
417
434
  - lib/awspec/generator/doc/type/subnet.rb
435
+ - lib/awspec/generator/doc/type/transfer_server.rb
418
436
  - lib/awspec/generator/doc/type/transit_gateway.rb
419
437
  - lib/awspec/generator/doc/type/vpc.rb
420
438
  - lib/awspec/generator/doc/type/vpc_endpoints.rb
@@ -453,6 +471,7 @@ files:
453
471
  - lib/awspec/generator/spec/rds.rb
454
472
  - lib/awspec/generator/spec/rds_db_cluster_parameter_group.rb
455
473
  - lib/awspec/generator/spec/rds_db_parameter_group.rb
474
+ - lib/awspec/generator/spec/rds_proxy.rb
456
475
  - lib/awspec/generator/spec/redshift.rb
457
476
  - lib/awspec/generator/spec/redshift_cluster_parameter_group.rb
458
477
  - lib/awspec/generator/spec/route53_hosted_zone.rb
@@ -490,6 +509,7 @@ files:
490
509
  - lib/awspec/helper/finder/ecr.rb
491
510
  - lib/awspec/helper/finder/ecs.rb
492
511
  - lib/awspec/helper/finder/efs.rb
512
+ - lib/awspec/helper/finder/eip.rb
493
513
  - lib/awspec/helper/finder/eks.rb
494
514
  - lib/awspec/helper/finder/elasticache.rb
495
515
  - lib/awspec/helper/finder/elasticsearch.rb
@@ -515,6 +535,7 @@ files:
515
535
  - lib/awspec/helper/finder/sqs.rb
516
536
  - lib/awspec/helper/finder/ssm_parameter.rb
517
537
  - lib/awspec/helper/finder/subnet.rb
538
+ - lib/awspec/helper/finder/transfer.rb
518
539
  - lib/awspec/helper/finder/vpc.rb
519
540
  - lib/awspec/helper/finder/vpc_endpoints.rb
520
541
  - lib/awspec/helper/finder/waf.rb
@@ -636,6 +657,7 @@ files:
636
657
  - lib/awspec/stub/rds.rb
637
658
  - lib/awspec/stub/rds_db_cluster_parameter_group.rb
638
659
  - lib/awspec/stub/rds_db_parameter_group.rb
660
+ - lib/awspec/stub/rds_proxy.rb
639
661
  - lib/awspec/stub/redshift.rb
640
662
  - lib/awspec/stub/redshift_cluster_parameter_group.rb
641
663
  - lib/awspec/stub/route53_hosted_zone.rb
@@ -649,6 +671,7 @@ files:
649
671
  - lib/awspec/stub/sqs.rb
650
672
  - lib/awspec/stub/ssm_parameter.rb
651
673
  - lib/awspec/stub/subnet.rb
674
+ - lib/awspec/stub/transfer_server.rb
652
675
  - lib/awspec/stub/transit_gateway.rb
653
676
  - lib/awspec/stub/vpc.rb
654
677
  - lib/awspec/stub/vpc_endpoints.rb
@@ -727,6 +750,7 @@ files:
727
750
  - lib/awspec/type/rds_account_attributes.rb
728
751
  - lib/awspec/type/rds_db_cluster_parameter_group.rb
729
752
  - lib/awspec/type/rds_db_parameter_group.rb
753
+ - lib/awspec/type/rds_proxy.rb
730
754
  - lib/awspec/type/redshift.rb
731
755
  - lib/awspec/type/redshift_cluster_parameter_group.rb
732
756
  - lib/awspec/type/resource_base.rb
@@ -741,6 +765,7 @@ files:
741
765
  - lib/awspec/type/sqs.rb
742
766
  - lib/awspec/type/ssm_parameter.rb
743
767
  - lib/awspec/type/subnet.rb
768
+ - lib/awspec/type/transfer_server.rb
744
769
  - lib/awspec/type/transit_gateway.rb
745
770
  - lib/awspec/type/vpc.rb
746
771
  - lib/awspec/type/vpc_endpoints.rb