awspec 1.22.1 → 1.24.3

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: 710c1219289b969a66f081eadd1328d5d139ebb9a17db4dbf1afd3914ac56aee
4
- data.tar.gz: ce6ad8d080a22d888dfdec4956e5fbbc64c3675713d8458d1d648fd7f31b6532
3
+ metadata.gz: 9ac14ec851ce396f40316106c3784538793a8522009cc6d2172b71d01bc16691
4
+ data.tar.gz: 291660659e3c9223777f70e779c1d2ab34a591a4bfd83590002764977a70e73d
5
5
  SHA512:
6
- metadata.gz: 4d64abec533937d923515a91d2e834e75290b9a527e0f2ba0474a658b308dec1f626d01f0079df987dca9e9fdc51e7b5f9ef1382a302ce55157624d803862cdd
7
- data.tar.gz: 4934f4fd7536f348ddd159f1e38a4ae5c66958078ee76d712aa112aeecffcfdf7b1efb81cf501fcd07536ed28f72fdd5e005cb0ee6dee6ecb14a9731203e369b
6
+ metadata.gz: 411f890f896ba013a75805159318bca637f0c43f0cc2b62c9e745d3b3386a31ba24d2080c1f4821f6fd68d5392bd1003a03838f119fa156b28f1959d4016ef98
7
+ data.tar.gz: f9ee6a4015f25bb56b85ae3a741a628bc5985b4e85f04e92099faaa9fb14caf02d7e8a13ef6ec86e3e5cd51455fe0b1d7d6fcc6feed3853d88661233f4079afd
data/.travis.yml CHANGED
@@ -1,6 +1,12 @@
1
+ ---
1
2
  language: ruby
3
+ env:
4
+ global:
5
+ DISABLE_AWS_CLIENT_CHECK: true
2
6
  matrix:
3
7
  include:
8
+ - rvm: 2.7.3
9
+ env: RUBYGEMS_VERSION=
4
10
  - rvm: 2.6.2
5
11
  env: RUBYGEMS_VERSION=
6
12
  - rvm: 2.5.3
data/README.md CHANGED
@@ -32,7 +32,7 @@ If you're starting on a fresh RSpec project, you can use awspec to generate your
32
32
 
33
33
  $ awspec init
34
34
 
35
- If you're working on an exisitng RSpec project, you will need to add the following lines to your `spec_helper.rb` file:
35
+ If you're working on an existing RSpec project, you will need to add the following lines to your `spec_helper.rb` file:
36
36
 
37
37
  ```ruby
38
38
  require 'awspec'
@@ -0,0 +1,14 @@
1
+ ### exist
2
+
3
+ ```ruby
4
+ describe eks_nodegroup('my-eks-nodegroup'), cluster: 'my-cluster' do
5
+ it { should exist }
6
+ end
7
+ ```
8
+ ### be_active, be_creating
9
+
10
+ ```ruby
11
+ describe eks('my-eks-nodegroup'), cluster: 'my-cluster' do
12
+ it { should be_active }
13
+ end
14
+ ```
@@ -98,6 +98,14 @@ describe s3_bucket('my-bucket') do
98
98
  end
99
99
  ```
100
100
 
101
+ ### have_location
102
+
103
+ ```ruby
104
+ describe s3_bucket('my-bucket') do
105
+ it { should have_location('us-east-1') }
106
+ end
107
+ ```
108
+
101
109
  ### have_logging_enabled
102
110
 
103
111
  ```ruby
@@ -34,6 +34,7 @@
34
34
  | [efs](#efs)
35
35
  | [eip](#eip)
36
36
  | [eks](#eks)
37
+ | [eks_nodegroup](#eks_nodegroup)
37
38
  | [elasticache](#elasticache)
38
39
  | [elasticache_cache_parameter_group](#elasticache_cache_parameter_group)
39
40
  | [elasticsearch](#elasticsearch)
@@ -272,7 +273,7 @@ end
272
273
 
273
274
  ### have_tag
274
275
 
275
- ### 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)
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)
276
277
  ### :unlock: Advanced use
277
278
 
278
279
  `ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
@@ -359,7 +360,7 @@ describe autoscaling_group('my-auto-scaling-group') do
359
360
  end
360
361
  ```
361
362
 
362
- ### 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(: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)
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)
363
364
  ## <a name="batch_compute_environment">batch_compute_environment</a>
364
365
 
365
366
  BatchComputeEnvironment resource type.
@@ -411,7 +412,7 @@ describe batch_job_definition('my-batch-job-definition') do
411
412
  end
412
413
  ```
413
414
 
414
- ### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags)
415
+ ### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags), its(:propagate_tags), its(:platform_capabilities)
415
416
  ## <a name="batch_job_queue">batch_job_queue</a>
416
417
 
417
418
  BatchJobQueue resource type.
@@ -743,7 +744,7 @@ describe codedeploy_deployment_group('my-codedeploy-deployment-group'), applicat
743
744
  end
