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
@@ -1,9 +1,16 @@
|
|
1
1
|
require 'fog/aws/models/storage/versions'
|
2
2
|
|
3
3
|
module Fog
|
4
|
-
module
|
5
|
-
class
|
4
|
+
module AWS
|
5
|
+
class Storage
|
6
6
|
class File < Fog::Model
|
7
|
+
# @deprecated use {Fog::AWS::Storage::MIN_MULTIPART_CHUNK_SIZE} instead
|
8
|
+
MIN_MULTIPART_CHUNK_SIZE = Fog::AWS::Storage::MIN_MULTIPART_CHUNK_SIZE
|
9
|
+
# @deprecated use {Fog::AWS::Storage::MAX_SINGLE_PUT_SIZE} instead
|
10
|
+
MAX_SINGLE_PUT_SIZE = Fog::AWS::Storage::MAX_SINGLE_PUT_SIZE
|
11
|
+
# @deprecated not used for anything
|
12
|
+
MULTIPART_COPY_THRESHOLD = 15728640
|
13
|
+
|
7
14
|
# @see AWS Object docs http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html
|
8
15
|
|
9
16
|
identity :key, :aliases => 'Key'
|
@@ -24,15 +31,58 @@ module Fog
|
|
24
31
|
attribute :encryption, :aliases => 'x-amz-server-side-encryption'
|
25
32
|
attribute :encryption_key, :aliases => 'x-amz-server-side-encryption-customer-key'
|
26
33
|
attribute :version, :aliases => 'x-amz-version-id'
|
34
|
+
attribute :kms_key_id, :aliases => 'x-amz-server-side-encryption-aws-kms-key-id'
|
35
|
+
attribute :tags, :aliases => 'x-amz-tagging'
|
36
|
+
attribute :website_redirect_location, :aliases => 'x-amz-website-redirect-location'
|
37
|
+
|
38
|
+
UploadPartData = Struct.new(:part_number, :upload_options, :etag)
|
39
|
+
|
40
|
+
class PartList
|
41
|
+
def initialize(parts = [])
|
42
|
+
@parts = parts
|
43
|
+
@mutex = Mutex.new
|
44
|
+
end
|
45
|
+
|
46
|
+
def push(part)
|
47
|
+
@mutex.synchronize { @parts.push(part) }
|
48
|
+
end
|
49
|
+
|
50
|
+
def shift
|
51
|
+
@mutex.synchronize { @parts.shift }
|
52
|
+
end
|
53
|
+
|
54
|
+
def clear!
|
55
|
+
@mutex.synchronize { @parts.clear }
|
56
|
+
end
|
57
|
+
|
58
|
+
def size
|
59
|
+
@mutex.synchronize { @parts.size }
|
60
|
+
end
|
61
|
+
|
62
|
+
def to_a
|
63
|
+
@mutex.synchronize { @parts.dup }
|
64
|
+
end
|
65
|
+
end
|
27
66
|
|
28
67
|
# @note Chunk size to use for multipart uploads.
|
29
68
|
# Use small chunk sizes to minimize memory. E.g. 5242880 = 5mb
|
30
69
|
attr_reader :multipart_chunk_size
|
31
70
|
def multipart_chunk_size=(mp_chunk_size)
|
32
|
-
|
71
|
+
service.validate_chunk_size(mp_chunk_size, 'multipart_chunk_size')
|
33
72
|
@multipart_chunk_size = mp_chunk_size
|
34
73
|
end
|
35
74
|
|
75
|
+
# @note Number of threads used to copy files.
|
76
|
+
def concurrency=(concurrency)
|
77
|
+
raise ArgumentError.new('minimum concurrency is 1') if concurrency.to_i < 1
|
78
|
+
|
79
|
+
@concurrency = concurrency.to_i
|
80
|
+
end
|
81
|
+
|
82
|
+
def concurrency
|
83
|
+
@concurrency || 1
|
84
|
+
end
|
85
|
+
|
36
86
|
def acl
|
37
87
|
requires :directory, :key
|
38
88
|
service.get_object_acl(directory.key, key).body['AccessControlList']
|
@@ -58,15 +108,16 @@ module Fog
|
|
58
108
|
# @return [File]
|
59
109
|
#
|
60
110
|
def body
|
61
|
-
return attributes[:body] if attributes
|
62
|
-
return '' unless last_modified
|
111
|
+
return attributes[:body] if attributes.key?(:body)
|
63
112
|
|
64
113
|
file = collection.get(identity)
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
114
|
+
|
115
|
+
attributes[:body] =
|
116
|
+
if file
|
117
|
+
file.body
|
118
|
+
else
|
119
|
+
''
|
120
|
+
end
|
70
121
|
end
|
71
122
|
|
72
123
|
# Set body attribute.
|
@@ -97,7 +148,17 @@ module Fog
|
|
97
148
|
#
|
98
149
|
def copy(target_directory_key, target_file_key, options = {})
|
99
150
|
requires :directory, :key
|
100
|
-
|
151
|
+
|
152
|
+
self.multipart_chunk_size = service.max_copy_chunk_size if multipart_chunk_size.nil?
|
153
|
+
|
154
|
+
if multipart_chunk_size > 0 && self.content_length.to_i >= multipart_chunk_size
|
155
|
+
upload_part_options = options.select { |key, _| ALLOWED_UPLOAD_PART_OPTIONS.include?(key.to_sym) }
|
156
|
+
upload_part_options = upload_part_options.merge({ 'x-amz-copy-source' => "#{directory.key}/#{key}" })
|
157
|
+
multipart_copy(options, upload_part_options, target_directory_key, target_file_key)
|
158
|
+
else
|
159
|
+
service.copy_object(directory.key, key, target_directory_key, target_file_key, options)
|
160
|
+
end
|
161
|
+
|
101
162
|
target_directory = service.directories.new(:key => target_directory_key)
|
102
163
|
target_directory.files.head(target_file_key)
|
103
164
|
end
|
@@ -191,6 +252,8 @@ module Fog
|
|
191
252
|
# @option options [String] expires sets number of seconds before AWS Object expires.
|
192
253
|
# @option options [String] storage_class sets x-amz-storage-class HTTP header. Defaults to 'STANDARD'. Or, 'REDUCED_REDUNDANCY'
|
193
254
|
# @option options [String] encryption sets HTTP encryption header. Set to 'AES256' to encrypt files at rest on S3
|
255
|
+
# @option options [String] tags sets x-amz-tagging HTTP header. For example, 'Org-Id=1' or 'Org-Id=1&Service=MyService'
|
256
|
+
# @option options [String] website_redirect_location sets x-amz-website-redirect-location HTTP header. For example, 'website_redirect_location=http://www.rubydoc.info/github/fog/fog-aws'
|
194
257
|
# @return [Boolean] true if no errors
|
195
258
|
#
|
196
259
|
def save(options = {})
|
@@ -207,19 +270,19 @@ module Fog
|
|
207
270
|
options['Expires'] = expires if expires
|
208
271
|
options.merge!(metadata)
|
209
272
|
options['x-amz-storage-class'] = storage_class if storage_class
|
273
|
+
options['x-amz-tagging'] = tags if tags
|
274
|
+
options['x-amz-website-redirect-location'] = website_redirect_location if website_redirect_location
|
210
275
|
options.merge!(encryption_headers)
|
211
276
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
if multipart_chunk_size && Fog::Storage.get_body_size(body) >= multipart_chunk_size && body.respond_to?(:read)
|
277
|
+
self.multipart_chunk_size = service.max_put_chunk_size if multipart_chunk_size.nil?
|
278
|
+
if multipart_chunk_size > 0 && Fog::Storage.get_body_size(body) >= multipart_chunk_size && body.respond_to?(:read)
|
216
279
|
data = multipart_save(options)
|
217
280
|
merge_attributes(data.body)
|
218
281
|
else
|
219
282
|
data = service.put_object(directory.key, key, body, options)
|
220
283
|
merge_attributes(data.headers.reject {|key, value| ['Content-Length', 'Content-Type'].include?(key)})
|
221
284
|
end
|
222
|
-
self.etag.gsub
|
285
|
+
self.etag = self.etag.gsub('"','') if self.etag
|
223
286
|
self.content_length = Fog::Storage.get_body_size(body)
|
224
287
|
self.content_type ||= Fog::Storage.get_content_type(body)
|
225
288
|
true
|
@@ -239,11 +302,11 @@ module Fog
|
|
239
302
|
end
|
240
303
|
|
241
304
|
# File version if exists or creates new version.
|
242
|
-
# @return [Fog::Storage::
|
305
|
+
# @return [Fog::AWS::Storage::Version]
|
243
306
|
#
|
244
307
|
def versions
|
245
308
|
@versions ||= begin
|
246
|
-
Fog::Storage::
|
309
|
+
Fog::AWS::Storage::Versions.new(
|
247
310
|
:file => self,
|
248
311
|
:service => service
|
249
312
|
)
|
@@ -272,7 +335,12 @@ module Fog
|
|
272
335
|
body.rewind rescue nil
|
273
336
|
end
|
274
337
|
while (chunk = body.read(multipart_chunk_size)) do
|
275
|
-
part_upload = service.upload_part(directory.key, key, upload_id, part_tags.size + 1, chunk, part_headers(chunk
|
338
|
+
part_upload = service.upload_part(directory.key, key, upload_id, part_tags.size + 1, chunk, part_headers(chunk))
|
339
|
+
part_tags << part_upload.headers["ETag"]
|
340
|
+
end
|
341
|
+
|
342
|
+
if part_tags.empty? #it is an error to have a multipart upload with no parts
|
343
|
+
part_upload = service.upload_part(directory.key, key, upload_id, 1, '', part_headers(''))
|
276
344
|
part_tags << part_upload.headers["ETag"]
|
277
345
|
end
|
278
346
|
|
@@ -285,21 +353,52 @@ module Fog
|
|
285
353
|
service.complete_multipart_upload(directory.key, key, upload_id, part_tags)
|
286
354
|
end
|
287
355
|
|
356
|
+
def multipart_copy(options, upload_part_options, target_directory_key, target_file_key)
|
357
|
+
# Initiate the upload
|
358
|
+
res = service.initiate_multipart_upload(target_directory_key, target_file_key, options)
|
359
|
+
upload_id = res.body["UploadId"]
|
360
|
+
|
361
|
+
# Store ETags of upload parts
|
362
|
+
part_tags = []
|
363
|
+
pending = PartList.new(create_part_list(upload_part_options))
|
364
|
+
thread_count = self.concurrency
|
365
|
+
completed = PartList.new
|
366
|
+
errors = upload_in_threads(target_directory_key, target_file_key, upload_id, pending, completed, thread_count)
|
367
|
+
|
368
|
+
raise errors.first if errors.any?
|
369
|
+
|
370
|
+
part_tags = completed.to_a.sort_by { |part| part.part_number }.map(&:etag)
|
371
|
+
rescue => e
|
372
|
+
# Abort the upload & reraise
|
373
|
+
service.abort_multipart_upload(target_directory_key, target_file_key, upload_id) if upload_id
|
374
|
+
raise
|
375
|
+
else
|
376
|
+
# Complete the upload
|
377
|
+
service.complete_multipart_upload(target_directory_key, target_file_key, upload_id, part_tags)
|
378
|
+
end
|
379
|
+
|
288
380
|
def encryption_headers
|
289
381
|
if encryption && encryption_key
|
290
382
|
encryption_customer_key_headers
|
291
383
|
elsif encryption
|
292
|
-
{ 'x-amz-server-side-encryption' => encryption }
|
384
|
+
{ 'x-amz-server-side-encryption' => encryption, 'x-amz-server-side-encryption-aws-kms-key-id' => kms_key_id }.reject {|_, value| value.nil?}
|
293
385
|
else
|
294
386
|
{}
|
295
387
|
end
|
296
388
|
end
|
297
389
|
|
298
|
-
def part_headers(chunk
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
390
|
+
def part_headers(chunk)
|
391
|
+
base_headers = part_checksum_headers(chunk)
|
392
|
+
|
393
|
+
# Only SSE-C headers needed in the UploadPart request. [1]
|
394
|
+
# x-amz-server-side-encryption and
|
395
|
+
# x-amz-server-side-encryption-aws-kms-key-id are only needed
|
396
|
+
# in the CreateMultipartUpload request. [2]
|
397
|
+
# [1] https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html
|
398
|
+
# [2] https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
|
399
|
+
base_headers.merge!(encryption_customer_key_headers) if encryption && encryption_key
|
400
|
+
|
401
|
+
base_headers
|
303
402
|
end
|
304
403
|
|
305
404
|
def encryption_customer_key_headers
|
@@ -309,6 +408,57 @@ module Fog
|
|
309
408
|
'x-amz-server-side-encryption-customer-key-md5' => Base64.encode64(OpenSSL::Digest::MD5.digest(encryption_key.to_s)).chomp!
|
310
409
|
}
|
311
410
|
end
|
411
|
+
|
412
|
+
def part_checksum_headers(chunk)
|
413
|
+
if service.disable_content_md5_validation
|
414
|
+
{}
|
415
|
+
else
|
416
|
+
{ 'Content-MD5' => Base64.encode64(OpenSSL::Digest::MD5.digest(chunk)).strip }
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
def create_part_list(upload_part_options)
|
421
|
+
current_pos = 0
|
422
|
+
count = 0
|
423
|
+
pending = []
|
424
|
+
|
425
|
+
while current_pos < self.content_length do
|
426
|
+
start_pos = current_pos
|
427
|
+
end_pos = [current_pos + self.multipart_chunk_size, self.content_length - 1].min
|
428
|
+
range = "bytes=#{start_pos}-#{end_pos}"
|
429
|
+
part_options = upload_part_options.dup
|
430
|
+
part_options['x-amz-copy-source-range'] = range
|
431
|
+
pending << UploadPartData.new(count + 1, part_options, nil)
|
432
|
+
count += 1
|
433
|
+
current_pos = end_pos + 1
|
434
|
+
end
|
435
|
+
|
436
|
+
pending
|
437
|
+
end
|
438
|
+
|
439
|
+
def upload_in_threads(target_directory_key, target_file_key, upload_id, pending, completed, thread_count)
|
440
|
+
threads = []
|
441
|
+
|
442
|
+
thread_count.times do
|
443
|
+
thread = Thread.new do
|
444
|
+
begin
|
445
|
+
while part = pending.shift
|
446
|
+
part_upload = service.upload_part_copy(target_directory_key, target_file_key, upload_id, part.part_number, part.upload_options)
|
447
|
+
part.etag = part_upload.body['ETag']
|
448
|
+
completed.push(part)
|
449
|
+
end
|
450
|
+
rescue => error
|
451
|
+
pending.clear!
|
452
|
+
error
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
thread.abort_on_exception = true
|
457
|
+
threads << thread
|
458
|
+
end
|
459
|
+
|
460
|
+
threads.map(&:value).compact
|
461
|
+
end
|
312
462
|
end
|
313
463
|
end
|
314
464
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'fog/aws/models/storage/file'
|
2
2
|
|
3
3
|
module Fog
|
4
|
-
module
|
5
|
-
class
|
4
|
+
module AWS
|
5
|
+
class Storage
|
6
6
|
class Files < Fog::Collection
|
7
7
|
extend Fog::Deprecation
|
8
8
|
deprecate :get_url, :get_https_url
|
@@ -15,7 +15,16 @@ module Fog
|
|
15
15
|
attribute :max_keys, :aliases => ['MaxKeys', 'max-keys']
|
16
16
|
attribute :prefix, :aliases => 'Prefix'
|
17
17
|
|
18
|
-
model Fog::Storage::
|
18
|
+
model Fog::AWS::Storage::File
|
19
|
+
|
20
|
+
DASHED_HEADERS = %w(
|
21
|
+
Cache-Control
|
22
|
+
Content-Disposition
|
23
|
+
Content-Encoding
|
24
|
+
Content-Length
|
25
|
+
Content-MD5
|
26
|
+
Content-Type
|
27
|
+
).freeze
|
19
28
|
|
20
29
|
def all(options = {})
|
21
30
|
requires :directory
|
@@ -70,7 +79,7 @@ module Fog
|
|
70
79
|
when /<Code>NoSuchKey<\/Code>/
|
71
80
|
nil
|
72
81
|
when /<Code>NoSuchBucket<\/Code>/
|
73
|
-
raise(Fog::Storage::
|
82
|
+
raise(Fog::AWS::Storage::NotFound.new("Directory #{directory.identity} does not exist."))
|
74
83
|
else
|
75
84
|
raise(error)
|
76
85
|
end
|
@@ -114,8 +123,29 @@ module Fog
|
|
114
123
|
end
|
115
124
|
|
116
125
|
def normalize_headers(data)
|
117
|
-
data.headers['Last-Modified'] = Time.parse(data
|
118
|
-
|
126
|
+
data.headers['Last-Modified'] = Time.parse(fetch_and_delete_header(data, 'Last-Modified'))
|
127
|
+
|
128
|
+
etag = fetch_and_delete_header(data, 'ETag').gsub('"','')
|
129
|
+
data.headers['ETag'] = etag
|
130
|
+
|
131
|
+
DASHED_HEADERS.each do |header|
|
132
|
+
value = fetch_and_delete_header(data, header)
|
133
|
+
data.headers[header] = value if value
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
private
|
138
|
+
|
139
|
+
def fetch_and_delete_header(response, header)
|
140
|
+
value = response.get_header(header)
|
141
|
+
|
142
|
+
return unless value
|
143
|
+
|
144
|
+
response.headers.keys.each do |key|
|
145
|
+
response.headers.delete(key) if key.downcase == header.downcase
|
146
|
+
end
|
147
|
+
|
148
|
+
value
|
119
149
|
end
|
120
150
|
end
|
121
151
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'fog/aws/models/storage/version'
|
2
2
|
|
3
3
|
module Fog
|
4
|
-
module
|
5
|
-
class
|
4
|
+
module AWS
|
5
|
+
class Storage
|
6
6
|
class Versions < Fog::Collection
|
7
7
|
attribute :file
|
8
8
|
attribute :directory
|
9
9
|
|
10
|
-
model Fog::Storage::
|
10
|
+
model Fog::AWS::Storage::Version
|
11
11
|
|
12
12
|
def all(options = {})
|
13
13
|
data = if file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Support
|
4
|
+
class FlaggedResource < Fog::Model
|
5
|
+
identity :resource_id, :aliases => "resourceId"
|
6
|
+
|
7
|
+
attribute :is_suppressed, :aliases => "isSuppressed", :type => :boolean
|
8
|
+
attribute :metadata
|
9
|
+
attribute :region
|
10
|
+
attribute :status
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Support
|
4
|
+
class TrustedAdvisorCheck < Fog::Model
|
5
|
+
identity :id, :aliases => 'checkId'
|
6
|
+
|
7
|
+
attribute :name
|
8
|
+
attribute :category
|
9
|
+
attribute :description
|
10
|
+
attribute :metadata
|
11
|
+
attribute :flagged_resources, :aliases => 'flaggedResources'
|
12
|
+
attribute :resources_summary, :aliases => 'resourcesSummary'
|
13
|
+
attribute :status
|
14
|
+
attribute :timestamp
|
15
|
+
attribute :category_specific_summary, :aliases => 'categorySpecificSummary'
|
16
|
+
|
17
|
+
def populate_extended_attributes(lazy=false)
|
18
|
+
return if lazy == true
|
19
|
+
data = service.describe_trusted_advisor_check_result(:id => self.identity).body["result"]
|
20
|
+
merge_attributes(data)
|
21
|
+
end
|
22
|
+
|
23
|
+
def flagged_resources(lazy=true)
|
24
|
+
if attributes[:flagged_resources].nil?
|
25
|
+
populate_extended_attributes(lazy)
|
26
|
+
|
27
|
+
if attributes[:flagged_resources]
|
28
|
+
map_flagged_resources!
|
29
|
+
service.flagged_resources.load(attributes[:flagged_resources])
|
30
|
+
else
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
else
|
34
|
+
if attributes[:flagged_resources].first['metadata'].is_a?(Array)
|
35
|
+
map_flagged_resources!
|
36
|
+
end
|
37
|
+
service.flagged_resources.load(attributes[:flagged_resources])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def category_specific_summary(lazy=true)
|
42
|
+
populate_extended_attributes(lazy) if attributes[:category_specific_summary].nil?
|
43
|
+
attributes[:category_stecific_summary]
|
44
|
+
end
|
45
|
+
|
46
|
+
def resources_summary(lazy=true)
|
47
|
+
populate_extended_attributes(lazy) if attributes[:resources_summary].nil?
|
48
|
+
attributes[:resources_summary]
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def map_flagged_resources!
|
54
|
+
attributes[:flagged_resources].map! do |fr|
|
55
|
+
fr['metadata'] = fr['metadata'].each_with_index.inject({}) do |hash,(data,index)|
|
56
|
+
hash[self.metadata[index]] = data
|
57
|
+
hash
|
58
|
+
end
|
59
|
+
fr
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fog/aws/models/support/trusted_advisor_check'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module AWS
|
5
|
+
class Support
|
6
|
+
class TrustedAdvisorChecks < Fog::Collection
|
7
|
+
model Fog::AWS::Support::TrustedAdvisorCheck
|
8
|
+
|
9
|
+
def all
|
10
|
+
data = service.describe_trusted_advisor_checks.body['checks']
|
11
|
+
load(data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(id)
|
15
|
+
data = service.describe_trusted_advisor_check_result(:id => id).body['result']
|
16
|
+
new(data).populate_extended_attributes
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -21,6 +21,7 @@ module Fog
|
|
21
21
|
'LoadBalancerNames' => [],
|
22
22
|
'SuspendedProcesses' => [],
|
23
23
|
'Tags' => [],
|
24
|
+
'TargetGroupARNs' => [],
|
24
25
|
'TerminationPolicies' => []
|
25
26
|
}
|
26
27
|
end
|
@@ -57,6 +58,8 @@ module Fog
|
|
57
58
|
@in_suspended_processes = true
|
58
59
|
when 'Tags'
|
59
60
|
@in_tags = true
|
61
|
+
when 'TargetGroupARNs'
|
62
|
+
@in_target_groups = true
|
60
63
|
when 'TerminationPolicies'
|
61
64
|
@in_termination_policies = true
|
62
65
|
end
|
@@ -81,6 +84,8 @@ module Fog
|
|
81
84
|
elsif @in_tags
|
82
85
|
@auto_scaling_group['Tags'] << @tag
|
83
86
|
reset_tag
|
87
|
+
elsif @in_target_groups
|
88
|
+
@auto_scaling_group['TargetGroupARNs'] << value
|
84
89
|
elsif @in_termination_policies
|
85
90
|
@auto_scaling_group['TerminationPolicies'] << value
|
86
91
|
else
|
@@ -116,6 +121,9 @@ module Fog
|
|
116
121
|
when 'Tags'
|
117
122
|
@in_tags = false
|
118
123
|
|
124
|
+
when 'TargetGroupARNs'
|
125
|
+
@in_target_groups = false
|
126
|
+
|
119
127
|
when 'TerminationPolicies'
|
120
128
|
@in_termination_policies = false
|
121
129
|
|