awspec 1.18.2 → 1.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +23 -0
- data/awspec.gemspec +1 -1
- data/doc/resource_types.md +20 -20
- data/lib/awspec.rb +1 -0
- data/lib/awspec/config.rb +41 -0
- data/lib/awspec/error.rb +4 -0
- data/lib/awspec/generator/spec/route53_hosted_zone.rb +13 -1
- data/lib/awspec/helper/client_wrap.rb +7 -4
- data/lib/awspec/helper/finder/cloudfront.rb +4 -1
- data/lib/awspec/helper/finder/cloudwatch.rb +4 -1
- data/lib/awspec/helper/finder/ebs.rb +4 -1
- data/lib/awspec/helper/finder/elastictranscoder.rb +4 -1
- data/lib/awspec/helper/finder/iam.rb +10 -2
- data/lib/awspec/helper/finder/lambda.rb +4 -1
- data/lib/awspec/helper/finder/rds.rb +5 -1
- data/lib/awspec/helper/finder/redshift.rb +5 -1
- data/lib/awspec/helper/finder/route53.rb +12 -2
- data/lib/awspec/type/elasticache_cache_parameter_group.rb +5 -1
- data/lib/awspec/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb0f0d41e833307fa113f79242db844f92839b8957cda778037099ae996fd07e
|
4
|
+
data.tar.gz: ef50e4986fb63cfbb75cf7227b34c524864e0728c51d0e56ab5bf4f5dc671051
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1073d5248b672be4cfeea40672c2f06ade383bc1ea402d952183f906ed6d32241754c126a542ed30f5bd2d16083fbfe98810db03ec96b1f3689e7878ca71dd86
|
7
|
+
data.tar.gz: 74ca0db14930a8ebe0a5de40c1631800a88be27ee9cc4efdd0f8f667eca514073e8673a1176bfcf6b0678729c904c83055b082f3bf53472d738938f15f1af68d
|
data/README.md
CHANGED
@@ -151,6 +151,29 @@ $ awspec generate ec2 vpc-ab123cde --profile mycreds
|
|
151
151
|
$ AWS_PROFILE=mycreds bundle exec rake spec
|
152
152
|
```
|
153
153
|
|
154
|
+
### Advanced Tips: Configuring the AWS client retries
|
155
|
+
|
156
|
+
The [`ClientWrap` class](https://github.com/k1LoW/awspec/blob/master/lib/awspec/helper/client_wrap.rb)
|
157
|
+
provides mechanisms for retrying AWS API calls when it receives a
|
158
|
+
`RequestLimitExceeded` error. `ClientWrap` implements a backoff algorithm
|
159
|
+
where the client will sleep for successively longer periods of time until the
|
160
|
+
algorithm has calculated a backoff greater than or equal to the
|
161
|
+
`backoff_limit`, at which point it will give up and re-raise the error. You
|
162
|
+
can see the full implementation in `ClientWrap#method_missing`.
|
163
|
+
|
164
|
+
You can configure this retry and backoff logic in your `spec_helper.rb`:
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
require 'awspec'
|
168
|
+
|
169
|
+
# These are the defaults, but you can change them.
|
170
|
+
Awspec.configure do |config|
|
171
|
+
config.client_backoff 0.0
|
172
|
+
config.client_backoff_limit 30
|
173
|
+
config.client_iteration 1
|
174
|
+
end
|
175
|
+
```
|
176
|
+
|
154
177
|
## Support AWS Resources
|
155
178
|
|
156
179
|
[Resource Types information here](doc/resource_types.md)
|
data/awspec.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_runtime_dependency 'rspec-its'
|
30
30
|
spec.add_runtime_dependency 'term-ansicolor'
|
31
31
|
spec.add_runtime_dependency 'thor'
|
32
|
-
spec.add_development_dependency 'bundler', '>= 1.9', '<
|
32
|
+
spec.add_development_dependency 'bundler', '>= 1.9', '< 3.0'
|
33
33
|
spec.add_development_dependency 'octorelease'
|
34
34
|
spec.add_development_dependency 'pry'
|
35
35
|
spec.add_development_dependency 'rake', '~> 12.0'
|
data/doc/resource_types.md
CHANGED
@@ -346,7 +346,7 @@ describe autoscaling_group('my-auto-scaling-group') do
|
|
346
346
|
end
|
347
347
|
```
|
348
348
|
|
349
|
-
### 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)
|
349
|
+
### 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)
|
350
350
|
## <a name="batch_compute_environment">batch_compute_environment</a>
|
351
351
|
|
352
352
|
BatchComputeEnvironment resource type.
|
@@ -574,7 +574,7 @@ describe cloudtrail('my-trail') do
|
|
574
574
|
end
|
575
575
|
```
|
576
576
|
|
577
|
-
### its(:name), its(:s3_bucket_name), its(:s3_key_prefix), its(:sns_topic_name), its(:sns_topic_arn), its(:include_global_service_events), its(:is_multi_region_trail), its(:home_region), its(:trail_arn), its(:log_file_validation_enabled), its(:cloud_watch_logs_log_group_arn), its(:cloud_watch_logs_role_arn), its(:kms_key_id), its(:has_custom_event_selectors), its(:is_organization_trail)
|
577
|
+
### its(:name), its(:s3_bucket_name), its(:s3_key_prefix), its(:sns_topic_name), its(:sns_topic_arn), its(:include_global_service_events), its(:is_multi_region_trail), its(:home_region), its(:trail_arn), its(:log_file_validation_enabled), its(:cloud_watch_logs_log_group_arn), its(:cloud_watch_logs_role_arn), its(:kms_key_id), its(:has_custom_event_selectors), its(:has_insight_selectors), its(:is_organization_trail)
|
578
578
|
## <a name="cloudwatch_alarm">cloudwatch_alarm</a>
|
579
579
|
|
580
580
|
CloudwatchAlarm resource type.
|
@@ -762,7 +762,7 @@ end
|
|
762
762
|
```
|
763
763
|
|
764
764
|
|
765
|
-
### its(:bgp_asn), its(:customer_gateway_id), its(:ip_address), its(:certificate_arn), its(:state), its(:type), its(:tags)
|
765
|
+
### its(:bgp_asn), its(:customer_gateway_id), its(:ip_address), its(:certificate_arn), its(:state), its(:type), its(:device_name), its(:tags)
|
766
766
|
## <a name="directconnect_virtual_interface">directconnect_virtual_interface</a>
|
767
767
|
|
768
768
|
DirectconnectVirtualInterface resource type.
|
@@ -834,7 +834,7 @@ end
|
|
834
834
|
```
|
835
835
|
|
836
836
|
|
837
|
-
### its(:table_name), its(:table_status), its(:creation_date_time), its(:table_size_bytes), its(:item_count), its(:table_arn), its(:table_id), its(:billing_mode_summary), its(:local_secondary_indexes), its(:global_secondary_indexes), its(:stream_specification), its(:latest_stream_label), its(:latest_stream_arn), its(:restore_summary), its(:sse_description)
|
837
|
+
### its(:table_name), its(:table_status), its(:creation_date_time), its(:table_size_bytes), its(:item_count), its(:table_arn), its(:table_id), its(:billing_mode_summary), its(:local_secondary_indexes), its(:global_secondary_indexes), its(:stream_specification), its(:latest_stream_label), its(:latest_stream_arn), its(:global_table_version), its(:replicas), its(:restore_summary), its(:sse_description), its(:archival_summary)
|
838
838
|
### :unlock: Advanced use
|
839
839
|
|
840
840
|
`dynamodb_table` can use `Aws::DynamoDB::Table` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Table.html).
|
@@ -894,7 +894,7 @@ end
|
|
894
894
|
```
|
895
895
|
|
896
896
|
|
897
|
-
### its(:availability_zone), its(:create_time), its(:encrypted), its(:kms_key_id), its(:size), its(:snapshot_id), its(:state), its(:volume_id), its(:iops), its(:volume_type)
|
897
|
+
### 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)
|
898
898
|
### :unlock: Advanced use
|
899
899
|
|
900
900
|
`ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
|
@@ -1080,7 +1080,7 @@ end
|
|
1080
1080
|
```
|
1081
1081
|
|
1082
1082
|
|
1083
|
-
### 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(: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)
|
1083
|
+
### 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)
|
1084
1084
|
### :unlock: Advanced use
|
1085
1085
|
|
1086
1086
|
`ec2` can use `Aws::EC2::Instance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html).
|
@@ -1176,7 +1176,7 @@ describe ecs_cluster('my-ecs-cluster') do
|
|
1176
1176
|
end
|
1177
1177
|
```
|
1178
1178
|
|
1179
|
-
### 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)
|
1179
|
+
### 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)
|
1180
1180
|
## <a name="ecs_container_instance">ecs_container_instance</a>
|
1181
1181
|
|
1182
1182
|
ECS Container Instance resource type.
|
@@ -1201,7 +1201,7 @@ end
|
|
1201
1201
|
```
|
1202
1202
|
|
1203
1203
|
|
1204
|
-
### its(:container_instance_arn), its(:ec2_instance_id), its(:version), its(:version_info), its(:status), its(:status_reason), its(:agent_connected), its(:running_tasks_count), its(:pending_tasks_count), its(:agent_update_status), its(:attributes), its(:registered_at), its(:attachments), its(:tags)
|
1204
|
+
### its(:container_instance_arn), its(:ec2_instance_id), its(:capacity_provider_name), its(:version), its(:version_info), its(:status), its(:status_reason), its(:agent_connected), its(:running_tasks_count), its(:pending_tasks_count), its(:agent_update_status), its(:attributes), its(:registered_at), its(:attachments), its(:tags)
|
1205
1205
|
## <a name="ecs_service">ecs_service</a>
|
1206
1206
|
|
1207
1207
|
ECS Service resource type.
|
@@ -1223,7 +1223,7 @@ describe ecs_service('my-ecs-service') do
|
|
1223
1223
|
end
|
1224
1224
|
```
|
1225
1225
|
|
1226
|
-
### 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(: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)
|
1226
|
+
### 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)
|
1227
1227
|
## <a name="ecs_task_definition">ecs_task_definition</a>
|
1228
1228
|
|
1229
1229
|
ECS Task Definition resource type.
|
@@ -1245,7 +1245,7 @@ describe ecs_task_definition('my-ecs-task-definition') do
|
|
1245
1245
|
end
|
1246
1246
|
```
|
1247
1247
|
|
1248
|
-
### 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(:pid_mode), its(:ipc_mode), its(:proxy_configuration)
|
1248
|
+
### 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)
|
1249
1249
|
## <a name="efs">efs</a>
|
1250
1250
|
|
1251
1251
|
EFS resource type.
|
@@ -1388,7 +1388,7 @@ describe elasticache('my-rep-group-001') do
|
|
1388
1388
|
end
|
1389
1389
|
```
|
1390
1390
|
|
1391
|
-
### 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(: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(:transit_encryption_enabled), its(:at_rest_encryption_enabled)
|
1391
|
+
### 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(: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)
|
1392
1392
|
## <a name="elasticache_cache_parameter_group">elasticache_cache_parameter_group</a>
|
1393
1393
|
|
1394
1394
|
ElasticacheCacheParameterGroup resource type.
|
@@ -1467,7 +1467,7 @@ end
|
|
1467
1467
|
```
|
1468
1468
|
|
1469
1469
|
|
1470
|
-
### 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)
|
1470
|
+
### 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)
|
1471
1471
|
## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
|
1472
1472
|
|
1473
1473
|
ElastictranscoderPipeline resource type.
|
@@ -1612,7 +1612,7 @@ describe emr('my-emr') do
|
|
1612
1612
|
end
|
1613
1613
|
```
|
1614
1614
|
|
1615
|
-
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), 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)
|
1615
|
+
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), 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(:step_concurrency_level), its(:outpost_arn)
|
1616
1616
|
## <a name="firehose">firehose</a>
|
1617
1617
|
|
1618
1618
|
Firehose resource type.
|
@@ -1648,7 +1648,7 @@ end
|
|
1648
1648
|
```
|
1649
1649
|
|
1650
1650
|
|
1651
|
-
### its(:delivery_stream_name), its(:delivery_stream_arn), its(:delivery_stream_status), its(:delivery_stream_encryption_configuration), its(:delivery_stream_type), its(:version_id), its(:create_timestamp), its(:last_update_timestamp), its(:source), its(:has_more_destinations)
|
1651
|
+
### its(:delivery_stream_name), its(:delivery_stream_arn), its(:delivery_stream_status), its(:failure_description), its(:delivery_stream_encryption_configuration), its(:delivery_stream_type), its(:version_id), its(:create_timestamp), its(:last_update_timestamp), its(:source), its(:has_more_destinations)
|
1652
1652
|
### :unlock: Advanced use
|
1653
1653
|
|
1654
1654
|
```ruby
|
@@ -1880,7 +1880,7 @@ end
|
|
1880
1880
|
```
|
1881
1881
|
|
1882
1882
|
|
1883
|
-
### its(:path), its(:role_name), its(:role_id), its(:arn), its(:create_date), its(:assume_role_policy_document), its(:description), its(:max_session_duration), its(:permissions_boundary), its(:tags)
|
1883
|
+
### its(:path), its(:role_name), its(:role_id), its(:arn), its(:create_date), its(:assume_role_policy_document), its(:description), its(:max_session_duration), its(:permissions_boundary), its(:tags), its(:role_last_used)
|
1884
1884
|
### :unlock: Advanced use
|
1885
1885
|
|
1886
1886
|
`iam_role` can use `Aws::IAM::Role` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/IAM/Role.html).
|
@@ -2125,7 +2125,7 @@ DOC
|
|
2125
2125
|
end
|
2126
2126
|
```
|
2127
2127
|
|
2128
|
-
### 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)
|
2128
|
+
### 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)
|
2129
2129
|
## <a name="lambda">lambda</a>
|
2130
2130
|
|
2131
2131
|
Lambda resource type.
|
@@ -2174,7 +2174,7 @@ end
|
|
2174
2174
|
|
2175
2175
|
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)).
|
2176
2176
|
|
2177
|
-
### 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)
|
2177
|
+
### 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)
|
2178
2178
|
## <a name="launch_configuration">launch_configuration</a>
|
2179
2179
|
|
2180
2180
|
LaunchConfiguration resource type.
|
@@ -2296,7 +2296,7 @@ describe mq('my-mq') do
|
|
2296
2296
|
end
|
2297
2297
|
```
|
2298
2298
|
|
2299
|
-
### its(:vpc_id), 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(:pending_engine_version), its(:
|
2299
|
+
### its(:vpc_id), 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(:pending_engine_version), its(:pending_host_instance_type), its(:pending_security_groups), its(:publicly_accessible), its(:security_groups), its(:storage_type), its(:subnet_ids)
|
2300
2300
|
## <a name="nat_gateway">nat_gateway</a>
|
2301
2301
|
|
2302
2302
|
NatGateway resource type.
|
@@ -2496,7 +2496,7 @@ describe network_interface('eni-12ab3cde') do
|
|
2496
2496
|
end
|
2497
2497
|
```
|
2498
2498
|
|
2499
|
-
### its(:association), its(:availability_zone), its(:description), its(:interface_type), its(:ipv_6_addresses), its(:mac_address), its(:network_interface_id), its(:owner_id), its(:private_dns_name), its(:private_ip_address), its(:requester_id), its(:requester_managed), its(:source_dest_check), its(:status), its(:subnet_id), its(:vpc_id)
|
2499
|
+
### its(:association), its(:availability_zone), its(:description), its(:interface_type), its(:ipv_6_addresses), its(:mac_address), its(:network_interface_id), its(:outpost_arn), its(:owner_id), its(:private_dns_name), its(:private_ip_address), its(:requester_id), its(:requester_managed), its(:source_dest_check), its(:status), its(:subnet_id), its(:vpc_id)
|
2500
2500
|
## <a name="nlb">nlb</a>
|
2501
2501
|
|
2502
2502
|
NLB resource type.
|
@@ -3425,7 +3425,7 @@ end
|
|
3425
3425
|
```
|
3426
3426
|
|
3427
3427
|
|
3428
|
-
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn)
|
3428
|
+
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn), its(:outpost_arn)
|
3429
3429
|
### :unlock: Advanced use
|
3430
3430
|
|
3431
3431
|
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
data/lib/awspec.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
require 'awspec/error'
|
4
|
+
|
5
|
+
module Awspec
|
6
|
+
class Config
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@config = {
|
11
|
+
client_backoff: 0.0,
|
12
|
+
client_backoff_limit: 30.0,
|
13
|
+
client_iteration: 1
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def client_backoff(backoff)
|
18
|
+
@config[:client_backoff] = backoff
|
19
|
+
end
|
20
|
+
|
21
|
+
def client_backoff_limit(backoff_limit)
|
22
|
+
@config[:client_backoff_limit] = backoff_limit
|
23
|
+
end
|
24
|
+
|
25
|
+
def client_iteration(iteration)
|
26
|
+
@config[:client_iteration] = iteration
|
27
|
+
end
|
28
|
+
|
29
|
+
def [](key)
|
30
|
+
@config.fetch(key)
|
31
|
+
end
|
32
|
+
|
33
|
+
def method_missing(method_name, *_args)
|
34
|
+
raise UnknownConfiguration, "'#{method_name}' is not a valid configuration for Awspec."
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.configure
|
39
|
+
yield(Config.instance)
|
40
|
+
end
|
41
|
+
end
|
data/lib/awspec/error.rb
CHANGED
@@ -6,10 +6,22 @@ module Awspec::Generator
|
|
6
6
|
hosted_zone = find_hosted_zone(id)
|
7
7
|
raise 'Not Found Route53 Hosted Zone' unless hosted_zone
|
8
8
|
id = hosted_zone[:id]
|
9
|
+
selected = []
|
9
10
|
res = @route53_client.list_resource_record_sets({
|
10
11
|
hosted_zone_id: id
|
11
12
|
})
|
12
|
-
|
13
|
+
loop do
|
14
|
+
selected += res.resource_record_sets
|
15
|
+
break unless res.is_truncated
|
16
|
+
|
17
|
+
res = @route53_client.list_resource_record_sets({
|
18
|
+
hosted_zone_id: id,
|
19
|
+
start_record_name: res.next_record_name,
|
20
|
+
start_record_type: res.next_record_type
|
21
|
+
})
|
22
|
+
end
|
23
|
+
|
24
|
+
resource_record_sets = selected.map do |record_set|
|
13
25
|
generate_linespec(record_set)
|
14
26
|
end
|
15
27
|
|
@@ -1,14 +1,17 @@
|
|
1
|
+
require 'awspec/config'
|
2
|
+
|
1
3
|
module Awspec::Helper
|
2
4
|
class ClientWrap
|
3
5
|
attr_reader :client, :backoff, :iteration, :backoff_limit, :symbol
|
4
|
-
def initialize(real_client = nil
|
6
|
+
def initialize(real_client = nil)
|
5
7
|
raise ArgumentError, 'Client can not be nil' if real_client.nil?
|
8
|
+
config = Awspec::Config.instance
|
6
9
|
@client = real_client
|
7
|
-
@backoff =
|
10
|
+
@backoff = config[:client_backoff]
|
8
11
|
@orig_backoff = @backoff
|
9
|
-
@iteration =
|
12
|
+
@iteration = config[:client_iteration]
|
10
13
|
@orig_iter = @iteration
|
11
|
-
@backoff_limit =
|
14
|
+
@backoff_limit = config[:client_backoff_limit]
|
12
15
|
# build the symbol we'll use to compare to any errors caught in method_missing
|
13
16
|
# below.
|
14
17
|
@symbol = real_client.class.to_s.split('::').shift(2).push('Errors', 'RequestLimitExceeded').join('::').to_sym
|
@@ -8,7 +8,10 @@ module Awspec::Helper
|
|
8
8
|
selected += res.distribution_list.items.select do |item|
|
9
9
|
item.id == id || item.domain_name == id
|
10
10
|
end
|
11
|
-
|
11
|
+
break unless res.distribution_list.is_truncated
|
12
|
+
res = cloudfront_client.list_distributions({
|
13
|
+
marker: res.distribution_list.next_marker
|
14
|
+
})
|
12
15
|
end
|
13
16
|
|
14
17
|
selected.single_resource(id)
|
@@ -20,7 +20,10 @@ module Awspec::Helper
|
|
20
20
|
|
21
21
|
loop do
|
22
22
|
selected += res.metric_alarms
|
23
|
-
|
23
|
+
break if res.next_token.nil?
|
24
|
+
res = cloudwatch_client.describe_alarms({
|
25
|
+
next_token: res.next_token
|
26
|
+
})
|
24
27
|
end
|
25
28
|
|
26
29
|
selected
|
@@ -30,7 +30,10 @@ module Awspec::Helper
|
|
30
30
|
|
31
31
|
loop do
|
32
32
|
selected += res.volumes.select { |v| v.attachments.count > 0 }
|
33
|
-
|
33
|
+
break if res.next_token.nil?
|
34
|
+
res = ec2_client.describe_volumes({
|
35
|
+
next_token: res.next_token
|
36
|
+
})
|
34
37
|
end
|
35
38
|
|
36
39
|
selected
|
@@ -8,7 +8,10 @@ module Awspec::Helper
|
|
8
8
|
selected += res.pipelines.select do |pipeline|
|
9
9
|
pipeline.id == id || pipeline.name == id
|
10
10
|
end
|
11
|
-
|
11
|
+
break if res.next_page_token.nil?
|
12
|
+
res = elastictranscoder_client.list_pipelines({
|
13
|
+
page_token: res.next_page_token
|
14
|
+
})
|
12
15
|
end
|
13
16
|
|
14
17
|
selected.single_resource(id)
|
@@ -12,7 +12,12 @@ module Awspec::Helper
|
|
12
12
|
selected += res[type.pluralize].select do |u|
|
13
13
|
u[type + '_name'] == id || u[type + '_id'] == id || u.arn == id
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
|
+
break unless res.is_truncated
|
17
|
+
res = iam_client.send(
|
18
|
+
'list_' + type.pluralize,
|
19
|
+
{ marker => res.marker }
|
20
|
+
)
|
16
21
|
end
|
17
22
|
|
18
23
|
selected.single_resource(id)
|
@@ -62,7 +67,10 @@ module Awspec::Helper
|
|
62
67
|
|
63
68
|
loop do
|
64
69
|
selected += res.policies.select { |p| p.attachment_count > 0 }
|
65
|
-
|
70
|
+
break unless res.is_truncated
|
71
|
+
res = iam_client.list_policies({
|
72
|
+
marker: res.marker
|
73
|
+
})
|
66
74
|
end
|
67
75
|
|
68
76
|
selected
|
@@ -9,7 +9,10 @@ module Awspec::Helper
|
|
9
9
|
selected += res.functions.select do |function|
|
10
10
|
function.function_name == id || function.function_arn == id
|
11
11
|
end
|
12
|
-
|
12
|
+
break if res.next_marker.nil?
|
13
|
+
res = lambda_client.list_functions({
|
14
|
+
marker: res.next_marker
|
15
|
+
})
|
13
16
|
end
|
14
17
|
|
15
18
|
selected.single_resource(id)
|
@@ -30,7 +30,11 @@ module Awspec::Helper
|
|
30
30
|
res.parameters.each do |param|
|
31
31
|
parameters[param.parameter_name] = param.parameter_value
|
32
32
|
end
|
33
|
-
|
33
|
+
break if res.marker.nil?
|
34
|
+
res = rds_client.describe_db_parameters({
|
35
|
+
db_parameter_group_name: parameter_group,
|
36
|
+
marker: res.marker
|
37
|
+
})
|
34
38
|
end
|
35
39
|
parameters
|
36
40
|
end
|
@@ -24,7 +24,11 @@ module Awspec::Helper
|
|
24
24
|
res.parameters.each do |param|
|
25
25
|
parameters[param.parameter_name] = param.parameter_value
|
26
26
|
end
|
27
|
-
|
27
|
+
break if res.marker.nil?
|
28
|
+
res = redshift_client.describe_cluster_parameters({
|
29
|
+
parameter_group_name: parameter_group,
|
30
|
+
marker: res.marker
|
31
|
+
})
|
28
32
|
end
|
29
33
|
parameters
|
30
34
|
end
|
@@ -10,7 +10,11 @@ module Awspec::Helper
|
|
10
10
|
selected.push(hosted_zone)
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
|
+
break unless res.is_truncated
|
15
|
+
res = route53_client.list_hosted_zones({
|
16
|
+
marker: res.next_marker
|
17
|
+
})
|
14
18
|
end
|
15
19
|
selected.single_resource(id)
|
16
20
|
end
|
@@ -22,7 +26,13 @@ module Awspec::Helper
|
|
22
26
|
})
|
23
27
|
loop do
|
24
28
|
selected += res.resource_record_sets
|
25
|
-
|
29
|
+
break unless res.is_truncated
|
30
|
+
|
31
|
+
res = route53_client.list_resource_record_sets({
|
32
|
+
hosted_zone_id: id,
|
33
|
+
start_record_name: res.next_record_name,
|
34
|
+
start_record_type: res.next_record_type
|
35
|
+
})
|
26
36
|
end
|
27
37
|
selected
|
28
38
|
end
|
@@ -17,7 +17,11 @@ module Awspec::Type
|
|
17
17
|
res.parameters.each do |param|
|
18
18
|
parameters[param.parameter_name] = param.parameter_value
|
19
19
|
end
|
20
|
-
|
20
|
+
break if res.marker.nil?
|
21
|
+
res = elasticache_client.describe_cache_parameters({
|
22
|
+
cache_parameter_group_name: @display_name,
|
23
|
+
marker: res.marker
|
24
|
+
})
|
21
25
|
end
|
22
26
|
@resource_via_client ||= parameters
|
23
27
|
end
|
data/lib/awspec/version.rb
CHANGED
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.18.
|
4
|
+
version: 1.18.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -131,7 +131,7 @@ dependencies:
|
|
131
131
|
version: '1.9'
|
132
132
|
- - "<"
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
134
|
+
version: '3.0'
|
135
135
|
type: :development
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -141,7 +141,7 @@ dependencies:
|
|
141
141
|
version: '1.9'
|
142
142
|
- - "<"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
144
|
+
version: '3.0'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: octorelease
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -303,6 +303,7 @@ files:
|
|
303
303
|
- lib/awspec.rb
|
304
304
|
- lib/awspec/cli.rb
|
305
305
|
- lib/awspec/command/generate.rb
|
306
|
+
- lib/awspec/config.rb
|
306
307
|
- lib/awspec/error.rb
|
307
308
|
- lib/awspec/ext.rb
|
308
309
|
- lib/awspec/ext/array.rb
|