744
745
  ```
745
746
 
746
- ### 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(: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)
747
+ ### 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)
747
748
  ## <a name="cognito_identity_pool">cognito_identity_pool</a>
748
749
 
749
750
  CognitoIdentityPool resource type.
@@ -931,7 +932,7 @@ end
931
932
  ```
932
933
 
933
934
 
934
- ### 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)
935
+ ### 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)
935
936
  ### :unlock: Advanced use
936
937
 
937
938
  `ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
@@ -1117,7 +1118,7 @@ end
1117
1118
  ```
1118
1119
 
1119
1120
 
1120
- ### 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)
1121
+ ### 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)
1121
1122
  ### :unlock: Advanced use
1122
1123
 
1123
1124
  `ec2` can use `Aws::EC2::Instance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html).
@@ -1213,7 +1214,7 @@ describe ecs_cluster('my-ecs-cluster') do
1213
1214
  end
1214
1215
  ```
1215
1216
 
1216
- ### its(:cluster_arn), its(:cluster_name), its(:status), its(:registered_container_instances_count), its(:running_tasks_count), its(:pending_tasks_count), its(:active_services_count), its(:statistics), its(:tags), its(:settings), its(:capacity_providers), its(:default_capacity_provider_strategy), its(:attachments), its(:attachments_status)
1217
+ ### its(:cluster_arn), its(:cluster_name), its(:configuration), its(:status), its(:registered_container_instances_count), its(:running_tasks_count), its(:pending_tasks_count), its(:active_services_count), its(:statistics), its(:tags), its(:settings), its(:capacity_providers), its(:default_capacity_provider_strategy), its(:attachments), its(:attachments_status)
1217
1218
  ## <a name="ecs_container_instance">ecs_container_instance</a>
1218
1219
 
1219
1220
  ECS Container Instance resource type.
@@ -1260,7 +1261,7 @@ describe ecs_service('my-ecs-service') do
1260
1261
  end
1261
1262
  ```
1262
1263
 
1263
- ### its(:service_arn), its(:service_name), its(:cluster_arn), its(:load_balancers), its(:service_registries), its(:status), its(:desired_count), its(:running_count), its(:pending_count), its(:launch_type), its(:capacity_provider_strategy), its(:platform_version), its(:task_definition), its(:task_sets), its(:role_arn), its(:created_at), its(:placement_constraints), its(:placement_strategy), its(:network_configuration), its(:health_check_grace_period_seconds), its(:scheduling_strategy), its(:deployment_controller), its(:tags), its(:created_by), its(:enable_ecs_managed_tags), its(:propagate_tags)
1264
+ ### its(:service_arn), its(:service_name), its(:cluster_arn), its(:load_balancers), its(:service_registries), its(:status), its(:desired_count), its(:running_count), its(:pending_count), its(:launch_type), its(:capacity_provider_strategy), its(:platform_version), its(:task_definition), its(:task_sets), its(:role_arn), its(:created_at), its(:placement_constraints), its(:placement_strategy), its(:network_configuration), its(:health_check_grace_period_seconds), its(:scheduling_strategy), its(:deployment_controller), its(:tags), its(:created_by), its(:enable_ecs_managed_tags), its(:propagate_tags), its(:enable_execute_command)
1264
1265
  ## <a name="ecs_task_definition">ecs_task_definition</a>
1265
1266
 
1266
1267
  ECS Task Definition resource type.
@@ -1282,7 +1283,7 @@ describe ecs_task_definition('my-ecs-task-definition') do
1282
1283
  end
1283
1284
  ```
1284
1285
 
1285
- ### its(:task_definition_arn), its(:family), its(:task_role_arn), its(:execution_role_arn), its(:network_mode), its(:revision), its(:volumes), its(:status), its(:requires_attributes), its(:placement_constraints), its(:compatibilities), its(:requires_compatibilities), its(:cpu), its(:memory), its(:inference_accelerators), its(:pid_mode), its(:ipc_mode), its(:proxy_configuration)
1286
+ ### its(:task_definition_arn), its(:family), its(:task_role_arn), its(:execution_role_arn), its(:network_mode), its(:revision), its(:volumes), its(:status), its(:requires_attributes), its(:placement_constraints), its(:compatibilities), its(:requires_compatibilities), its(:cpu), its(:memory), its(:inference_accelerators), its(:pid_mode), its(:ipc_mode), its(:proxy_configuration), its(:registered_at), its(:deregistered_at), its(:registered_by), its(:ephemeral_storage)
1286
1287
  ## <a name="efs">efs</a>
1287
1288
 
1288
1289
  EFS resource type.
@@ -1304,7 +1305,7 @@ describe efs('my-efs') do
1304
1305
  end
1305
1306
  ```
1306
1307
 
1307
- ### 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)
1308
+ ### 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)
1308
1309
  ## <a name="elastic_ip">elastic_ip</a>
1309
1310
 
1310
1311
  Elastic IP resource type.
@@ -1357,6 +1358,21 @@ end
1357
1358
  ```
