fog-aws 0.11.0 → 3.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +813 -22
- data/CONTRIBUTING.md +6 -6
- data/CONTRIBUTORS.md +104 -1
- data/LICENSE.md +1 -1
- data/README.md +121 -7
- data/fog-aws.gemspec +12 -9
- data/lib/fog/aws/auto_scaling.rb +4 -1
- data/lib/fog/aws/cdn.rb +15 -2
- data/lib/fog/aws/cloud_formation.rb +14 -0
- data/lib/fog/aws/compute.rb +158 -27
- data/lib/fog/aws/credential_fetcher.rb +81 -13
- data/lib/fog/aws/data_pipeline.rb +65 -2
- data/lib/fog/aws/dns.rb +154 -5
- data/lib/fog/aws/efs.rb +177 -0
- data/lib/fog/aws/elasticache.rb +4 -2
- data/lib/fog/aws/elb.rb +3 -2
- data/lib/fog/aws/elbv2.rb +72 -0
- data/lib/fog/aws/glacier.rb +83 -21
- data/lib/fog/aws/iam/default_policy_versions.json +1 -0
- data/lib/fog/aws/iam.rb +3 -0
- data/lib/fog/aws/kinesis.rb +23 -15
- data/lib/fog/aws/mock.rb +12 -0
- data/lib/fog/aws/models/auto_scaling/group.rb +24 -0
- data/lib/fog/aws/models/cdn/distribution.rb +4 -4
- data/lib/fog/aws/models/cdn/distribution_helper.rb +2 -2
- data/lib/fog/aws/models/cdn/distributions.rb +4 -4
- data/lib/fog/aws/models/cdn/distributions_helper.rb +2 -2
- data/lib/fog/aws/models/cdn/invalidation.rb +2 -2
- data/lib/fog/aws/models/cdn/invalidations.rb +3 -3
- data/lib/fog/aws/models/cdn/streaming_distribution.rb +3 -3
- data/lib/fog/aws/models/cdn/streaming_distributions.rb +4 -4
- data/lib/fog/aws/models/compute/address.rb +19 -3
- data/lib/fog/aws/models/compute/addresses.rb +3 -3
- data/lib/fog/aws/models/compute/dhcp_option.rb +2 -2
- data/lib/fog/aws/models/compute/dhcp_options.rb +7 -7
- data/lib/fog/aws/models/compute/flavor.rb +2 -2
- data/lib/fog/aws/models/compute/flavors.rb +3138 -296
- data/lib/fog/aws/models/compute/image.rb +4 -2
- data/lib/fog/aws/models/compute/images.rb +6 -4
- data/lib/fog/aws/models/compute/internet_gateway.rb +2 -2
- data/lib/fog/aws/models/compute/internet_gateways.rb +7 -7
- data/lib/fog/aws/models/compute/key_pair.rb +2 -2
- data/lib/fog/aws/models/compute/key_pairs.rb +3 -3
- data/lib/fog/aws/models/compute/network_acl.rb +4 -4
- data/lib/fog/aws/models/compute/network_acls.rb +6 -6
- data/lib/fog/aws/models/compute/network_interface.rb +2 -2
- data/lib/fog/aws/models/compute/network_interfaces.rb +4 -4
- data/lib/fog/aws/models/compute/route_table.rb +2 -2
- data/lib/fog/aws/models/compute/route_tables.rb +7 -7
- data/lib/fog/aws/models/compute/security_group.rb +61 -30
- data/lib/fog/aws/models/compute/security_groups.rb +3 -3
- data/lib/fog/aws/models/compute/server.rb +8 -4
- data/lib/fog/aws/models/compute/servers.rb +13 -8
- data/lib/fog/aws/models/compute/snapshot.rb +9 -8
- data/lib/fog/aws/models/compute/snapshots.rb +3 -3
- data/lib/fog/aws/models/compute/spot_request.rb +5 -4
- data/lib/fog/aws/models/compute/spot_requests.rb +3 -3
- data/lib/fog/aws/models/compute/subnet.rb +7 -2
- data/lib/fog/aws/models/compute/subnets.rb +3 -3
- data/lib/fog/aws/models/compute/tag.rb +2 -2
- data/lib/fog/aws/models/compute/tags.rb +3 -3
- data/lib/fog/aws/models/compute/volume.rb +46 -38
- data/lib/fog/aws/models/compute/volumes.rb +3 -3
- data/lib/fog/aws/models/compute/vpc.rb +64 -3
- data/lib/fog/aws/models/compute/vpcs.rb +3 -3
- data/lib/fog/aws/models/dns/record.rb +2 -2
- data/lib/fog/aws/models/dns/records.rb +4 -4
- data/lib/fog/aws/models/dns/zone.rb +3 -3
- data/lib/fog/aws/models/dns/zones.rb +4 -4
- data/lib/fog/aws/models/efs/file_system.rb +46 -0
- data/lib/fog/aws/models/efs/file_systems.rb +23 -0
- data/lib/fog/aws/models/efs/mount_target.rb +59 -0
- data/lib/fog/aws/models/efs/mount_targets.rb +25 -0
- data/lib/fog/aws/models/elb/backend_server_descriptions.rb +1 -1
- data/lib/fog/aws/models/elb/listeners.rb +3 -4
- data/lib/fog/aws/models/elb/load_balancer.rb +10 -2
- data/lib/fog/aws/models/elb/load_balancers.rb +5 -6
- data/lib/fog/aws/models/iam/access_keys.rb +0 -2
- data/lib/fog/aws/models/iam/instance_profile.rb +40 -0
- data/lib/fog/aws/models/iam/instance_profiles.rb +24 -0
- data/lib/fog/aws/models/iam/managed_policies.rb +12 -0
- data/lib/fog/aws/models/iam/managed_policy.rb +20 -0
- data/lib/fog/aws/models/iam/role.rb +35 -0
- data/lib/fog/aws/models/rds/cluster.rb +9 -1
- data/lib/fog/aws/models/rds/instance_option.rb +6 -0
- data/lib/fog/aws/models/rds/security_group.rb +4 -2
- data/lib/fog/aws/models/rds/server.rb +66 -63
- data/lib/fog/aws/models/storage/directories.rb +4 -3
- data/lib/fog/aws/models/storage/directory.rb +40 -6
- data/lib/fog/aws/models/storage/file.rb +175 -25
- data/lib/fog/aws/models/storage/files.rb +36 -6
- data/lib/fog/aws/models/storage/version.rb +2 -2
- data/lib/fog/aws/models/storage/versions.rb +3 -3
- data/lib/fog/aws/models/support/flagged_resource.rb +14 -0
- data/lib/fog/aws/models/support/flagged_resources.rb +11 -0
- data/lib/fog/aws/models/support/trusted_advisor_check.rb +65 -0
- data/lib/fog/aws/models/support/trusted_advisor_checks.rb +21 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb +8 -0
- data/lib/fog/aws/parsers/cdn/distribution.rb +2 -2
- data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +2 -2
- data/lib/fog/aws/parsers/cdn/get_invalidation.rb +2 -2
- data/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +2 -2
- data/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb +2 -2
- data/lib/fog/aws/parsers/cdn/post_invalidation.rb +2 -2
- data/lib/fog/aws/parsers/cdn/streaming_distribution.rb +1 -1
- data/lib/fog/aws/parsers/cloud_formation/basic.rb +8 -0
- data/lib/fog/aws/parsers/cloud_formation/create_change_set.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_account_limits.rb +26 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_change_set.rb +135 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_stack_resource.rb +28 -0
- data/lib/fog/aws/parsers/cloud_formation/estimate_template_cost.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/get_stack_policy.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/get_template_summary.rb +62 -0
- data/lib/fog/aws/parsers/cloud_formation/list_change_sets.rb +30 -0
- data/lib/fog/aws/parsers/compute/allocate_address.rb +2 -2
- data/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb +2 -2
- data/lib/fog/aws/parsers/compute/associate_address.rb +2 -2
- data/lib/fog/aws/parsers/compute/associate_route_table.rb +2 -2
- data/lib/fog/aws/parsers/compute/attach_network_interface.rb +2 -2
- data/lib/fog/aws/parsers/compute/attach_volume.rb +2 -2
- data/lib/fog/aws/parsers/compute/basic.rb +2 -2
- data/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb +2 -2
- data/lib/fog/aws/parsers/compute/copy_image.rb +2 -2
- data/lib/fog/aws/parsers/compute/copy_snapshot.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_dhcp_options.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_image.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_internet_gateway.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_key_pair.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_network_acl.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_network_interface.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_route_table.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_security_group.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_snapshot.rb +3 -3
- data/lib/fog/aws/parsers/compute/create_subnet.rb +37 -8
- data/lib/fog/aws/parsers/compute/create_volume.rb +2 -2
- data/lib/fog/aws/parsers/compute/create_vpc.rb +2 -2
- data/lib/fog/aws/parsers/compute/deregister_image.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_account_attributes.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_addresses.rb +32 -11
- data/lib/fog/aws/parsers/compute/describe_availability_zones.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_classic_link_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_dhcp_options.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_image_attribute.rb +122 -0
- data/lib/fog/aws/parsers/compute/describe_images.rb +5 -3
- data/lib/fog/aws/parsers/compute/describe_instance_attribute.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_instance_status.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_internet_gateways.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_key_pairs.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_network_acls.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_network_interfaces.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_placement_groups.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_regions.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +19 -8
- data/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb +3 -3
- data/lib/fog/aws/parsers/compute/describe_route_tables.rb +5 -5
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +21 -7
- data/lib/fog/aws/parsers/compute/describe_snapshots.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_spot_price_history.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_subnets.rb +36 -9
- data/lib/fog/aws/parsers/compute/describe_tags.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_volume_status.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_volumes_modifications.rb +30 -0
- data/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_vpc_classic_link.rb +5 -3
- data/lib/fog/aws/parsers/compute/describe_vpc_classic_link_dns_support.rb +26 -0
- data/lib/fog/aws/parsers/compute/describe_vpcs.rb +73 -25
- data/lib/fog/aws/parsers/compute/detach_volume.rb +2 -2
- data/lib/fog/aws/parsers/compute/get_console_output.rb +2 -2
- data/lib/fog/aws/parsers/compute/get_password_data.rb +2 -2
- data/lib/fog/aws/parsers/compute/import_key_pair.rb +2 -2
- data/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb +2 -2
- data/lib/fog/aws/parsers/compute/modify_volume.rb +26 -0
- data/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/move_address_to_vpc.rb +16 -0
- data/lib/fog/aws/parsers/compute/network_acl_parser.rb +2 -2
- data/lib/fog/aws/parsers/compute/network_interface_parser.rb +2 -2
- data/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb +2 -2
- data/lib/fog/aws/parsers/compute/register_image.rb +2 -2
- data/lib/fog/aws/parsers/compute/replace_network_acl_association.rb +2 -2
- data/lib/fog/aws/parsers/compute/restore_address_to_classic.rb +16 -0
- data/lib/fog/aws/parsers/compute/run_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb +2 -2
- data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
- data/lib/fog/aws/parsers/compute/start_stop_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/terminate_instances.rb +2 -2
- data/lib/fog/aws/parsers/dns/change_resource_record_sets.rb +2 -2
- data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +3 -3
- data/lib/fog/aws/parsers/dns/delete_hosted_zone.rb +2 -2
- data/lib/fog/aws/parsers/dns/get_change.rb +2 -2
- data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +5 -5
- data/lib/fog/aws/parsers/dns/health_check.rb +2 -2
- data/lib/fog/aws/parsers/dns/list_health_checks.rb +2 -2
- data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +5 -3
- data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +2 -2
- data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +3 -3
- data/lib/fog/aws/parsers/elbv2/create_load_balancer.rb +88 -0
- data/lib/fog/aws/parsers/elbv2/describe_listeners.rb +110 -0
- data/lib/fog/aws/parsers/elbv2/describe_load_balancers.rb +88 -0
- data/lib/fog/aws/parsers/elbv2/describe_tags.rb +53 -0
- data/lib/fog/aws/parsers/elbv2/empty.rb +10 -0
- data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/list_access_keys.rb +1 -1
- data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
- data/lib/fog/aws/parsers/rds/db_parser.rb +41 -2
- data/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb +4 -3
- data/lib/fog/aws/parsers/rds/modify_db_subnet_group.rb +24 -0
- data/lib/fog/aws/parsers/storage/access_control_list.rb +2 -2
- data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +2 -2
- data/lib/fog/aws/parsers/storage/copy_object.rb +2 -2
- data/lib/fog/aws/parsers/storage/cors_configuration.rb +2 -2
- data/lib/fog/aws/parsers/storage/delete_multiple_objects.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket.rb +3 -3
- data/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_location.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_logging.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_notification.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_tagging.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_versioning.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_bucket_website.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_object_tagging.rb +33 -0
- data/lib/fog/aws/parsers/storage/get_request_payment.rb +2 -2
- data/lib/fog/aws/parsers/storage/get_service.rb +2 -2
- data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +2 -2
- data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +2 -2
- data/lib/fog/aws/parsers/storage/list_parts.rb +2 -2
- data/lib/fog/aws/parsers/storage/upload_part_copy_object.rb +18 -0
- data/lib/fog/aws/parsers/sts/assume_role_with_web_identity.rb +1 -1
- data/lib/fog/aws/rds.rb +2 -2
- data/lib/fog/aws/requests/auto_scaling/attach_load_balancer_target_groups.rb +58 -0
- data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +3 -4
- data/lib/fog/aws/requests/auto_scaling/detach_instances.rb +3 -4
- data/lib/fog/aws/requests/auto_scaling/detach_load_balancer_target_groups.rb +57 -0
- data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/set_instance_protection.rb +67 -0
- data/lib/fog/aws/requests/cdn/delete_distribution.rb +6 -6
- data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +6 -6
- data/lib/fog/aws/requests/cdn/get_distribution.rb +5 -5
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +3 -3
- data/lib/fog/aws/requests/cdn/get_invalidation.rb +5 -5
- data/lib/fog/aws/requests/cdn/get_invalidation_list.rb +4 -4
- data/lib/fog/aws/requests/cdn/get_streaming_distribution.rb +5 -5
- data/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb +3 -3
- data/lib/fog/aws/requests/cdn/post_distribution.rb +6 -6
- data/lib/fog/aws/requests/cdn/post_invalidation.rb +5 -5
- data/lib/fog/aws/requests/cdn/post_streaming_distribution.rb +6 -6
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +7 -7
- data/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb +7 -7
- data/lib/fog/aws/requests/cloud_formation/cancel_update_stack.rb +25 -0
- data/lib/fog/aws/requests/cloud_formation/continue_update_rollback.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/create_change_set.rb +75 -0
- data/lib/fog/aws/requests/cloud_formation/create_stack.rb +14 -0
- data/lib/fog/aws/requests/cloud_formation/delete_change_set.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/describe_account_limits.rb +27 -0
- data/lib/fog/aws/requests/cloud_formation/describe_change_set.rb +43 -0
- data/lib/fog/aws/requests/cloud_formation/describe_stack_resource.rb +40 -0
- data/lib/fog/aws/requests/cloud_formation/estimate_template_cost.rb +48 -0
- data/lib/fog/aws/requests/cloud_formation/execute_change_set.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/get_stack_policy.rb +27 -0
- data/lib/fog/aws/requests/cloud_formation/get_template_summary.rb +46 -0
- data/lib/fog/aws/requests/cloud_formation/list_change_sets.rb +40 -0
- data/lib/fog/aws/requests/cloud_formation/set_stack_policy.rb +38 -0
- data/lib/fog/aws/requests/cloud_formation/signal_resource.rb +32 -0
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +49 -0
- data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +2 -2
- data/lib/fog/aws/requests/compute/allocate_address.rb +6 -5
- data/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb +5 -5
- data/lib/fog/aws/requests/compute/associate_address.rb +16 -8
- data/lib/fog/aws/requests/compute/associate_dhcp_options.rb +4 -4
- data/lib/fog/aws/requests/compute/associate_route_table.rb +5 -5
- data/lib/fog/aws/requests/compute/attach_classic_link_vpc.rb +10 -10
- data/lib/fog/aws/requests/compute/attach_internet_gateway.rb +4 -4
- data/lib/fog/aws/requests/compute/attach_network_interface.rb +6 -6
- data/lib/fog/aws/requests/compute/attach_volume.rb +7 -7
- data/lib/fog/aws/requests/compute/authorize_security_group_egress.rb +114 -0
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +49 -30
- data/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb +20 -3
- data/lib/fog/aws/requests/compute/copy_image.rb +3 -3
- data/lib/fog/aws/requests/compute/copy_snapshot.rb +24 -11
- data/lib/fog/aws/requests/compute/create_dhcp_options.rb +3 -3
- data/lib/fog/aws/requests/compute/create_image.rb +3 -3
- data/lib/fog/aws/requests/compute/create_internet_gateway.rb +3 -3
- data/lib/fog/aws/requests/compute/create_key_pair.rb +4 -4
- data/lib/fog/aws/requests/compute/create_network_acl.rb +4 -4
- data/lib/fog/aws/requests/compute/create_network_acl_entry.rb +5 -5
- data/lib/fog/aws/requests/compute/create_network_interface.rb +15 -12
- data/lib/fog/aws/requests/compute/create_placement_group.rb +3 -3
- data/lib/fog/aws/requests/compute/create_route.rb +10 -10
- data/lib/fog/aws/requests/compute/create_route_table.rb +5 -5
- data/lib/fog/aws/requests/compute/create_security_group.rb +27 -22
- data/lib/fog/aws/requests/compute/create_snapshot.rb +3 -3
- data/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb +3 -3
- data/lib/fog/aws/requests/compute/create_subnet.rb +23 -19
- data/lib/fog/aws/requests/compute/create_tags.rb +3 -3
- data/lib/fog/aws/requests/compute/create_volume.rb +11 -11
- data/lib/fog/aws/requests/compute/create_vpc.rb +42 -13
- data/lib/fog/aws/requests/compute/delete_dhcp_options.rb +4 -4
- data/lib/fog/aws/requests/compute/delete_internet_gateway.rb +4 -4
- data/lib/fog/aws/requests/compute/delete_key_pair.rb +3 -3
- data/lib/fog/aws/requests/compute/delete_network_acl.rb +5 -5
- data/lib/fog/aws/requests/compute/delete_network_acl_entry.rb +5 -5
- data/lib/fog/aws/requests/compute/delete_network_interface.rb +5 -5
- data/lib/fog/aws/requests/compute/delete_placement_group.rb +3 -3
- data/lib/fog/aws/requests/compute/delete_route.rb +6 -6
- data/lib/fog/aws/requests/compute/delete_route_table.rb +5 -5
- data/lib/fog/aws/requests/compute/delete_security_group.rb +17 -17
- data/lib/fog/aws/requests/compute/delete_snapshot.rb +4 -4
- data/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb +3 -3
- data/lib/fog/aws/requests/compute/delete_subnet.rb +4 -4
- data/lib/fog/aws/requests/compute/delete_tags.rb +3 -3
- data/lib/fog/aws/requests/compute/delete_volume.rb +5 -5
- data/lib/fog/aws/requests/compute/delete_vpc.rb +4 -4
- data/lib/fog/aws/requests/compute/deregister_image.rb +4 -4
- data/lib/fog/aws/requests/compute/describe_account_attributes.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_addresses.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +16 -3
- data/lib/fog/aws/requests/compute/describe_classic_link_instances.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_dhcp_options.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_image_attribute.rb +74 -0
- data/lib/fog/aws/requests/compute/describe_images.rb +5 -3
- data/lib/fog/aws/requests/compute/describe_instance_attribute.rb +4 -4
- data/lib/fog/aws/requests/compute/describe_instance_status.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_instances.rb +5 -5
- data/lib/fog/aws/requests/compute/describe_internet_gateways.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_key_pairs.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_network_acls.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb +19 -17
- data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +7 -3
- data/lib/fog/aws/requests/compute/describe_placement_groups.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_regions.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +8 -4
- data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +9 -5
- data/lib/fog/aws/requests/compute/describe_route_tables.rb +9 -3
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +47 -10
- data/lib/fog/aws/requests/compute/describe_snapshots.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb +36 -3
- data/lib/fog/aws/requests/compute/describe_spot_price_history.rb +5 -5
- data/lib/fog/aws/requests/compute/describe_subnets.rb +15 -14
- data/lib/fog/aws/requests/compute/describe_tags.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_volume_status.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_volumes.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_volumes_modifications.rb +93 -0
- data/lib/fog/aws/requests/compute/describe_vpc_attribute.rb +5 -5
- data/lib/fog/aws/requests/compute/describe_vpc_classic_link.rb +6 -5
- data/lib/fog/aws/requests/compute/describe_vpc_classic_link_dns_support.rb +53 -0
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +3 -3
- data/lib/fog/aws/requests/compute/detach_classic_link_vpc.rb +6 -8
- data/lib/fog/aws/requests/compute/detach_internet_gateway.rb +4 -4
- data/lib/fog/aws/requests/compute/detach_network_interface.rb +4 -4
- data/lib/fog/aws/requests/compute/detach_volume.rb +5 -5
- data/lib/fog/aws/requests/compute/disable_vpc_classic_link.rb +4 -4
- data/lib/fog/aws/requests/compute/disable_vpc_classic_link_dns_support.rb +45 -0
- data/lib/fog/aws/requests/compute/disassociate_address.rb +8 -5
- data/lib/fog/aws/requests/compute/disassociate_route_table.rb +5 -5
- data/lib/fog/aws/requests/compute/enable_vpc_classic_link.rb +4 -4
- data/lib/fog/aws/requests/compute/enable_vpc_classic_link_dns_support.rb +45 -0
- data/lib/fog/aws/requests/compute/get_console_output.rb +4 -4
- data/lib/fog/aws/requests/compute/get_password_data.rb +4 -4
- data/lib/fog/aws/requests/compute/import_key_pair.rb +4 -4
- data/lib/fog/aws/requests/compute/modify_image_attribute.rb +4 -4
- data/lib/fog/aws/requests/compute/modify_instance_attribute.rb +3 -3
- data/lib/fog/aws/requests/compute/modify_instance_placement.rb +33 -0
- data/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb +11 -11
- data/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb +3 -3
- data/lib/fog/aws/requests/compute/modify_subnet_attribute.rb +3 -3
- data/lib/fog/aws/requests/compute/modify_volume.rb +88 -0
- data/lib/fog/aws/requests/compute/modify_volume_attribute.rb +4 -4
- data/lib/fog/aws/requests/compute/modify_vpc_attribute.rb +7 -7
- data/lib/fog/aws/requests/compute/monitor_instances.rb +4 -4
- data/lib/fog/aws/requests/compute/move_address_to_vpc.rb +52 -0
- data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +3 -3
- data/lib/fog/aws/requests/compute/reboot_instances.rb +4 -4
- data/lib/fog/aws/requests/compute/register_image.rb +4 -4
- data/lib/fog/aws/requests/compute/release_address.rb +5 -5
- data/lib/fog/aws/requests/compute/replace_network_acl_association.rb +5 -5
- data/lib/fog/aws/requests/compute/replace_network_acl_entry.rb +5 -5
- data/lib/fog/aws/requests/compute/replace_route.rb +10 -10
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +41 -30
- data/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb +6 -6
- data/lib/fog/aws/requests/compute/restore_address_to_classic.rb +55 -0
- data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +92 -0
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +21 -28
- data/lib/fog/aws/requests/compute/run_instances.rb +95 -29
- data/lib/fog/aws/requests/compute/start_instances.rb +4 -4
- data/lib/fog/aws/requests/compute/stop_instances.rb +15 -7
- data/lib/fog/aws/requests/compute/terminate_instances.rb +5 -5
- data/lib/fog/aws/requests/compute/unmonitor_instances.rb +4 -4
- data/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb +8 -4
- data/lib/fog/aws/requests/data_pipeline/create_pipeline.rb +24 -3
- data/lib/fog/aws/requests/data_pipeline/deactivate_pipeline.rb +36 -0
- data/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb +6 -1
- data/lib/fog/aws/requests/data_pipeline/describe_objects.rb +17 -3
- data/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb +3 -3
- data/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb +7 -4
- data/lib/fog/aws/requests/data_pipeline/list_pipelines.rb +3 -3
- data/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb +53 -32
- data/lib/fog/aws/requests/data_pipeline/query_objects.rb +6 -3
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +6 -131
- data/lib/fog/aws/requests/dns/create_health_check.rb +3 -3
- data/lib/fog/aws/requests/dns/create_hosted_zone.rb +4 -4
- data/lib/fog/aws/requests/dns/delete_health_check.rb +2 -2
- data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +4 -4
- data/lib/fog/aws/requests/dns/get_change.rb +4 -4
- data/lib/fog/aws/requests/dns/get_health_check.rb +3 -3
- data/lib/fog/aws/requests/dns/get_hosted_zone.rb +4 -4
- data/lib/fog/aws/requests/dns/list_health_checks.rb +3 -3
- data/lib/fog/aws/requests/dns/list_hosted_zones.rb +3 -3
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +5 -5
- data/lib/fog/aws/requests/dynamodb/update_item.rb +6 -5
- data/lib/fog/aws/requests/efs/create_file_system.rb +63 -0
- data/lib/fog/aws/requests/efs/create_mount_target.rb +73 -0
- data/lib/fog/aws/requests/efs/delete_file_system.rb +41 -0
- data/lib/fog/aws/requests/efs/delete_mount_target.rb +38 -0
- data/lib/fog/aws/requests/efs/describe_file_systems.rb +62 -0
- data/lib/fog/aws/requests/efs/describe_mount_target_security_groups.rb +34 -0
- data/lib/fog/aws/requests/efs/describe_mount_targets.rb +61 -0
- data/lib/fog/aws/requests/efs/modify_mount_target_security_groups.rb +39 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +11 -42
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +24 -21
- data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
- data/lib/fog/aws/requests/elb/describe_instance_health.rb +1 -1
- data/lib/fog/aws/requests/elb/describe_tags.rb +1 -1
- data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
- data/lib/fog/aws/requests/elbv2/add_tags.rb +45 -0
- data/lib/fog/aws/requests/elbv2/create_load_balancer.rb +160 -0
- data/lib/fog/aws/requests/elbv2/describe_listeners.rb +38 -0
- data/lib/fog/aws/requests/elbv2/describe_load_balancers.rb +100 -0
- data/lib/fog/aws/requests/elbv2/describe_tags.rb +50 -0
- data/lib/fog/aws/requests/elbv2/remove_tags.rb +45 -0
- data/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb +19 -0
- data/lib/fog/aws/requests/iam/attach_group_policy.rb +1 -0
- data/lib/fog/aws/requests/iam/attach_role_policy.rb +30 -4
- data/lib/fog/aws/requests/iam/attach_user_policy.rb +1 -0
- data/lib/fog/aws/requests/iam/create_instance_profile.rb +20 -0
- data/lib/fog/aws/requests/iam/create_policy.rb +26 -2
- data/lib/fog/aws/requests/iam/delete_instance_profile.rb +15 -0
- data/lib/fog/aws/requests/iam/delete_policy.rb +15 -0
- data/lib/fog/aws/requests/iam/detach_group_policy.rb +1 -0
- data/lib/fog/aws/requests/iam/detach_role_policy.rb +27 -0
- data/lib/fog/aws/requests/iam/detach_user_policy.rb +1 -0
- data/lib/fog/aws/requests/iam/get_instance_profile.rb +17 -0
- data/lib/fog/aws/requests/iam/list_attached_user_policies.rb +2 -1
- data/lib/fog/aws/requests/iam/list_instance_profiles.rb +9 -0
- data/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb +10 -0
- data/lib/fog/aws/requests/iam/list_policies.rb +4 -0
- data/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb +19 -0
- data/lib/fog/aws/requests/kinesis/put_record.rb +1 -2
- data/lib/fog/aws/requests/kinesis/put_records.rb +1 -2
- data/lib/fog/aws/requests/lambda/invoke.rb +8 -8
- data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
- data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +10 -5
- data/lib/fog/aws/requests/rds/create_db_instance.rb +1 -1
- data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +4 -5
- data/lib/fog/aws/requests/rds/delete_db_subnet_group.rb +2 -0
- data/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb +12 -6
- data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +1 -1
- data/lib/fog/aws/requests/rds/modify_db_subnet_group.rb +27 -0
- data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
- data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +9 -4
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +3 -3
- data/lib/fog/aws/requests/storage/acl_utils.rb +3 -3
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +4 -4
- data/lib/fog/aws/requests/storage/copy_object.rb +3 -3
- data/lib/fog/aws/requests/storage/cors_utils.rb +3 -3
- data/lib/fog/aws/requests/storage/delete_bucket.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_bucket_cors.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +3 -3
- data/lib/fog/aws/requests/storage/delete_bucket_tagging.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_bucket_website.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +22 -12
- data/lib/fog/aws/requests/storage/delete_object.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_object_url.rb +40 -0
- data/lib/fog/aws/requests/storage/get_bucket.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_acl.rb +4 -4
- data/lib/fog/aws/requests/storage/get_bucket_cors.rb +4 -4
- data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_location.rb +5 -6
- data/lib/fog/aws/requests/storage/get_bucket_logging.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_notification.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +4 -3
- data/lib/fog/aws/requests/storage/get_bucket_policy.rb +2 -2
- data/lib/fog/aws/requests/storage/get_bucket_tagging.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +3 -3
- data/lib/fog/aws/requests/storage/get_bucket_website.rb +3 -3
- data/lib/fog/aws/requests/storage/get_object.rb +7 -3
- data/lib/fog/aws/requests/storage/get_object_acl.rb +4 -4
- data/lib/fog/aws/requests/storage/get_object_http_url.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_https_url.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_tagging.rb +41 -0
- data/lib/fog/aws/requests/storage/get_object_torrent.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/get_request_payment.rb +3 -3
- data/lib/fog/aws/requests/storage/get_service.rb +5 -5
- data/lib/fog/aws/requests/storage/head_bucket.rb +2 -2
- data/lib/fog/aws/requests/storage/head_object.rb +2 -2
- data/lib/fog/aws/requests/storage/head_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +4 -4
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +3 -3
- data/lib/fog/aws/requests/storage/list_parts.rb +3 -3
- data/lib/fog/aws/requests/storage/post_object_hidden_fields.rb +2 -2
- data/lib/fog/aws/requests/storage/post_object_restore.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_acl.rb +4 -4
- data/lib/fog/aws/requests/storage/put_bucket_cors.rb +4 -4
- data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_logging.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_notification.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_policy.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_tagging.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_website.rb +2 -2
- data/lib/fog/aws/requests/storage/put_object.rb +9 -8
- data/lib/fog/aws/requests/storage/put_object_acl.rb +4 -4
- data/lib/fog/aws/requests/storage/put_object_tagging.rb +42 -0
- data/lib/fog/aws/requests/storage/put_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/put_request_payment.rb +2 -2
- data/lib/fog/aws/requests/storage/shared_mock_methods.rb +4 -3
- data/lib/fog/aws/requests/storage/sync_clock.rb +3 -3
- data/lib/fog/aws/requests/storage/upload_part.rb +3 -3
- data/lib/fog/aws/requests/storage/upload_part_copy.rb +119 -0
- data/lib/fog/aws/requests/sts/assume_role.rb +25 -0
- data/lib/fog/aws/requests/sts/assume_role_with_web_identity.rb +7 -6
- data/lib/fog/aws/requests/support/describe_trusted_advisor_check_result.rb +31 -0
- data/lib/fog/aws/requests/support/describe_trusted_advisor_checks.rb +29 -0
- data/lib/fog/aws/service_mapper.rb +129 -0
- data/lib/fog/aws/sqs.rb +1 -1
- data/lib/fog/aws/storage.rb +98 -19
- data/lib/fog/aws/support.rb +170 -0
- data/lib/fog/aws/version.rb +1 -1
- data/lib/fog/aws.rb +32 -19
- data/lib/fog-aws.rb +1 -0
- metadata +118 -285
- data/.gitignore +0 -16
- data/.travis.yml +0 -52
- data/Gemfile +0 -10
- data/Rakefile +0 -8
- data/gemfiles/Gemfile-edge +0 -14
- data/gemfiles/Gemfile-ruby-1.8.7 +0 -6
- data/gemfiles/Gemfile-ruby-1.9 +0 -6
- data/tests/credentials_tests.rb +0 -75
- data/tests/helper.rb +0 -28
- data/tests/helpers/collection_helper.rb +0 -97
- data/tests/helpers/compute/flavors_helper.rb +0 -32
- data/tests/helpers/compute/server_helper.rb +0 -25
- data/tests/helpers/compute/servers_helper.rb +0 -10
- data/tests/helpers/dns_helper.rb +0 -55
- data/tests/helpers/formats_helper.rb +0 -98
- data/tests/helpers/formats_helper_tests.rb +0 -110
- data/tests/helpers/mock_helper.rb +0 -109
- data/tests/helpers/model_helper.rb +0 -31
- data/tests/helpers/responds_to_helper.rb +0 -11
- data/tests/helpers/schema_validator_tests.rb +0 -107
- data/tests/helpers/succeeds_helper.rb +0 -9
- data/tests/lorem.txt +0 -1
- data/tests/models/auto_scaling/activities_tests.rb +0 -6
- data/tests/models/auto_scaling/configuration_test.rb +0 -13
- data/tests/models/auto_scaling/configurations_tests.rb +0 -11
- data/tests/models/auto_scaling/groups_test.rb +0 -27
- data/tests/models/auto_scaling/helper.rb +0 -0
- data/tests/models/auto_scaling/instance_tests.rb +0 -15
- data/tests/models/auto_scaling/instances_tests.rb +0 -6
- data/tests/models/beanstalk/application_tests.rb +0 -69
- data/tests/models/beanstalk/applications_tests.rb +0 -7
- data/tests/models/beanstalk/environment_tests.rb +0 -131
- data/tests/models/beanstalk/environments_tests.rb +0 -34
- data/tests/models/beanstalk/template_tests.rb +0 -47
- data/tests/models/beanstalk/templates_tests.rb +0 -62
- data/tests/models/beanstalk/version_tests.rb +0 -66
- data/tests/models/beanstalk/versions_tests.rb +0 -60
- data/tests/models/cdn/distribution_tests.rb +0 -15
- data/tests/models/cdn/distributions_tests.rb +0 -15
- data/tests/models/cdn/invalidation_tests.rb +0 -31
- data/tests/models/cdn/invalidations_tests.rb +0 -14
- data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
- data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
- data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
- data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
- data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
- data/tests/models/cloud_watch/metrics_tests.rb +0 -32
- data/tests/models/compute/address_tests.rb +0 -24
- data/tests/models/compute/addresses_tests.rb +0 -5
- data/tests/models/compute/dhcp_option_tests.rb +0 -3
- data/tests/models/compute/dhcp_options_tests.rb +0 -3
- data/tests/models/compute/internet_gateway_tests.rb +0 -3
- data/tests/models/compute/internet_gateways_tests.rb +0 -3
- data/tests/models/compute/key_pair_tests.rb +0 -26
- data/tests/models/compute/key_pairs_tests.rb +0 -5
- data/tests/models/compute/network_acl_tests.rb +0 -109
- data/tests/models/compute/network_acls_tests.rb +0 -20
- data/tests/models/compute/network_interfaces_test.rb +0 -12
- data/tests/models/compute/security_group_tests.rb +0 -74
- data/tests/models/compute/security_groups_tests.rb +0 -5
- data/tests/models/compute/server_tests.rb +0 -94
- data/tests/models/compute/snapshot_tests.rb +0 -10
- data/tests/models/compute/snapshots_tests.rb +0 -10
- data/tests/models/compute/subnet_tests.rb +0 -5
- data/tests/models/compute/subnets_tests.rb +0 -5
- data/tests/models/compute/volume_tests.rb +0 -43
- data/tests/models/compute/volumes_tests.rb +0 -5
- data/tests/models/compute/vpc_tests.rb +0 -4
- data/tests/models/compute/vpcs_tests.rb +0 -19
- data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
- data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
- data/tests/models/dns/record_tests.rb +0 -33
- data/tests/models/dns/records_tests.rb +0 -41
- data/tests/models/dns/zone_tests.rb +0 -4
- data/tests/models/dns/zones_tests.rb +0 -4
- data/tests/models/elasticache/cluster_tests.rb +0 -30
- data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
- data/tests/models/elasticache/security_groups_tests.rb +0 -52
- data/tests/models/elasticache/subnet_groups_tests.rb +0 -44
- data/tests/models/elb/model_tests.rb +0 -360
- data/tests/models/elb/tagging_tests.rb +0 -15
- data/tests/models/glacier/model_tests.rb +0 -47
- data/tests/models/iam/access_keys_tests.rb +0 -53
- data/tests/models/iam/groups_tests.rb +0 -59
- data/tests/models/iam/managed_policies_tests.rb +0 -67
- data/tests/models/iam/policies_tests.rb +0 -57
- data/tests/models/iam/roles_tests.rb +0 -71
- data/tests/models/iam/users_tests.rb +0 -119
- data/tests/models/rds/cluster_tests.rb +0 -54
- data/tests/models/rds/clusters_tests.rb +0 -5
- data/tests/models/rds/event_subscription_tests.rb +0 -9
- data/tests/models/rds/event_subscriptions_tests.rb +0 -6
- data/tests/models/rds/helper.rb +0 -25
- data/tests/models/rds/instance_option_tests.rb +0 -14
- data/tests/models/rds/parameter_group_tests.rb +0 -24
- data/tests/models/rds/parameter_groups_tests.rb +0 -8
- data/tests/models/rds/security_group_tests.rb +0 -53
- data/tests/models/rds/security_groups_tests.rb +0 -5
- data/tests/models/rds/server_tests.rb +0 -131
- data/tests/models/rds/servers_tests.rb +0 -24
- data/tests/models/rds/snapshot_tests.rb +0 -12
- data/tests/models/rds/snapshots_tests.rb +0 -12
- data/tests/models/rds/tagging_tests.rb +0 -20
- data/tests/models/sns/topic_tests.rb +0 -15
- data/tests/models/sns/topics_tests.rb +0 -6
- data/tests/models/storage/directory_tests.rb +0 -91
- data/tests/models/storage/file_tests.rb +0 -121
- data/tests/models/storage/files_tests.rb +0 -58
- data/tests/models/storage/url_tests.rb +0 -44
- data/tests/models/storage/version_tests.rb +0 -52
- data/tests/models/storage/versions_tests.rb +0 -56
- data/tests/parsers/elb/describe_load_balancers.rb +0 -65
- data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -93
- data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
- data/tests/requests/auto_scaling/helper.rb +0 -228
- data/tests/requests/auto_scaling/model_tests.rb +0 -233
- data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
- data/tests/requests/auto_scaling/tag_tests.rb +0 -63
- data/tests/requests/beanstalk/application_tests.rb +0 -140
- data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
- data/tests/requests/cdn/cdn_tests.rb +0 -252
- data/tests/requests/cloud_formation/stack_tests.rb +0 -167
- data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
- data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
- data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
- data/tests/requests/compute/address_tests.rb +0 -121
- data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
- data/tests/requests/compute/availability_zone_tests.rb +0 -25
- data/tests/requests/compute/client_tests.rb +0 -25
- data/tests/requests/compute/dhcp_options_tests.rb +0 -39
- data/tests/requests/compute/helper.rb +0 -10
- data/tests/requests/compute/image_tests.rb +0 -158
- data/tests/requests/compute/instance_attrib_tests.rb +0 -168
- data/tests/requests/compute/instance_tests.rb +0 -338
- data/tests/requests/compute/internet_gateway_tests.rb +0 -49
- data/tests/requests/compute/key_pair_tests.rb +0 -67
- data/tests/requests/compute/network_acl_tests.rb +0 -112
- data/tests/requests/compute/network_interface_tests.rb +0 -250
- data/tests/requests/compute/placement_group_tests.rb +0 -48
- data/tests/requests/compute/region_tests.rb +0 -52
- data/tests/requests/compute/route_tests.rb +0 -340
- data/tests/requests/compute/security_group_tests.rb +0 -446
- data/tests/requests/compute/snapshot_tests.rb +0 -77
- data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
- data/tests/requests/compute/spot_instance_tests.rb +0 -57
- data/tests/requests/compute/spot_price_history_tests.rb +0 -23
- data/tests/requests/compute/subnet_tests.rb +0 -85
- data/tests/requests/compute/tag_tests.rb +0 -101
- data/tests/requests/compute/volume_tests.rb +0 -223
- data/tests/requests/compute/vpc_tests.rb +0 -178
- data/tests/requests/data_pipeline/helper.rb +0 -72
- data/tests/requests/data_pipeline/pipeline_tests.rb +0 -78
- data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
- data/tests/requests/dns/dns_tests.rb +0 -244
- data/tests/requests/dns/health_check_tests.rb +0 -159
- data/tests/requests/dns/helper.rb +0 -21
- data/tests/requests/dynamodb/item_tests.rb +0 -137
- data/tests/requests/dynamodb/table_tests.rb +0 -99
- data/tests/requests/ecs/cluster_tests.rb +0 -112
- data/tests/requests/ecs/container_instance_tests.rb +0 -119
- data/tests/requests/ecs/helper.rb +0 -276
- data/tests/requests/ecs/sample_task_definition1.json +0 -56
- data/tests/requests/ecs/service_tests.rb +0 -132
- data/tests/requests/ecs/task_definitions_tests.rb +0 -97
- data/tests/requests/ecs/task_tests.rb +0 -145
- data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
- data/tests/requests/elasticache/describe_events.rb +0 -17
- data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
- data/tests/requests/elasticache/helper.rb +0 -103
- data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
- data/tests/requests/elasticache/security_group_tests.rb +0 -108
- data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
- data/tests/requests/elb/helper.rb +0 -91
- data/tests/requests/elb/listener_tests.rb +0 -68
- data/tests/requests/elb/load_balancer_tests.rb +0 -89
- data/tests/requests/elb/policy_tests.rb +0 -132
- data/tests/requests/emr/helper.rb +0 -167
- data/tests/requests/emr/instance_group_tests.rb +0 -106
- data/tests/requests/emr/job_flow_tests.rb +0 -88
- data/tests/requests/federation/get_signin_token_tests.rb +0 -11
- data/tests/requests/glacier/archive_tests.rb +0 -13
- data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
- data/tests/requests/glacier/tree_hash_tests.rb +0 -62
- data/tests/requests/glacier/vault_tests.rb +0 -35
- data/tests/requests/iam/access_key_tests.rb +0 -53
- data/tests/requests/iam/account_policy_tests.rb +0 -20
- data/tests/requests/iam/account_tests.rb +0 -34
- data/tests/requests/iam/group_policy_tests.rb +0 -48
- data/tests/requests/iam/group_tests.rb +0 -44
- data/tests/requests/iam/helper.rb +0 -136
- data/tests/requests/iam/login_profile_tests.rb +0 -62
- data/tests/requests/iam/managed_policy_tests.rb +0 -112
- data/tests/requests/iam/mfa_tests.rb +0 -23
- data/tests/requests/iam/role_tests.rb +0 -156
- data/tests/requests/iam/server_certificate_tests.rb +0 -130
- data/tests/requests/iam/user_policy_tests.rb +0 -45
- data/tests/requests/iam/user_tests.rb +0 -78
- data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -114
- data/tests/requests/kinesis/helper.rb +0 -111
- data/tests/requests/kinesis/stream_tests.rb +0 -169
- data/tests/requests/kms/helper.rb +0 -27
- data/tests/requests/kms/key_tests.rb +0 -23
- data/tests/requests/lambda/function_sample_1.js +0 -9
- data/tests/requests/lambda/function_sample_2.js +0 -9
- data/tests/requests/lambda/function_tests.rb +0 -460
- data/tests/requests/lambda/helper.rb +0 -81
- data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
- data/tests/requests/rds/cluster_tests.rb +0 -37
- data/tests/requests/rds/db_engine_versions.rb +0 -7
- data/tests/requests/rds/db_snapshot_tests.rb +0 -62
- data/tests/requests/rds/describe_events.rb +0 -16
- data/tests/requests/rds/event_subscription_tests.rb +0 -30
- data/tests/requests/rds/helper.rb +0 -401
- data/tests/requests/rds/instance_option_tests.rb +0 -21
- data/tests/requests/rds/instance_tests.rb +0 -149
- data/tests/requests/rds/log_file_tests.rb +0 -19
- data/tests/requests/rds/parameter_group_tests.rb +0 -62
- data/tests/requests/rds/parameter_request_tests.rb +0 -32
- data/tests/requests/rds/security_group_tests.rb +0 -101
- data/tests/requests/rds/subnet_groups_tests.rb +0 -52
- data/tests/requests/rds/tagging_tests.rb +0 -78
- data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
- data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
- data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
- data/tests/requests/redshift/cluster_tests.rb +0 -80
- data/tests/requests/ses/helper.rb +0 -9
- data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
- data/tests/requests/ses/verified_email_address_tests.rb +0 -27
- data/tests/requests/simpledb/attributes_tests.rb +0 -86
- data/tests/requests/simpledb/domain_tests.rb +0 -51
- data/tests/requests/simpledb/helper.rb +0 -10
- data/tests/requests/sns/helper.rb +0 -9
- data/tests/requests/sns/subscription_tests.rb +0 -86
- data/tests/requests/sns/topic_tests.rb +0 -53
- data/tests/requests/sqs/helper.rb +0 -9
- data/tests/requests/sqs/message_tests.rb +0 -51
- data/tests/requests/sqs/queue_tests.rb +0 -50
- data/tests/requests/storage/acl_utils_tests.rb +0 -209
- data/tests/requests/storage/bucket_tests.rb +0 -416
- data/tests/requests/storage/cors_utils_tests.rb +0 -108
- data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
- data/tests/requests/storage/multipart_upload_tests.rb +0 -121
- data/tests/requests/storage/object_tests.rb +0 -195
- data/tests/requests/storage/versioning_tests.rb +0 -258
- data/tests/requests/sts/assume_role_tests.rb +0 -19
- data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
- data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -26
- data/tests/requests/sts/get_federation_token_tests.rb +0 -20
- data/tests/requests/sts/session_token_tests.rb +0 -16
- data/tests/signaturev4_tests.rb +0 -107
- data/tests/signed_params_tests.rb +0 -17
- data/tests/storage_tests.rb +0 -7
data/lib/fog/aws/compute.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute < Fog::Service
|
4
4
|
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
5
5
|
|
6
|
+
class RequestLimitExceeded < Fog::Errors::Error; end
|
7
|
+
|
6
8
|
requires :aws_access_key_id, :aws_secret_access_key
|
7
|
-
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name, :version
|
9
|
+
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name, :version, :retry_request_limit_exceeded, :retry_jitter_magnitude
|
8
10
|
|
9
11
|
secrets :aws_secret_access_key, :hmac, :aws_session_token
|
10
12
|
|
@@ -54,6 +56,7 @@ module Fog
|
|
54
56
|
request :attach_classic_link_vpc
|
55
57
|
request :attach_internet_gateway
|
56
58
|
request :attach_volume
|
59
|
+
request :authorize_security_group_egress
|
57
60
|
request :authorize_security_group_ingress
|
58
61
|
request :cancel_spot_instance_requests
|
59
62
|
request :create_dhcp_options
|
@@ -98,6 +101,7 @@ module Fog
|
|
98
101
|
request :describe_classic_link_instances
|
99
102
|
request :describe_dhcp_options
|
100
103
|
request :describe_images
|
104
|
+
request :describe_image_attribute
|
101
105
|
request :describe_instances
|
102
106
|
request :describe_instance_attribute
|
103
107
|
request :describe_internet_gateways
|
@@ -119,28 +123,35 @@ module Fog
|
|
119
123
|
request :describe_subnets
|
120
124
|
request :describe_tags
|
121
125
|
request :describe_volumes
|
126
|
+
request :describe_volumes_modifications
|
122
127
|
request :describe_volume_status
|
123
128
|
request :describe_vpcs
|
124
129
|
request :describe_vpc_attribute
|
125
130
|
request :describe_vpc_classic_link
|
131
|
+
request :describe_vpc_classic_link_dns_support
|
126
132
|
request :detach_network_interface
|
127
133
|
request :detach_internet_gateway
|
128
134
|
request :detach_volume
|
129
135
|
request :detach_classic_link_vpc
|
130
136
|
request :disable_vpc_classic_link
|
137
|
+
request :disable_vpc_classic_link_dns_support
|
131
138
|
request :disassociate_address
|
132
139
|
request :disassociate_route_table
|
133
140
|
request :enable_vpc_classic_link
|
141
|
+
request :enable_vpc_classic_link_dns_support
|
134
142
|
request :get_console_output
|
135
143
|
request :get_password_data
|
136
144
|
request :import_key_pair
|
137
145
|
request :modify_image_attribute
|
138
146
|
request :modify_instance_attribute
|
147
|
+
request :modify_instance_placement
|
139
148
|
request :modify_network_interface_attribute
|
140
149
|
request :modify_snapshot_attribute
|
141
150
|
request :modify_subnet_attribute
|
151
|
+
request :modify_volume
|
142
152
|
request :modify_volume_attribute
|
143
153
|
request :modify_vpc_attribute
|
154
|
+
request :move_address_to_vpc
|
144
155
|
request :purchase_reserved_instances_offering
|
145
156
|
request :reboot_instances
|
146
157
|
request :release_address
|
@@ -150,6 +161,8 @@ module Fog
|
|
150
161
|
request :register_image
|
151
162
|
request :request_spot_instances
|
152
163
|
request :reset_network_interface_attribute
|
164
|
+
request :restore_address_to_classic
|
165
|
+
request :revoke_security_group_egress
|
153
166
|
request :revoke_security_group_ingress
|
154
167
|
request :run_instances
|
155
168
|
request :terminate_instances
|
@@ -175,15 +188,18 @@ module Fog
|
|
175
188
|
|
176
189
|
class Mock
|
177
190
|
MOCKED_TAG_TYPES = {
|
178
|
-
'
|
179
|
-
'
|
191
|
+
'acl' => 'network_acl',
|
192
|
+
'ami' => 'image',
|
193
|
+
'igw' => 'internet_gateway',
|
194
|
+
'i' => 'instance',
|
195
|
+
'rtb' => 'route_table',
|
180
196
|
'snap' => 'snapshot',
|
181
|
-
'vol'
|
182
|
-
'
|
183
|
-
'acl' => 'network_acl',
|
184
|
-
'vpc' => 'vpc'
|
197
|
+
'vol' => 'volume',
|
198
|
+
'vpc' => 'vpc'
|
185
199
|
}
|
186
200
|
|
201
|
+
VPC_BLANK_VALUE = 'none'
|
202
|
+
|
187
203
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
188
204
|
|
189
205
|
def self.data
|
@@ -217,21 +233,24 @@ module Fog
|
|
217
233
|
'fromPort' => -1,
|
218
234
|
'toPort' => -1,
|
219
235
|
'ipProtocol' => 'icmp',
|
220
|
-
'ipRanges' => []
|
236
|
+
'ipRanges' => [],
|
237
|
+
'ipv6Ranges' => []
|
221
238
|
},
|
222
239
|
{
|
223
240
|
'groups' => [{'groupName' => 'default', 'userId' => owner_id, 'groupId' => security_group_id}],
|
224
241
|
'fromPort' => 0,
|
225
242
|
'toPort' => 65535,
|
226
243
|
'ipProtocol' => 'tcp',
|
227
|
-
'ipRanges' => []
|
244
|
+
'ipRanges' => [],
|
245
|
+
'ipv6Ranges' => []
|
228
246
|
},
|
229
247
|
{
|
230
248
|
'groups' => [{'groupName' => 'default', 'userId' => owner_id, 'groupId' => security_group_id}],
|
231
249
|
'fromPort' => 0,
|
232
250
|
'toPort' => 65535,
|
233
251
|
'ipProtocol' => 'udp',
|
234
|
-
'ipRanges' => []
|
252
|
+
'ipRanges' => [],
|
253
|
+
'ipv6Ranges' => []
|
235
254
|
}
|
236
255
|
],
|
237
256
|
'ownerId' => owner_id
|
@@ -272,7 +291,7 @@ module Fog
|
|
272
291
|
"attributeName" => "supported-platforms"
|
273
292
|
},
|
274
293
|
{
|
275
|
-
"values" => [
|
294
|
+
"values" => [VPC_BLANK_VALUE],
|
276
295
|
"attributeName" => "default-vpc"
|
277
296
|
},
|
278
297
|
{
|
@@ -283,7 +302,9 @@ module Fog
|
|
283
302
|
"values" => ["5"],
|
284
303
|
"attributeName" => "vpc-max-elastic-ips"
|
285
304
|
}
|
286
|
-
]
|
305
|
+
],
|
306
|
+
:spot_requests => {},
|
307
|
+
:volume_modifications => {}
|
287
308
|
}
|
288
309
|
end
|
289
310
|
end
|
@@ -361,9 +382,82 @@ module Fog
|
|
361
382
|
self.data[:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"] = values
|
362
383
|
end
|
363
384
|
|
385
|
+
def default_vpc
|
386
|
+
vpc_id = describe_account_attributes.body["accountAttributeSet"].find{ |h| h["attributeName"] == "default-vpc" }["values"].first
|
387
|
+
vpc_id == VPC_BLANK_VALUE ? nil : vpc_id
|
388
|
+
end
|
389
|
+
|
390
|
+
def default_vpc=(value)
|
391
|
+
self.data[:account_attributes].find { |h| h["attributeName"] == "default-vpc" }["values"] = [value]
|
392
|
+
end
|
393
|
+
|
394
|
+
def setup_default_vpc!
|
395
|
+
return if default_vpc.present?
|
396
|
+
|
397
|
+
disable_ec2_classic
|
398
|
+
|
399
|
+
vpc_id = Fog::AWS::Mock.default_vpc_for(region)
|
400
|
+
self.default_vpc = vpc_id
|
401
|
+
|
402
|
+
data[:vpcs] << {
|
403
|
+
'vpcId' => vpc_id,
|
404
|
+
'state' => 'available',
|
405
|
+
'cidrBlock' => '172.31.0.0/16',
|
406
|
+
'dhcpOptionsId' => Fog::AWS::Mock.dhcp_options_id,
|
407
|
+
'tagSet' => {},
|
408
|
+
'instanceTenancy' => 'default',
|
409
|
+
'enableDnsSupport' => true,
|
410
|
+
'enableDnsHostnames' => true,
|
411
|
+
'isDefault' => true
|
412
|
+
}
|
413
|
+
|
414
|
+
internet_gateway_id = Fog::AWS::Mock.internet_gateway_id
|
415
|
+
data[:internet_gateways][internet_gateway_id] = {
|
416
|
+
'internetGatewayId' => internet_gateway_id,
|
417
|
+
'attachmentSet' => {
|
418
|
+
'vpcId' => vpc_id,
|
419
|
+
'state' => 'available'
|
420
|
+
},
|
421
|
+
'tagSet' => {}
|
422
|
+
}
|
423
|
+
|
424
|
+
data[:route_tables] << {
|
425
|
+
'routeTableId' => Fog::AWS::Mock.route_table_id,
|
426
|
+
'vpcId' => vpc_id,
|
427
|
+
'routes' => [
|
428
|
+
{
|
429
|
+
'destinationCidrBlock' => '172.31.0.0/16',
|
430
|
+
'gatewayId' => 'local',
|
431
|
+
'state' => 'active',
|
432
|
+
'origin' => 'CreateRouteTable'
|
433
|
+
},
|
434
|
+
{
|
435
|
+
'destinationCidrBlock' => '0.0.0.0/0',
|
436
|
+
'gatewayId' => internet_gateway_id,
|
437
|
+
'state' => 'active',
|
438
|
+
'origin' => 'CreateRoute'
|
439
|
+
}
|
440
|
+
]
|
441
|
+
}
|
442
|
+
|
443
|
+
describe_availability_zones.body['availabilityZoneInfo'].map { |z| z['zoneName'] }.each_with_index do |zone, i|
|
444
|
+
data[:subnets] << {
|
445
|
+
'subnetId' => Fog::AWS::Mock.subnet_id,
|
446
|
+
'state' => 'available',
|
447
|
+
'vpcId' => vpc_id,
|
448
|
+
'cidrBlock' => "172.31.#{i}.0/16",
|
449
|
+
'availableIpAddressCount' => '251',
|
450
|
+
'availabilityZone' => zone,
|
451
|
+
'tagSet' => {},
|
452
|
+
'mapPublicIpOnLaunch' => true,
|
453
|
+
'defaultForAz' => true
|
454
|
+
}
|
455
|
+
end
|
456
|
+
end
|
457
|
+
|
364
458
|
def tagged_resources(resources)
|
365
459
|
Array(resources).map do |resource_id|
|
366
|
-
if match = resource_id.match(/^(\w+)-[a-z0-9]{8}/i)
|
460
|
+
if match = resource_id.match(/^(\w+)-[a-z0-9]{8,17}/i)
|
367
461
|
id = match.captures.first
|
368
462
|
else
|
369
463
|
raise(Fog::Service::NotFound.new("Unknown resource id #{resource_id}"))
|
@@ -384,6 +478,10 @@ module Fog
|
|
384
478
|
if self.data[:vpcs].select {|v| v['vpcId'] == resource_id }.empty?
|
385
479
|
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the vpc does not exist"))
|
386
480
|
end
|
481
|
+
when 'route_table'
|
482
|
+
unless self.data[:route_tables].detect { |r| r['routeTableId'] == resource_id }
|
483
|
+
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the route table does not exist"))
|
484
|
+
end
|
387
485
|
else
|
388
486
|
unless self.data[:"#{type}s"][resource_id]
|
389
487
|
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the #{type} does not exist"))
|
@@ -453,11 +551,13 @@ module Fog
|
|
453
551
|
|
454
552
|
def initialize(options={})
|
455
553
|
|
456
|
-
@connection_options
|
457
|
-
@region
|
458
|
-
@instrumentor
|
459
|
-
@instrumentor_name
|
460
|
-
@version
|
554
|
+
@connection_options = options[:connection_options] || {}
|
555
|
+
@region = options[:region] ||= 'us-east-1'
|
556
|
+
@instrumentor = options[:instrumentor]
|
557
|
+
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.compute'
|
558
|
+
@version = options[:version] || '2016-11-15'
|
559
|
+
@retry_request_limit_exceeded = options.fetch(:retry_request_limit_exceeded, true)
|
560
|
+
@retry_jitter_magnitude = options[:retry_jitter_magnitude] || 0.1
|
461
561
|
|
462
562
|
@use_iam_profile = options[:use_iam_profile]
|
463
563
|
setup_credentials(options)
|
@@ -521,7 +621,11 @@ module Fog
|
|
521
621
|
end
|
522
622
|
end
|
523
623
|
|
524
|
-
def _request(body, headers, idempotent, parser)
|
624
|
+
def _request(body, headers, idempotent, parser, retries = 0)
|
625
|
+
|
626
|
+
max_retries = 10
|
627
|
+
|
628
|
+
begin
|
525
629
|
@connection.request({
|
526
630
|
:body => body,
|
527
631
|
:expects => 200,
|
@@ -530,17 +634,44 @@ module Fog
|
|
530
634
|
:method => 'POST',
|
531
635
|
:parser => parser
|
532
636
|
})
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
637
|
+
rescue Excon::Errors::HTTPStatusError => error
|
638
|
+
match = Fog::AWS::Errors.match_error(error)
|
639
|
+
raise if match.empty?
|
640
|
+
raise case match[:code]
|
537
641
|
when 'NotFound', 'Unknown'
|
538
|
-
Fog::Compute::
|
642
|
+
Fog::AWS::Compute::NotFound.slurp(error, match[:message])
|
643
|
+
when 'RequestLimitExceeded'
|
644
|
+
if @retry_request_limit_exceeded && retries < max_retries
|
645
|
+
jitter = rand * 10 * @retry_jitter_magnitude
|
646
|
+
wait_time = ((2.0 ** (1.0 + retries) * 100) / 1000.0) + jitter
|
647
|
+
Fog::Logger.warning "Waiting #{wait_time} seconds to retry."
|
648
|
+
sleep(wait_time)
|
649
|
+
retries += 1
|
650
|
+
retry
|
651
|
+
elsif @retry_request_limit_exceeded
|
652
|
+
Fog::AWS::Compute::RequestLimitExceeded.slurp(error, "Max retries exceeded (#{max_retries}) #{match[:code]} => #{match[:message]}")
|
653
|
+
else
|
654
|
+
Fog::AWS::Compute::RequestLimitExceeded.slurp(error, "#{match[:code]} => #{match[:message]}")
|
655
|
+
end
|
539
656
|
else
|
540
|
-
Fog::Compute::
|
657
|
+
Fog::AWS::Compute::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
|
541
658
|
end
|
659
|
+
end
|
542
660
|
end
|
543
661
|
end
|
544
662
|
end
|
545
663
|
end
|
664
|
+
|
665
|
+
# @deprecated
|
666
|
+
module Compute
|
667
|
+
# @deprecated
|
668
|
+
class AWS < Fog::AWS::Compute
|
669
|
+
# @deprecated
|
670
|
+
# @overrides Fog::Service.new (from the fog-core gem)
|
671
|
+
def self.new(*)
|
672
|
+
Fog::Logger.deprecation 'Fog::Compute::AWS is deprecated, please use Fog::AWS::Compute.'
|
673
|
+
super
|
674
|
+
end
|
675
|
+
end
|
676
|
+
end
|
546
677
|
end
|
@@ -1,8 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'securerandom'
|
4
|
+
|
1
5
|
module Fog
|
2
6
|
module AWS
|
3
7
|
module CredentialFetcher
|
4
8
|
|
5
9
|
INSTANCE_METADATA_HOST = "http://169.254.169.254"
|
10
|
+
INSTANCE_METADATA_TOKEN = "/latest/api/token"
|
6
11
|
INSTANCE_METADATA_PATH = "/latest/meta-data/iam/security-credentials/"
|
7
12
|
INSTANCE_METADATA_AZ = "/latest/meta-data/placement/availability-zone/"
|
8
13
|
|
@@ -11,30 +16,65 @@ module Fog
|
|
11
16
|
module ServiceMethods
|
12
17
|
def fetch_credentials(options)
|
13
18
|
if options[:use_iam_profile] && Fog.mocking?
|
14
|
-
Fog::Compute::
|
19
|
+
return Fog::AWS::Compute::Mock.data[:iam_role_based_creds]
|
15
20
|
end
|
16
21
|
if options[:use_iam_profile]
|
17
22
|
begin
|
18
23
|
role_data = nil
|
19
|
-
|
24
|
+
region = options[:region] || ENV["AWS_DEFAULT_REGION"]
|
20
25
|
|
21
26
|
if ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
|
22
27
|
connection = options[:connection] || Excon.new(CONTAINER_CREDENTIALS_HOST)
|
23
28
|
credential_path = options[:credential_path] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
|
24
|
-
role_data = connection.get(:path => credential_path, :expects => 200).body
|
29
|
+
role_data = connection.get(:path => credential_path, :idempotent => true, :expects => 200).body
|
30
|
+
session = Fog::JSON.decode(role_data)
|
31
|
+
|
32
|
+
if region.nil?
|
33
|
+
connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
|
34
|
+
token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
|
35
|
+
region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
|
36
|
+
end
|
37
|
+
elsif ENV["AWS_WEB_IDENTITY_TOKEN_FILE"]
|
38
|
+
params = {
|
39
|
+
:Action => "AssumeRoleWithWebIdentity",
|
40
|
+
:RoleArn => options[:role_arn] || ENV.fetch("AWS_ROLE_ARN"),
|
41
|
+
:RoleSessionName => options[:role_session_name] || ENV["AWS_ROLE_SESSION_NAME"] || "fog-aws-#{SecureRandom.hex}",
|
42
|
+
:WebIdentityToken => File.read(options[:aws_web_identity_token_file] || ENV.fetch("AWS_WEB_IDENTITY_TOKEN_FILE")),
|
43
|
+
:Version => "2011-06-15",
|
44
|
+
}
|
45
|
+
|
46
|
+
sts_endpoint =
|
47
|
+
if ENV["AWS_STS_REGIONAL_ENDPOINTS"] == "regional" && region
|
48
|
+
"https://sts.#{region}.amazonaws.com"
|
49
|
+
else
|
50
|
+
"https://sts.amazonaws.com"
|
51
|
+
end
|
25
52
|
|
26
|
-
connection = options[:
|
27
|
-
|
53
|
+
connection = options[:connection] || Excon.new(sts_endpoint, :query => params)
|
54
|
+
document = Nokogiri::XML(connection.get(:idempotent => true, :expects => 200).body)
|
55
|
+
|
56
|
+
session = {
|
57
|
+
"AccessKeyId" => document.css("AccessKeyId").children.text,
|
58
|
+
"SecretAccessKey" => document.css("SecretAccessKey").children.text,
|
59
|
+
"Token" => document.css("SessionToken").children.text,
|
60
|
+
"Expiration" => document.css("Expiration").children.text,
|
61
|
+
}
|
62
|
+
|
63
|
+
if region.nil?
|
64
|
+
connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
|
65
|
+
token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
|
66
|
+
region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
|
67
|
+
end
|
28
68
|
else
|
29
69
|
connection = options[:connection] || Excon.new(INSTANCE_METADATA_HOST)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
70
|
+
token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
|
71
|
+
role_name = connection.get(:path => INSTANCE_METADATA_PATH, :idempotent => true, :expects => 200, :headers => token_header).body
|
72
|
+
role_data = connection.get(:path => INSTANCE_METADATA_PATH+role_name, :idempotent => true, :expects => 200, :headers => token_header).body
|
73
|
+
session = Fog::JSON.decode(role_data)
|
34
74
|
|
35
|
-
|
75
|
+
region ||= connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
|
76
|
+
end
|
36
77
|
|
37
|
-
session = Fog::JSON.decode(role_data)
|
38
78
|
credentials = {}
|
39
79
|
credentials[:aws_access_key_id] = session['AccessKeyId']
|
40
80
|
credentials[:aws_secret_access_key] = session['SecretAccessKey']
|
@@ -43,6 +83,7 @@ module Fog
|
|
43
83
|
|
44
84
|
# set region by default to the one the instance is in.
|
45
85
|
credentials[:region] = region
|
86
|
+
credentials[:sts_endpoint] = sts_endpoint if sts_endpoint
|
46
87
|
#these indicate the metadata service is unavailable or has no profile setup
|
47
88
|
credentials
|
48
89
|
rescue Excon::Error => e
|
@@ -53,6 +94,26 @@ module Fog
|
|
53
94
|
super
|
54
95
|
end
|
55
96
|
end
|
97
|
+
|
98
|
+
def fetch_credentials_token_header(connection, disable_imds_v2)
|
99
|
+
return nil if disable_imds_v2
|
100
|
+
|
101
|
+
token = connection.put(
|
102
|
+
:path => INSTANCE_METADATA_TOKEN,
|
103
|
+
:idempotent => true,
|
104
|
+
:expects => 200,
|
105
|
+
:retry_interval => 1,
|
106
|
+
:retry_limit => 3,
|
107
|
+
:read_timeout => 1,
|
108
|
+
:write_timeout => 1,
|
109
|
+
:connect_timeout => 1,
|
110
|
+
:headers => { "X-aws-ec2-metadata-token-ttl-seconds" => "300" }
|
111
|
+
).body
|
112
|
+
|
113
|
+
{ "X-aws-ec2-metadata-token" => token }
|
114
|
+
rescue Excon::Error
|
115
|
+
nil
|
116
|
+
end
|
56
117
|
end
|
57
118
|
|
58
119
|
module ConnectionMethods
|
@@ -62,15 +123,22 @@ module Fog
|
|
62
123
|
|
63
124
|
private
|
64
125
|
|
126
|
+
# When defined, 'aws_credentials_refresh_threshold_seconds' controls
|
127
|
+
# when the credential needs to be refreshed, expressed in seconds before
|
128
|
+
# the current credential's expiration time
|
129
|
+
def credentials_refresh_threshold
|
130
|
+
@aws_credentials_refresh_threshold_seconds || 15
|
131
|
+
end
|
132
|
+
|
65
133
|
def credentials_expired?
|
66
134
|
@use_iam_profile &&
|
67
135
|
(!@aws_credentials_expire_at ||
|
68
|
-
(@aws_credentials_expire_at && Fog::Time.now > @aws_credentials_expire_at -
|
136
|
+
(@aws_credentials_expire_at && Fog::Time.now > @aws_credentials_expire_at - credentials_refresh_threshold)) #new credentials become available from around 5 minutes before expiration time
|
69
137
|
end
|
70
138
|
|
71
139
|
def refresh_credentials
|
72
140
|
if @use_iam_profile
|
73
|
-
new_credentials = service.fetch_credentials :use_iam_profile => @use_iam_profile
|
141
|
+
new_credentials = service.fetch_credentials :use_iam_profile => @use_iam_profile, :region => @region
|
74
142
|
if new_credentials.any?
|
75
143
|
setup_credentials new_credentials
|
76
144
|
return true
|
@@ -9,6 +9,7 @@ module Fog
|
|
9
9
|
request_path 'fog/aws/requests/data_pipeline'
|
10
10
|
request :activate_pipeline
|
11
11
|
request :create_pipeline
|
12
|
+
request :deactivate_pipeline
|
12
13
|
request :delete_pipeline
|
13
14
|
request :describe_pipelines
|
14
15
|
request :list_pipelines
|
@@ -22,8 +23,58 @@ module Fog
|
|
22
23
|
collection :pipelines
|
23
24
|
|
24
25
|
class Mock
|
26
|
+
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
27
|
+
|
28
|
+
def self.data
|
29
|
+
@data ||= Hash.new do |hash, region|
|
30
|
+
hash[region] = Hash.new do |region_hash, key|
|
31
|
+
region_hash[key] = {
|
32
|
+
:pipelines => {},
|
33
|
+
:pipeline_definitions => {},
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.reset
|
40
|
+
@data = nil
|
41
|
+
end
|
42
|
+
|
43
|
+
def data
|
44
|
+
self.class.data[@region][@aws_access_key_id]
|
45
|
+
end
|
46
|
+
|
47
|
+
def reset
|
48
|
+
self.class.reset
|
49
|
+
end
|
50
|
+
|
51
|
+
attr_accessor :region
|
52
|
+
|
25
53
|
def initialize(options={})
|
26
|
-
|
54
|
+
@region = options[:region] || "us-east-1"
|
55
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
56
|
+
@aws_secret_access_key = options[:aws_secret_access_key]
|
57
|
+
end
|
58
|
+
|
59
|
+
def stringify_keys(object)
|
60
|
+
case object
|
61
|
+
when Hash
|
62
|
+
object.inject({}) { |h,(k,v)| h[k.to_s] = stringify_keys(v); h }
|
63
|
+
when Array
|
64
|
+
object.map { |v| stringify_keys(v) }
|
65
|
+
else
|
66
|
+
object
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def find_pipeline(id)
|
71
|
+
pipeline = self.data[:pipelines].values.detect { |p| p["pipelineId"] == id }
|
72
|
+
|
73
|
+
if pipeline.nil? || pipeline[:deleted]
|
74
|
+
raise Fog::AWS::DataPipeline::NotFound.new("Pipeline with id: #{id} does not exist")
|
75
|
+
end
|
76
|
+
|
77
|
+
pipeline
|
27
78
|
end
|
28
79
|
end
|
29
80
|
|
@@ -116,7 +167,19 @@ module Fog
|
|
116
167
|
end
|
117
168
|
|
118
169
|
def _request(params)
|
119
|
-
@connection.request(params)
|
170
|
+
response = @connection.request(params)
|
171
|
+
|
172
|
+
unless response.body.empty?
|
173
|
+
response.body = Fog::JSON.decode(response.body)
|
174
|
+
end
|
175
|
+
|
176
|
+
response
|
177
|
+
rescue Excon::Error::BadRequest => error
|
178
|
+
match = Fog::AWS::Errors.match_error(error)
|
179
|
+
raise if match.empty?
|
180
|
+
if %w(PipelineNotFoundException PipelineDeletedException).include?(match[:code])
|
181
|
+
raise Fog::AWS::DataPipeline::NotFound.slurp(error, match[:message])
|
182
|
+
end
|
120
183
|
end
|
121
184
|
end
|
122
185
|
end
|