1358
1359
 
1359
1360
  ### 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)
1361
+ ## <a name="eks_nodegroup">eks_nodegroup</a>
1362
+
1363
+ EksNodegroup resource type.
1364
+
1365
+ ### exist
1366
+
1367
+ ```ruby
1368
+ describe eks_nodegroup('my-eks-nodegroup'), cluster: 'my-cluster' do
1369
+ it { should exist }
1370
+ end
1371
+ ```
1372
+
1373
+ ### be_active, be_inactive
1374
+
1375
+ ### its(:nodegroup_name), its(:nodegroup_arn), its(:cluster_name), its(:version), its(:release_version), its(:created_at), its(:modified_at), its(:status), its(:capacity_type), its(:scaling_config), its(:instance_types), its(:subnets), its(:remote_access), its(:ami_type), its(:node_role), its(:labels), its(:taints), its(:resources), its(:disk_size), its(:health), its(:update_config), its(:launch_template), its(:tags)
1360
1376
  ## <a name="elasticache">elasticache</a>
1361
1377
 
1362
1378
  Elasticache resource type.
@@ -1425,7 +1441,7 @@ describe elasticache('my-rep-group-001') do
1425
1441
  end
1426
1442
  ```
1427
1443
 
1428
- ### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:preferred_outpost_arn), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_security_groups), its(:cache_subnet_group_name), its(:cache_nodes), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window), its(:auth_token_enabled), its(:auth_token_last_modified_date), its(:transit_encryption_enabled), its(:at_rest_encryption_enabled), its(:arn)
1444
+ ### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:preferred_outpost_arn), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_security_groups), its(:cache_subnet_group_name), its(:cache_nodes), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window), its(:auth_token_enabled), its(:auth_token_last_modified_date), its(:transit_encryption_enabled), its(:at_rest_encryption_enabled), its(:arn), its(:replication_group_log_delivery_enabled), its(:log_delivery_configurations)
1429
1445
  ## <a name="elasticache_cache_parameter_group">elasticache_cache_parameter_group</a>
1430
1446
 
1431
1447
  ElasticacheCacheParameterGroup resource type.
@@ -1504,7 +1520,7 @@ end
1504
1520
  ```
1505
1521
 
1506
1522
 
1507
- ### 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)
1523
+ ### 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)
1508
1524
  ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
1509
1525
 
1510
1526
  ElastictranscoderPipeline resource type.
@@ -1847,7 +1863,7 @@ describe iam_policy('my-iam-user') do
1847
1863
  end
1848
1864
  ```
1849
1865
 
1850
- ### its(:policy_name), its(:policy_id), its(:arn), its(:path), its(:default_version_id), its(:attachment_count), its(:permissions_boundary_usage_count), its(:is_attachable), its(:description), its(:create_date), its(:update_date)
1866
+ ### its(:policy_name), its(:policy_id), its(:arn), its(:path), its(:default_version_id), its(:attachment_count), its(:permissions_boundary_usage_count), its(:is_attachable), its(:description), its(:create_date), its(:update_date), its(:tags)
1851
1867
  ## <a name="iam_role">iam_role</a>
1852
1868
 
1853
1869
  IamRole resource type.
@@ -2162,7 +2178,7 @@ DOC
2162
2178
  end
2163
2179
  ```
2164
2180
 
2165
- ### 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(:encryption_algorithms), its(:signing_algorithms)
2181
+ ### 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(:encryption_algorithms), its(:signing_algorithms), its(:multi_region), its(:multi_region_configuration), its(:pending_deletion_window_in_days)
2166
2182
  ## <a name="lambda">lambda</a>
2167
2183
 
2168
2184
  Lambda resource type.
@@ -2211,7 +2227,7 @@ end
2211
2227
 
2212
2228
  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)).
2213
2229
 
2214
- ### 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)
2230
+ ### 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)
2215
2231
  ## <a name="launch_configuration">launch_configuration</a>
2216
2232
 
2217
2233
  LaunchConfiguration resource type.
@@ -2406,7 +2422,7 @@ end
2406
2422
  ```
2407
2423
 
2408
2424
 
2409
- ### its(:create_time), its(:delete_time), its(:failure_code), its(:failure_message), its(:nat_gateway_id), its(:provisioned_bandwidth), its(:state), its(:subnet_id), its(:vpc_id)
2425
+ ### its(:create_time), its(:delete_time), its(:failure_code), its(:failure_message), its(:nat_gateway_id), its(:provisioned_bandwidth), its(:state), its(:subnet_id), its(:vpc_id), its(:connectivity_type)
2410
2426
  ## <a name="network_acl">network_acl</a>
2411
2427
 
2412
2428
  NetworkAcl resource type.
@@ -2785,7 +2801,7 @@ end
2785
2801
  ```
2786
2802
 
2787
2803
 
2788
- ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:replica_mode), its(:license_model), its(:iops), its(: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)
2804
+ ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:replica_mode), its(:license_model), its(:iops), its(: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)
2789
2805
  ### :unlock: Advanced use
2790
2806
 
2791
2807
  `rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
@@ -2917,7 +2933,7 @@ describe redshift('my-redshift') do
2917
2933
  end
2918
2934
  ```
2919
2935
 
2920
- ### 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)
2936
+ ### 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)
2921
2937
  ## <a name="redshift_cluster_parameter_group">redshift_cluster_parameter_group</a>
2922
2938
 
2923
2939
  RedshiftClusterParameterGroup resource type.
@@ -3114,6 +3130,15 @@ end
3114
3130
  ```
3115
3131
 
3116
3132
 
3133
+ ### have_location
3134
+
3135
+ ```ruby
3136
+ describe s3_bucket('my-bucket') do
3137
+ it { should have_location('us-east-1') }
3138
+ end
3139
+ ```
3140
+
3141
+
3117
3142
  ### have_logging_enabled
3118
3143
 
3119
3144
  ```ruby
@@ -3233,7 +3258,7 @@ describe secretsmanager('my-secret') do
3233
3258
  end
3234
3259
  ```
3235
3260
 
3236
- ### its(:arn), its(:name), its(:description), its(:kms_key_id), its(:rotation_enabled), its(:rotation_lambda_arn), its(:last_rotated_date), its(:last_changed_date), its(:last_accessed_date), its(:deleted_date), its(:owning_service), its(:created_date)
3261
+ ### its(:arn), its(:name), its(:description), its(:kms_key_id), its(:rotation_enabled), its(:rotation_lambda_arn), its(:last_rotated_date), its(:last_changed_date), its(:last_accessed_date), its(:deleted_date), its(:owning_service), its(:created_date), its(:primary_region), its(:replication_status)
3237
3262
  ## <a name="security_group">security_group</a>
3238
3263
 
3239
3264
  SecurityGroup resource type.
@@ -51,7 +51,7 @@ module Awspec
51
51
  types_for_generate_all = %w(
52
52
  cloudwatch_alarm cloudwatch_event directconnect ebs efs
53
53
  elasticsearch iam_group iam_policy iam_role iam_user kms lambda
54
- acm cloudwatch_logs eip codebuild
54
+ acm cloudwatch_logs eip codebuild elasticache
55
55
  )
56
56
 
57
57
  types_for_generate_all.each do |type|
@@ -27,6 +27,7 @@ require 'awspec/generator/spec/cloudwatch_logs'
27
27
  require 'awspec/generator/spec/alb'
28
28
  require 'awspec/generator/spec/nlb'
29
29
  require 'awspec/generator/spec/internet_gateway'
30
+ require 'awspec/generator/spec/elasticache'
30
31
  require 'awspec/generator/spec/elasticsearch'
31
32
  require 'awspec/generator/spec/eip'
32
33
  require 'awspec/generator/spec/rds_db_parameter_group'
@@ -0,0 +1,19 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class EksNodegroup < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'EksNodegroup'
8
+ @type = Awspec::Type::EksNodegroup.new('my-eks-nodegroup')
9
+ @ret = @type.resource_via_client
10
+ @matchers = [
11
+ Awspec::Type::EksNodegroup::STATES.map { |state| 'be_' + state.downcase }.join(', ')
12
+ ]
13
+ @ignore_matchers = Awspec::Type::EksNodegroup::STATES.map { |state| 'be_' + state.downcase }
14
+ @describes = []
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,43 @@
1
+ module Awspec::Generator
2
+ module Spec
3
+ class Elasticache
4
+ include Awspec::Helper::Finder
5
+ def generate_all
6
+ opt = {}
7
+ clusters = []
8
+ loop do
9
+ res = elasticache_client.describe_cache_clusters(opt)
10
+ clusters.push(*res.cache_clusters)
11
+ break if res.marker.nil?
12
+ opt = { marker: res.marker }
13
+ end
14
+ raise 'Not Found Cache Clusters' if clusters.empty?
15
+ ERB.new(cache_clusters_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
16
+ end
17
+
18
+ def cache_clusters_spec_template
19
+ template = <<-'EOF'
20
+ <% clusters.each do |cluster| %>
21
+ describe elasticache('<%= cluster.cache_cluster_id %>') do
22
+ it { should exist }
23
+ it { should be_available }
24
+ it { should have_cache_parameter_group('<%= cluster.cache_parameter_group.cache_parameter_group_name %>') }
25
+ it { should belong_to_cache_subnet_group('<%= cluster.cache_subnet_group_name %>') }
26
+ <% unless cluster.replication_group_id.nil? %>
27
+ its(:replication_group_id) { should eq '<%= cluster.replication_group_id %>' }
28
+ <% end %>
29
+ its(:engine) { should eq '<%= cluster.engine %>' }
30
+ its(:engine_version) { should eq '<%= cluster.engine_version %>' }
31
+ its(:cache_node_type) { should eq '<%= cluster.cache_node_type %>' }
32
+ <% unless cluster.snapshot_retention_limit.nil? %>
33
+ its(:snapshot_retention_limit) { should eq <%= cluster.snapshot_retention_limit %> }
34
+ its(:snapshot_window) { should eq '<%= cluster.snapshot_window %>' }
35
+ <% end %>
36
+ end
37
+ <% end %>
38
+ EOF
39
+ template
40
+ end
41
+ end
42
+ end
43
+ end
@@ -11,7 +11,7 @@ module Awspec::Generator
11
11
  group_name: group.group_name,
12
12
  policy_name: policy_name
13
13
  })
14
- document = JSON.generate(JSON.parse(URI.decode(res.policy_document)))
14
+ document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
15
15
  "it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
16
16
  end
17
17
  content = ERB.new(iam_group_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
@@ -11,7 +11,7 @@ module Awspec::Generator
11
11
  role_name: role.role_name,
12
12
  policy_name: policy_name
13
13
  })
14
- document = JSON.generate(JSON.parse(URI.decode(res.policy_document)))
14
+ document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
15
15
  "it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
16
16
  end
17
17
  content = ERB.new(iam_role_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
@@ -11,7 +11,7 @@ module Awspec::Generator
11
11
  user_name: user.user_name,
12
12
  policy_name: policy_name
13
13
  })
14
- document = JSON.generate(JSON.parse(URI.decode(res.policy_document)))
14
+ document = JSON.generate(JSON.parse(URI.decode_www_form_component(res.policy_document)))
15
15
  "it { should have_inline_policy('#{policy_name}').policy_document('#{document}') }"
16
16
  end
17
17
  content = ERB.new(iam_user_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
@@ -102,6 +102,9 @@ describe s3_bucket('<%= bucket.name %>') do
102
102
  <%= line %>
103
103
  <% end %>
104
104
  <%- end -%>
105
+ <%- if location -%>
106
+ it { should have_location('<%= location %>') }
107
+ <%- end -%>
105
108
  end
106
109
  EOF
107
110
  template
@@ -117,6 +120,7 @@ EOF
117
120
  bucket_policy = policy.policy.read if policy
118
121
  lifecycle_rule = find_bucket_lifecycle_configuration(bucket.name)
119
122
  lifecycle_specs = generate_lifecycle_rule_specs(lifecycle_rule) if lifecycle_rule
123
+ location = find_bucket_location(bucket.name)
120
124
  ERB.new(bucket_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
121
125
  end
122
126
  end
@@ -166,6 +166,12 @@ module Awspec::Helper
166
166
  http_wire_trace: ENV['http_wire_trace'] || false
167
167
  }
168
168
 
169
+ check_configuration = ENV['DISABLE_AWS_CLIENT_CHECK'] != 'true' if ENV.key?('DISABLE_AWS_CLIENT_CHECK')
170
+
171
+ # define_method below will "hide" any exception that comes from bad
172
+ # setup of AWS client, so let's try first to create a instance
173
+ Awsecrets.load if check_configuration
174
+
169
175
  CLIENTS.each do |method_name, client|
170
176
  define_method method_name do
171
177
  unless self.methods.include? "@#{method_name}"
@@ -7,15 +7,16 @@ module Awspec::Helper
7
7
  res = ec2_client.describe_instances({
8
8
  instance_ids: [id]
9
9
  })
10
- rescue
11
- # Aws::EC2::Errors::InvalidInstanceIDMalformed
12
- # Aws::EC2::Errors::InvalidInstanceIDNotFound
10
+ rescue Aws::EC2::Errors::InvalidInstanceIDNotFound, Aws::EC2::Errors::InvalidInstanceIDMalformed => e
13
11
  res = ec2_client.describe_instances({
14
12
  filters: [{ name: 'tag:Name', values: [id] }]
15
13
  })
16
14
  end
17
15
  # rubocop:enable Style/GuardClause
18
- if res.reservations.count == 1
16
+
17
+ if res.reservations.count == 0
18
+ nil
19
+ elsif res.reservations.count == 1
19
20
  res.reservations.first.instances.single_resource(id)
20
21
  elsif res.reservations.count > 1
21
22
  raise Awspec::DuplicatedResourceTypeError, "Duplicate instances matching id or tag #{id}"
@@ -5,6 +5,11 @@ module Awspec::Helper
5
5
  res = eks_client.describe_cluster({ name: name })
6
6
  res.cluster
7
7
  end
8
+
9
+ def find_eks_nodegroup(cluster_name, group_name)
10
+ res = eks_client.describe_nodegroup({ cluster_name: cluster_name, nodegroup_name: group_name })
11
+ res.nodegroup
12
+ end
8
13
  end
9
14
  end
10
15
  end
@@ -35,6 +35,17 @@ module Awspec::Helper
35
35
  nil
36
36
  end
37
37
 
38
+ def find_bucket_location(id)
39
+ bucket_location = s3_client.get_bucket_location(bucket: id)
40
+ if bucket_location.location_constraint.nil? || bucket_location.location_constraint.empty?
41
+ 'us-east-1'
42
+ else
43
+ bucket_location.location_constraint
44
+ end
45
+ rescue Aws::S3::Errors::ServiceError
46
+ nil
47
+ end
48
+
38
49
  def find_bucket_logging(id)
39
50
  s3_client.get_bucket_logging(bucket: id)
40
51
  rescue Aws::S3::Errors::ServiceError
@@ -0,0 +1,16 @@
1
+ module Awspec::Helper
2
+ module States
3
+ EC2_STATES = %w(pending running shutting-down terminated stopping stopped)
4
+
5
+ def self.ec2_states_checks
6
+ Enumerator.new do |yielder|
7
+ n = 0
8
+ while n < EC2_STATES.size
9
+ method_name = EC2_STATES[n].tr('-', '_') + '?'
10
+ yielder.yield(method_name, EC2_STATES[n])
11
+ n += 1
12
+ end
13
+ end.lazy
14
+ end
15
+ end
16
+ end
@@ -12,7 +12,7 @@ module Awspec
12
12
  batch_compute_environment batch_job_definition batch_job_queue cloudtrail
13
13
  cloudwatch_alarm cloudwatch_event directconnect_virtual_interface
14
14
  ebs ec2 ecr_repository ecs_cluster ecs_container_instance ecs_service ecs_task_definition
15
- efs eks elasticache elasticache_cache_parameter_group elasticsearch elb emr firehose iam_group
15
+ efs eks eks_nodegroup elasticache elasticache_cache_parameter_group elasticsearch elb emr firehose iam_group
16
16
  iam_policy iam_role iam_user kinesis kms lambda launch_configuration launch_template mq nat_gateway
17
17
  network_acl network_interface nlb nlb_listener nlb_target_group
18
18
  rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
@@ -0,0 +1,7 @@
1
+ Aws.config[:ec2] = {
2
+ stub_responses: {
3
+ describe_instances: {
4
+ reservations: []
5
+ }
6
+ }
7
+ }
@@ -0,0 +1,16 @@
1
+ Aws.config[:eks] = {
2
+ stub_responses: {
3
+ describe_nodegroup: {
4
+ nodegroup: {
5
+ version: '1.17',
6
+ release_version: '1.17.12-20210322',
7
+ cluster_name: 'my-cluster',
8
+ nodegroup_name: 'my-nodegroup',
9
+ nodegroup_arn: 'arn:aws:eks:us-west-2:012345678910:nodegroup/my-cluster/my-nodegroup/08bd000a',
10
+ created_at: Time.parse('2018-10-28 00:23:32 -0400'),
11
+ node_role: 'arn:aws:iam::012345678910:role/eks-nodegroup-role',
12
+ status: 'ACTIVE'
13
+ }
14
+ }
15
+ }
16
+ }
@@ -119,6 +119,9 @@ Aws.config[:s3] = {
119
119
  }
120
120
  ]
121
121
  },
122
+ get_bucket_location: {
123
+ location_constraint: 'ap-northeast-1'
124
+ },
122
125
  get_bucket_encryption: {
123
126
  server_side_encryption_configuration: {
124
127
  rules: [
@@ -1,3 +1,5 @@
1
+ require 'awspec/helper/states'
2
+
1
3
  module Awspec::Type
2
4
  class Ec2 < ResourceBase
3
5
  aws_resource Aws::EC2::Instance
@@ -8,6 +10,16 @@ module Awspec::Type
8
10
  @display_name = name
9
11
  end
10
12
 
13
+ # required by Awspec::Generator::Doc::Type
14
+ STATES = Awspec::Helper::States::EC2_STATES
15
+
16
+ Awspec::Helper::States.ec2_states_checks.each do |method_name, state|
17
+ define_method method_name do
18
+ check_existence
19
+ resource_via_client.state.name == state
20
+ end
21
+ end
22
+
11
23
  def resource_via_client
12
24
  @resource_via_client ||= find_ec2(@display_name)
13
25
  end
@@ -17,20 +29,10 @@ module Awspec::Type
17
29
  end
18
30
 
19
31
  def security_group_count
32
+ check_existence
20
33
  resource_via_client.security_groups.count
21
34
  end
22
35
 
23
- STATES = %w(
24
- pending running shutting-down
25
- terminated stopping stopped
26
- )
27
-
28
- STATES.each do |state|
29
- define_method state.tr('-', '_') + '?' do
30
- resource_via_client.state.name == state
31
- end
32
- end
33
-
34
36
  def disabled_api_termination?
35
37
  ret = find_ec2_attribute(id, 'disableApiTermination')
36
38
  ret.disable_api_termination.value
@@ -48,7 +50,6 @@ module Awspec::Type
48
50
 
49
51
  def has_security_groups?(sg_ids)
50
52
  return true if match_group_ids?(sg_ids) || match_group_names?(sg_ids)
51
-
52
53
  group_ids = resource_security_groups.map { |sg| sg.group_id }
53
54
  tags = select_security_group_by_group_id(group_ids).map { |sg| sg.tags }.flatten
54
55
  group_names = tags.select { |tag| tag.key == 'Name' }.map { |tag| tag.value }
@@ -56,6 +57,7 @@ module Awspec::Type
56
57
  end
57
58
 
58
59
  def has_security_group?(sg_id)
60
+ check_existence
59
61
  sgs = resource_via_client.security_groups
60
62
  ret = sgs.find do |sg|
61
63
  sg.group_id == sg_id || sg.group_name == sg_id
@@ -69,12 +71,14 @@ module Awspec::Type
69
71
  end
70
72
 
71
73
  def has_iam_instance_profile?(iam_instance_profile_name)
74
+ check_existence
72
75
  iam = resource_via_client.iam_instance_profile
73
76
  ret = iam.arn.split('/').last == iam_instance_profile_name
74
77
  return true if ret
75
78
  end
76
79
 
77
80
  def has_ebs?(volume_id)
81
+ check_existence
78
82
  blocks = resource_via_client.block_device_mappings
79
83
  ret = blocks.find do |block|
80
84
  next false unless block.ebs
@@ -89,8 +93,9 @@ module Awspec::Type
89
93
 
90
94
  def has_network_interface?(network_interface_id, device_index = nil)
91
95
  res = find_network_interface(network_interface_id)
96
+ check_existence
92
97
  interfaces = resource_via_client.network_interfaces
93
- interfaces.find do |interface|
98
+ ret = interfaces.find do |interface|
94
99
  next false if device_index && interface.attachment.device_index != device_index
95
100
  interface.network_interface_id == res.network_interface_id
96
101
  end
@@ -98,7 +103,7 @@ module Awspec::Type
98
103
 
99
104
  def has_event?(event_code)
100
105
  status = find_ec2_status(id)
101
- status.events.find do |event|
106
+ ret = status.events.find do |event|
102
107
  event.code == event_code
103
108
  end
104
109
  end
@@ -133,8 +138,7 @@ module Awspec::Type
133
138
  end
134
139
 
135
140
  def has_credit_specification?(cpu_credits)
136
- ret = find_ec2_credit_specifications(id)
137
- ret.cpu_credits == cpu_credits
141
+ find_ec2_credit_specifications(id).cpu_credits == cpu_credits
138
142
  end
139
143
 
140
144
  private
@@ -148,6 +152,7 @@ module Awspec::Type
148
152
  end
149
153
 
150
154
  def resource_security_groups
155
+ check_existence
151
156
  resource_via_client.security_groups
152
157
  end
153
158
  end
@@ -0,0 +1,30 @@
1
+ module Awspec::Type
2
+ class EksNodegroup < ResourceBase
3
+ attr_accessor :cluster
4
+
5
+ def initialize(group_name)
6
+ super
7
+ @group_name = group_name
8
+ end
9
+
10
+ def resource_via_client
11
+ @resource_via_client ||= find_eks_nodegroup(cluster, @group_name)
12
+ end
13
+
14
+ def id
15
+ @id ||= resource_via_client.nodegroup_arn if resource_via_client
16
+ end
17
+
18
+ def cluster
19
+ @cluster || 'default'
20
+ end
21
+
22
+ STATES = %w(ACTIVE INACTIVE)
23
+
24
+ STATES.each do |state|
25
+ define_method state.downcase + '?' do
26
+ resource_via_client.status == state
27
+ end
28
+ end
29
+ end
30
+ end
@@ -34,7 +34,7 @@ module Awspec::Type
34
34
  group_name: id,
35
35
  policy_name: policy_name
36
36
  })
37
- return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
37
+ return JSON.parse(URI.decode_www_form_component(res.policy_document)) == JSON.parse(document) if document
38
38
  res
39
39
  end
40
40
 
@@ -24,7 +24,7 @@ module Awspec::Type
24
24
  role_name: resource_via_client.role_name,
25
25
  policy_name: policy_name
26
26
  })
27
- return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
27
+ return JSON.parse(URI.decode_www_form_component(res.policy_document)) == JSON.parse(document) if document
28
28
  res
29
29
  end
30
30
 
@@ -24,7 +24,7 @@ module Awspec::Type
24
24
  user_name: resource_via_client.user_name,
25
25
  policy_name: policy_name
26
26
  })
27
- return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
27
+ return JSON.parse(URI.decode_www_form_component(res.policy_document)) == JSON.parse(document) if document
28
28
  res
29
29
  end
30
30
 
@@ -14,7 +14,7 @@ module Awspec::Type
14
14
 
15
15
  def has_key_policy?(policy_name, document = nil)
16
16
  res = kms_client.get_key_policy(key_id: id, policy_name: policy_name)
17
- return JSON.parse(URI.decode(res.policy)) == JSON.parse(document) if document
17
+ return JSON.parse(URI.decode_www_form_component(res.policy)) == JSON.parse(document) if document
18
18
  res
19
19
  end
20
20
  end
@@ -24,6 +24,11 @@ module Awspec::Type
24
24
  end
25
25
  end
26
26
 
27
+ def has_location?(location)
28
+ check_existence
29
+ find_bucket_location(id) == location
30
+ end
31
+
27
32
  def acl_owner
28
33
  check_existence
29
34
  @acl = find_bucket_acl(id)
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '1.22.1'
2
+ VERSION = '1.24.3'
3
3
  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.22.1
4
+ version: 1.24.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-17 00:00:00.000000000 Z
11
+ date: 2021-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -266,6 +266,7 @@ files:
266
266
  - doc/_resource_types/efs.md
267
267
  - doc/_resource_types/eip.md
268
268
  - doc/_resource_types/eks.md
269
+ - doc/_resource_types/eks_nodegroup.md
269
270
  - doc/_resource_types/elasticache.md
270
271
  - doc/_resource_types/elasticache_cache_parameter_group.md
271
272
  - doc/_resource_types/elasticsearch.md
@@ -370,6 +371,7 @@ files:
370
371
  - lib/awspec/generator/doc/type/efs.rb
371
372
  - lib/awspec/generator/doc/type/eip.rb
372
373
  - lib/awspec/generator/doc/type/eks.rb
374
+ - lib/awspec/generator/doc/type/eks_nodegroup.rb
373
375
  - lib/awspec/generator/doc/type/elasticache.rb
374
376
  - lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb
375
377
  - lib/awspec/generator/doc/type/elasticsearch.rb
@@ -433,6 +435,7 @@ files:
433
435
  - lib/awspec/generator/spec/ec2.rb
434
436
  - lib/awspec/generator/spec/efs.rb
435
437
  - lib/awspec/generator/spec/eip.rb
438
+ - lib/awspec/generator/spec/elasticache.rb
436
439
  - lib/awspec/generator/spec/elasticsearch.rb
437
440
  - lib/awspec/generator/spec/elb.rb
438
441
  - lib/awspec/generator/spec/iam_group.rb
@@ -516,6 +519,7 @@ files:
516
519
  - lib/awspec/helper/finder/vpc_endpoints.rb
517
520
  - lib/awspec/helper/finder/waf.rb
518
521
  - lib/awspec/helper/finder/wafregional.rb
522
+ - lib/awspec/helper/states.rb
519
523
  - lib/awspec/helper/type.rb
520
524
  - lib/awspec/matcher.rb
521
525
  - lib/awspec/matcher/be_allowed.rb
@@ -591,6 +595,7 @@ files:
591
595
  - lib/awspec/stub/ebs.rb
592
596
  - lib/awspec/stub/ec2.rb
593
597
  - lib/awspec/stub/ec2_has_multi_security_groups.rb
598
+ - lib/awspec/stub/ec2_non_existing.rb
594
599
  - lib/awspec/stub/ecr_repository.rb
595
600
  - lib/awspec/stub/ecs.rb
596
601
  - lib/awspec/stub/ecs_cluster.rb
@@ -600,6 +605,7 @@ files:
600
605
  - lib/awspec/stub/efs.rb
601
606
  - lib/awspec/stub/eip.rb
602
607
  - lib/awspec/stub/eks.rb
608
+ - lib/awspec/stub/eks_nodegroup.rb
603
609
  - lib/awspec/stub/elasticache.rb
604
610
  - lib/awspec/stub/elasticache_cache_parameter_group.rb
605
611
  - lib/awspec/stub/elasticsearch.rb
@@ -687,6 +693,7 @@ files:
687
693
  - lib/awspec/type/efs.rb
688
694
  - lib/awspec/type/eip.rb
689
695
  - lib/awspec/type/eks.rb
696
+ - lib/awspec/type/eks_nodegroup.rb
690
697
  - lib/awspec/type/elasticache.rb
691
698
  - lib/awspec/type/elasticache_cache_parameter_group.rb
692
699
  - lib/awspec/type/elasticsearch.rb
@@ -743,7 +750,7 @@ homepage: https://github.com/k1LoW/awspec
743
750
  licenses:
744
751
  - MIT
745
752
  metadata: {}
746
- post_install_message:
753
+ post_install_message:
747
754
  rdoc_options: []
748
755
  require_paths:
749
756
  - lib
@@ -758,8 +765,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
758
765
  - !ruby/object:Gem::Version
759
766
  version: '0'
760
767
  requirements: []
761
- rubygems_version: 3.0.3
762
- signing_key:
768
+ rubygems_version: 3.1.4
769
+ signing_key:
763
770
  specification_version: 4
764
771
  summary: RSpec tests for your AWS resources.
765
772
  test_files: []