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,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
4
|
class Real
|
5
5
|
require 'fog/aws/parsers/compute/spot_instance_requests'
|
6
6
|
|
@@ -71,7 +71,7 @@ module Fog
|
|
71
71
|
options.merge!(Fog::AWS.indexed_param('LaunchSpecification.SecurityGroupId', [*security_group_ids]))
|
72
72
|
end
|
73
73
|
if options['LaunchSpecification.UserData']
|
74
|
-
options['LaunchSpecification.UserData'] = Base64.encode64(options['LaunchSpecification.UserData'])
|
74
|
+
options['LaunchSpecification.UserData'] = Base64.encode64(options['LaunchSpecification.UserData']).chomp!
|
75
75
|
end
|
76
76
|
|
77
77
|
if options['ValidFrom'] && options['ValidFrom'].is_a?(Time)
|
@@ -87,7 +87,7 @@ module Fog
|
|
87
87
|
'LaunchSpecification.ImageId' => image_id,
|
88
88
|
'LaunchSpecification.InstanceType' => instance_type,
|
89
89
|
'SpotPrice' => spot_price,
|
90
|
-
:parser => Fog::Parsers::Compute::
|
90
|
+
:parser => Fog::Parsers::AWS::Compute::SpotInstanceRequests.new
|
91
91
|
}.merge!(options))
|
92
92
|
end
|
93
93
|
end
|
@@ -95,6 +95,7 @@ module Fog
|
|
95
95
|
class Mock
|
96
96
|
def request_spot_instances(image_id, instance_type, spot_price, options = {})
|
97
97
|
response = Excon::Response.new
|
98
|
+
id = Fog::AWS::Mock.spot_instance_request_id
|
98
99
|
|
99
100
|
if (image_id && instance_type && spot_price)
|
100
101
|
response.status = 200
|
@@ -102,19 +103,19 @@ module Fog
|
|
102
103
|
all_instance_types = flavors.map { |f| f.id }
|
103
104
|
if !all_instance_types.include?(instance_type)
|
104
105
|
message = "InvalidParameterValue => Invalid value '#{instance_type}' for InstanceType."
|
105
|
-
raise Fog::Compute::
|
106
|
+
raise Fog::AWS::Compute::Error.new(message)
|
106
107
|
end
|
107
108
|
|
108
109
|
spot_price = spot_price.to_f
|
109
110
|
if !(spot_price > 0)
|
110
111
|
message = "InvalidParameterValue => Value (#{spot_price}) for parameter price is invalid."
|
111
112
|
message << " \"#{spot_price}\" is an invalid spot instance price"
|
112
|
-
raise Fog::Compute::
|
113
|
+
raise Fog::AWS::Compute::Error.new(message)
|
113
114
|
end
|
114
115
|
|
115
|
-
if !image_id.match(/^ami-[a-f0-9]{8}$/)
|
116
|
+
if !image_id.match(/^ami-[a-f0-9]{8,17}$/)
|
116
117
|
message = "The image id '[#{image_id}]' does not exist"
|
117
|
-
raise Fog::Compute::
|
118
|
+
raise Fog::AWS::Compute::NotFound.new(message)
|
118
119
|
end
|
119
120
|
|
120
121
|
else
|
@@ -127,7 +128,7 @@ module Fog
|
|
127
128
|
else
|
128
129
|
message << 'spot_price'
|
129
130
|
end
|
130
|
-
raise Fog::Compute::
|
131
|
+
raise Fog::AWS::Compute::Error.new(message)
|
131
132
|
end
|
132
133
|
|
133
134
|
for key in %w(AvailabilityZoneGroup LaunchGroup)
|
@@ -139,32 +140,42 @@ module Fog
|
|
139
140
|
|
140
141
|
launch_spec = {
|
141
142
|
'iamInstanceProfile' => {},
|
142
|
-
'blockDeviceMapping' => [],
|
143
|
-
'groupSet' => [
|
143
|
+
'blockDeviceMapping' => options['LaunchSpecification.BlockDeviceMapping'] || [],
|
144
|
+
'groupSet' => options['LaunchSpecification.SecurityGroupId'] || ['default'],
|
144
145
|
'imageId' => image_id,
|
145
146
|
'instanceType' => instance_type,
|
146
|
-
'monitoring' => options['
|
147
|
-
'subnetId' => nil,
|
148
|
-
'ebsOptimized' => false,
|
149
|
-
'keyName' => options['KeyName']
|
147
|
+
'monitoring' => options['LaunchSpecification.Monitoring.Enabled'] || false,
|
148
|
+
'subnetId' => options['LaunchSpecification.SubnetId'] || nil,
|
149
|
+
'ebsOptimized' => options['LaunchSpecification.EbsOptimized'] || false,
|
150
|
+
'keyName' => options['LaunchSpecification.KeyName'] || nil
|
150
151
|
}
|
151
152
|
|
153
|
+
if iam_arn = options['LaunchSpecification.IamInstanceProfile.Arn']
|
154
|
+
launch_spec['iamInstanceProfile'].merge!('Arn' => iam_arn)
|
155
|
+
end
|
156
|
+
|
157
|
+
if iam_name = options['LaunchSpecification.IamInstanceProfile.Name']
|
158
|
+
launch_spec['iamInstanceProfile'].merge!('Name' => iam_name)
|
159
|
+
end
|
160
|
+
|
161
|
+
spot_request = {
|
162
|
+
'launchSpecification' => launch_spec,
|
163
|
+
'spotInstanceRequestId' => id,
|
164
|
+
'spotPrice' => spot_price,
|
165
|
+
'type' => options['Type'] || 'one-time',
|
166
|
+
'state' => 'open',
|
167
|
+
'fault' => {
|
168
|
+
'code' => 'pending-evaluation',
|
169
|
+
'message' => 'Your Spot request has been submitted for review, and is pending evaluation.'
|
170
|
+
},
|
171
|
+
'createTime' => Time.now,
|
172
|
+
'productDescription' => 'Linux/UNIX'
|
173
|
+
}
|
174
|
+
|
175
|
+
self.data[:spot_requests][id] = spot_request
|
176
|
+
|
152
177
|
response.body = {
|
153
|
-
'spotInstanceRequestSet' => [
|
154
|
-
{
|
155
|
-
'launchSpecification' => launch_spec,
|
156
|
-
'spotInstanceRequestId' => Fog::AWS::Mock.spot_instance_request_id,
|
157
|
-
'spotPrice' => spot_price,
|
158
|
-
'type' => options['Type'] || 'one-time',
|
159
|
-
'state' => 'open',
|
160
|
-
'fault' => {
|
161
|
-
'code' => 'pending-evaluation',
|
162
|
-
'message' => 'Your Spot request has been submitted for review, and is pending evaluation.'
|
163
|
-
},
|
164
|
-
'createTime' => Time.now,
|
165
|
-
'productDescription' => 'Linux/UNIX'
|
166
|
-
}
|
167
|
-
],
|
178
|
+
'spotInstanceRequestSet' => [spot_request],
|
168
179
|
'requestId' => Fog::AWS::Mock.request_id
|
169
180
|
}
|
170
181
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
4
|
class Real
|
5
5
|
require 'fog/aws/parsers/compute/basic'
|
6
6
|
|
@@ -19,13 +19,13 @@ module Fog
|
|
19
19
|
# {Amazon API Reference}[http://docs.amazonwebservices.com/AWSEC2/2012-03-01/APIReference/ApiReference-query-DescribeNetworkInterfaceAttribute.html]
|
20
20
|
def reset_network_interface_attribute(network_interface_id, attribute)
|
21
21
|
if attribute != 'sourceDestCheck'
|
22
|
-
raise Fog::Compute::
|
22
|
+
raise Fog::AWS::Compute::Error.new("Illegal attribute '#{attribute}' specified")
|
23
23
|
end
|
24
24
|
request(
|
25
25
|
'Action' => 'ResetNetworkInterfaceAttribute',
|
26
26
|
'NetworkInterfaceId' => network_interface_id,
|
27
27
|
'Attribute' => attribute,
|
28
|
-
:parser => Fog::Parsers::Compute::
|
28
|
+
:parser => Fog::Parsers::AWS::Compute::Basic.new
|
29
29
|
)
|
30
30
|
end
|
31
31
|
end
|
@@ -43,11 +43,11 @@ module Fog
|
|
43
43
|
if attribute == 'sourceDestCheck'
|
44
44
|
self.data[:network_interfaces][network_interface_id]['sourceDestCheck'] = true
|
45
45
|
else
|
46
|
-
raise Fog::Compute::
|
46
|
+
raise Fog::AWS::Compute::Error.new("Illegal attribute '#{attribute}' specified")
|
47
47
|
end
|
48
48
|
response
|
49
49
|
else
|
50
|
-
raise Fog::Compute::
|
50
|
+
raise Fog::AWS::Compute::NotFound.new("The network interface '#{network_interface_id}' does not exist")
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/compute/restore_address_to_classic'
|
6
|
+
|
7
|
+
# Move address from VPC to Classic
|
8
|
+
#
|
9
|
+
# === Returns
|
10
|
+
# * response<~Excon::Response>:
|
11
|
+
# * body<~<Hash>:
|
12
|
+
# * 'publicIp'<~String> - IP address
|
13
|
+
# * 'requestId'<~String> - Id of the request
|
14
|
+
# * 'status'<~String> - The status of the move of the IP address (MoveInProgress | InVpc | InClassic)
|
15
|
+
|
16
|
+
def restore_address_to_classic(public_ip)
|
17
|
+
request(
|
18
|
+
'Action' => 'RestoreAddressToClassic',
|
19
|
+
'PublicIp' => public_ip,
|
20
|
+
:idempotent => true,
|
21
|
+
:parser => Fog::Parsers::AWS::Compute::RestoreAddressToClassic.new
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def restore_address_to_classic(public_ip)
|
28
|
+
response = Excon::Response.new
|
29
|
+
|
30
|
+
address = self.data[:addresses][public_ip]
|
31
|
+
|
32
|
+
if address
|
33
|
+
if address[:origin] == 'vpc'
|
34
|
+
raise Fog::AWS::Compute::Error.new("InvalidState => You cannot migrate an Elastic IP address that was originally allocated for use in EC2-VPC to EC2-Classic.")
|
35
|
+
end
|
36
|
+
|
37
|
+
address['domain'] = 'standard'
|
38
|
+
address.delete("allocationId")
|
39
|
+
|
40
|
+
response.status = 200
|
41
|
+
response.body = {
|
42
|
+
'requestId' => Fog::AWS::Mock.request_id,
|
43
|
+
'publicIp' => public_ip,
|
44
|
+
'status' => "InClassic"
|
45
|
+
}
|
46
|
+
|
47
|
+
response
|
48
|
+
else
|
49
|
+
raise Fog::AWS::Compute::NotFound.new("Address does not exist")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/compute/basic'
|
6
|
+
|
7
|
+
# Remove permissions from a security group
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * group_name<~String> - Name of group, optional (can also be specifed as GroupName in options)
|
11
|
+
# * options<~Hash>:
|
12
|
+
# * 'GroupName'<~String> - Name of security group to modify
|
13
|
+
# * 'GroupId'<~String> - Id of security group to modify
|
14
|
+
# * 'SourceSecurityGroupName'<~String> - Name of security group to authorize
|
15
|
+
# * 'SourceSecurityGroupOwnerId'<~String> - Name of owner to authorize
|
16
|
+
# or
|
17
|
+
# * 'CidrIp'<~String> - CIDR range
|
18
|
+
# * 'FromPort'<~Integer> - Start of port range (or -1 for ICMP wildcard)
|
19
|
+
# * 'IpProtocol'<~String> - Ip protocol, must be in ['tcp', 'udp', 'icmp']
|
20
|
+
# * 'ToPort'<~Integer> - End of port range (or -1 for ICMP wildcard)
|
21
|
+
# or
|
22
|
+
# * 'IpPermissions'<~Array>:
|
23
|
+
# * permission<~Hash>:
|
24
|
+
# * 'FromPort'<~Integer> - Start of port range (or -1 for ICMP wildcard)
|
25
|
+
# * 'Groups'<~Array>:
|
26
|
+
# * group<~Hash>:
|
27
|
+
# * 'GroupName'<~String> - Name of security group to authorize
|
28
|
+
# * 'UserId'<~String> - Name of owner to authorize
|
29
|
+
# * 'IpProtocol'<~String> - Ip protocol, must be in ['tcp', 'udp', 'icmp']
|
30
|
+
# * 'IpRanges'<~Array>:
|
31
|
+
# * ip_range<~Hash>:
|
32
|
+
# * 'CidrIp'<~String> - CIDR range
|
33
|
+
# * 'ToPort'<~Integer> - End of port range (or -1 for ICMP wildcard)
|
34
|
+
#
|
35
|
+
# === Returns
|
36
|
+
# * response<~Excon::Response>:
|
37
|
+
# * body<~Hash>:
|
38
|
+
# * 'requestId'<~String> - Id of request
|
39
|
+
# * 'return'<~Boolean> - success?
|
40
|
+
#
|
41
|
+
# {Amazon API Reference}[http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-RevokeSecurityGroupEgress.html]
|
42
|
+
def revoke_security_group_egress(group_name, options = {})
|
43
|
+
options = Fog::AWS.parse_security_group_options(group_name, options)
|
44
|
+
|
45
|
+
if ip_permissions = options.delete('IpPermissions')
|
46
|
+
options.merge!(indexed_ip_permissions_params(ip_permissions))
|
47
|
+
end
|
48
|
+
|
49
|
+
request({
|
50
|
+
'Action' => 'RevokeSecurityGroupEgress',
|
51
|
+
:idempotent => true,
|
52
|
+
:parser => Fog::Parsers::AWS::Compute::Basic.new
|
53
|
+
}.merge!(options))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class Mock
|
58
|
+
def revoke_security_group_egress(group_name, options = {})
|
59
|
+
options = Fog::AWS.parse_security_group_options(group_name, options)
|
60
|
+
|
61
|
+
group = self.data[:security_groups].values.find { |v| v['groupName'] == group_name }
|
62
|
+
|
63
|
+
group ||
|
64
|
+
raise(Fog::AWS::Compute::NotFound.new("The security group '#{group_name}' does not exist"))
|
65
|
+
response = Excon::Response.new
|
66
|
+
|
67
|
+
verify_permission_options(options, group['vpcId'] != nil)
|
68
|
+
|
69
|
+
normalized_permissions = normalize_permissions(options)
|
70
|
+
|
71
|
+
normalized_permissions.each do |permission|
|
72
|
+
if matching_permission = find_matching_permission_egress(group, permission)
|
73
|
+
matching_permission['ipRanges'] -= permission['ipRanges']
|
74
|
+
matching_permission['groups'] -= permission['groups']
|
75
|
+
|
76
|
+
if matching_permission['ipRanges'].empty? && matching_permission['groups'].empty?
|
77
|
+
group['ipPermissionsEgress'].delete(matching_permission)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
response.status = 200
|
83
|
+
response.body = {
|
84
|
+
'requestId' => Fog::AWS::Mock.request_id,
|
85
|
+
'return' => true
|
86
|
+
}
|
87
|
+
response
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
4
|
class Real
|
5
5
|
require 'fog/aws/parsers/compute/basic'
|
6
6
|
|
@@ -49,7 +49,7 @@ module Fog
|
|
49
49
|
request({
|
50
50
|
'Action' => 'RevokeSecurityGroupIngress',
|
51
51
|
:idempotent => true,
|
52
|
-
:parser => Fog::Parsers::Compute::
|
52
|
+
:parser => Fog::Parsers::AWS::Compute::Basic.new
|
53
53
|
}.merge!(options))
|
54
54
|
end
|
55
55
|
end
|
@@ -57,40 +57,33 @@ module Fog
|
|
57
57
|
class Mock
|
58
58
|
def revoke_security_group_ingress(group_name, options = {})
|
59
59
|
options = Fog::AWS.parse_security_group_options(group_name, options)
|
60
|
-
|
61
|
-
group_name = options['GroupName']
|
62
|
-
else
|
63
|
-
group_name = self.data[:security_groups].reject { |k,v| v['groupId'] != options['GroupId'] } .keys.first
|
64
|
-
end
|
60
|
+
group = self.data[:security_groups].values.find { |v| v['groupName'] == group_name }
|
65
61
|
|
62
|
+
group ||
|
63
|
+
raise(Fog::AWS::Compute::NotFound.new("The security group '#{group_name}' does not exist"))
|
66
64
|
response = Excon::Response.new
|
67
|
-
group = self.data[:security_groups][group_name]
|
68
65
|
|
69
|
-
|
70
|
-
verify_permission_options(options, group['vpcId'] != nil)
|
66
|
+
verify_permission_options(options, group['vpcId'] != nil)
|
71
67
|
|
72
|
-
|
68
|
+
normalized_permissions = normalize_permissions(options)
|
73
69
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
70
|
+
normalized_permissions.each do |permission|
|
71
|
+
if matching_permission = find_matching_permission(group, permission)
|
72
|
+
matching_permission['ipRanges'] -= permission['ipRanges']
|
73
|
+
matching_permission['groups'] -= permission['groups']
|
78
74
|
|
79
|
-
|
80
|
-
|
81
|
-
end
|
75
|
+
if matching_permission['ipRanges'].empty? && matching_permission['groups'].empty?
|
76
|
+
group['ipPermissions'].delete(matching_permission)
|
82
77
|
end
|
83
78
|
end
|
84
|
-
|
85
|
-
response.status = 200
|
86
|
-
response.body = {
|
87
|
-
'requestId' => Fog::AWS::Mock.request_id,
|
88
|
-
'return' => true
|
89
|
-
}
|
90
|
-
response
|
91
|
-
else
|
92
|
-
raise Fog::Compute::AWS::NotFound.new("The security group '#{group_name}' does not exist")
|
93
79
|
end
|
80
|
+
|
81
|
+
response.status = 200
|
82
|
+
response.body = {
|
83
|
+
'requestId' => Fog::AWS::Mock.request_id,
|
84
|
+
'return' => true
|
85
|
+
}
|
86
|
+
response
|
94
87
|
end
|
95
88
|
end
|
96
89
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
4
|
class Real
|
5
5
|
require 'fog/aws/parsers/compute/run_instances'
|
6
6
|
|
@@ -30,6 +30,8 @@ module Fog
|
|
30
30
|
# * 'Ebs.Encrypted'<~Boolean> - specifies whether or not the volume is to be encrypted unless snapshot is specified
|
31
31
|
# * 'Ebs.VolumeType'<~String> - Type of EBS volue. Valid options in ['standard', 'io1'] default is 'standard'.
|
32
32
|
# * 'Ebs.Iops'<~String> - The number of I/O operations per second (IOPS) that the volume supports. Required when VolumeType is 'io1'
|
33
|
+
# * 'HibernationOptions'<~Array>: array of hashes
|
34
|
+
# * 'Configured'<~Boolean> - specifies whether or not the instance is configued for hibernation. This parameter is valid only if the instance meets the hibernation prerequisites.
|
33
35
|
# * 'NetworkInterfaces'<~Array>: array of hashes
|
34
36
|
# * 'NetworkInterfaceId'<~String> - An existing interface to attach to a single instance
|
35
37
|
# * 'DeviceIndex'<~String> - The device index. Applies both to attaching an existing network interface and creating a network interface
|
@@ -42,13 +44,18 @@ module Fog
|
|
42
44
|
# * 'PrivateIpAddresses.Primary'<~Bool> - Indicates whether the private IP address is the primary private IP address.
|
43
45
|
# * 'SecondaryPrivateIpAddressCount'<~Bool> - The number of private IP addresses to assign to the network interface.
|
44
46
|
# * 'AssociatePublicIpAddress'<~String> - Indicates whether to assign a public IP address to an instance in a VPC. The public IP address is assigned to a specific network interface
|
47
|
+
# * 'TagSpecifications'<~Array>: array of hashes
|
48
|
+
# * 'ResourceType'<~String> - Type of resource to apply tags on, e.g: instance or volume
|
49
|
+
# * 'Tags'<~Array> - List of hashs reprensenting tag to be set
|
50
|
+
# * 'Key'<~String> - Tag name
|
51
|
+
# * 'Value'<~String> - Tag value
|
45
52
|
# * 'ClientToken'<~String> - unique case-sensitive token for ensuring idempotency
|
46
53
|
# * 'DisableApiTermination'<~Boolean> - specifies whether or not to allow termination of the instance from the api
|
47
54
|
# * 'SecurityGroup'<~Array> or <~String> - Name of security group(s) for instances (not supported for VPC)
|
48
55
|
# * 'SecurityGroupId'<~Array> or <~String> - id's of security group(s) for instances, use this or SecurityGroup
|
49
56
|
# * 'InstanceInitiatedShutdownBehaviour'<~String> - specifies whether volumes are stopped or terminated when instance is shutdown, in [stop, terminate]
|
50
57
|
# * 'InstanceType'<~String> - Type of instance to boot. Valid options
|
51
|
-
# in ['t1.micro', 't2.micro', 't2.small', 't2.medium', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
|
58
|
+
# in ['t1.micro', 't2.nano', 't2.micro', 't2.small', 't2.medium', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
|
52
59
|
# default is 'm1.small'
|
53
60
|
# * 'KernelId'<~String> - Id of kernel with which to launch
|
54
61
|
# * 'KeyName'<~String> - Name of a keypair to add to booting instances
|
@@ -75,6 +82,8 @@ module Fog
|
|
75
82
|
# * 'deviceName'<~String> - specifies how volume is exposed to instance
|
76
83
|
# * 'status'<~String> - status of attached volume
|
77
84
|
# * 'volumeId'<~String> - Id of attached volume
|
85
|
+
# * 'hibernationOptions'<~Array>
|
86
|
+
# * 'configured'<~Boolean> - whether or not the instance is enabled for hibernation
|
78
87
|
# * 'dnsName'<~String> - public dns name, blank until instance is running
|
79
88
|
# * 'imageId'<~String> - image id of ami used to launch instance
|
80
89
|
# * 'instanceId'<~String> - id of the instance
|
@@ -111,6 +120,13 @@ module Fog
|
|
111
120
|
end
|
112
121
|
end
|
113
122
|
end
|
123
|
+
if hibernation_options = options.delete('HibernationOptions')
|
124
|
+
hibernation_options.each_with_index do |mapping, index|
|
125
|
+
for key, value in mapping
|
126
|
+
options.merge!({ format("HibernationOptions.%d.#{key}", index) => value })
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
114
130
|
if security_groups = options.delete('SecurityGroup')
|
115
131
|
options.merge!(Fog::AWS.indexed_param('SecurityGroup', [*security_groups]))
|
116
132
|
end
|
@@ -133,6 +149,45 @@ module Fog
|
|
133
149
|
end
|
134
150
|
end
|
135
151
|
end
|
152
|
+
if tag_specifications = options.delete('TagSpecifications')
|
153
|
+
# From https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/EC2/Client.html#run_instances-instance_method
|
154
|
+
# And https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html
|
155
|
+
# Discussed at https://github.com/fog/fog-aws/issues/603
|
156
|
+
#
|
157
|
+
# Example
|
158
|
+
#
|
159
|
+
# TagSpecifications: [
|
160
|
+
# {
|
161
|
+
# ResourceType: "instance",
|
162
|
+
# Tags: [
|
163
|
+
# {
|
164
|
+
# Key: "Project",
|
165
|
+
# Value: "MyProject",
|
166
|
+
# },
|
167
|
+
# ],
|
168
|
+
# },
|
169
|
+
# {
|
170
|
+
# ResourceType: "volume",
|
171
|
+
# Tags: [
|
172
|
+
# {
|
173
|
+
# Key: "Project",
|
174
|
+
# Value: "MyProject",
|
175
|
+
# },
|
176
|
+
# ],
|
177
|
+
# },
|
178
|
+
# ]
|
179
|
+
tag_specifications.each_with_index do |val, idx|
|
180
|
+
resource_type = val["ResourceType"]
|
181
|
+
tags = val["Tags"]
|
182
|
+
options["TagSpecification.#{idx}.ResourceType"] = resource_type
|
183
|
+
tags.each_with_index do |tag, tag_idx|
|
184
|
+
aws_tag_key = "TagSpecification.#{idx}.Tag.#{tag_idx}.Key"
|
185
|
+
aws_tag_value = "TagSpecification.#{idx}.Tag.#{tag_idx}.Value"
|
186
|
+
options[aws_tag_key] = tag["Key"]
|
187
|
+
options[aws_tag_value] = tag["Value"]
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
136
191
|
|
137
192
|
idempotent = !(options['ClientToken'].nil? || options['ClientToken'].empty?)
|
138
193
|
|
@@ -142,7 +197,7 @@ module Fog
|
|
142
197
|
'MinCount' => min_count,
|
143
198
|
'MaxCount' => max_count,
|
144
199
|
:idempotent => idempotent,
|
145
|
-
:parser => Fog::Parsers::Compute::
|
200
|
+
:parser => Fog::Parsers::AWS::Compute::RunInstances.new
|
146
201
|
}.merge!(options))
|
147
202
|
end
|
148
203
|
end
|
@@ -157,7 +212,7 @@ module Fog
|
|
157
212
|
reservation_id = Fog::AWS::Mock.reservation_id
|
158
213
|
|
159
214
|
if options['KeyName'] && describe_key_pairs('key-name' => options['KeyName']).body['keySet'].empty?
|
160
|
-
raise Fog::Compute::
|
215
|
+
raise Fog::AWS::Compute::NotFound.new("The key pair '#{options['KeyName']}' does not exist")
|
161
216
|
end
|
162
217
|
|
163
218
|
min_count.times do |i|
|
@@ -182,6 +237,14 @@ module Fog
|
|
182
237
|
}
|
183
238
|
end
|
184
239
|
|
240
|
+
hibernation_options = (options['HibernationOptions'] || []).reduce([]) do |mapping, device|
|
241
|
+
configure = device.fetch("Configure", true)
|
242
|
+
|
243
|
+
mapping << {
|
244
|
+
"Configure" => configure,
|
245
|
+
}
|
246
|
+
end
|
247
|
+
|
185
248
|
if options['SubnetId']
|
186
249
|
if options['PrivateIpAddress']
|
187
250
|
ni_options = {'PrivateIpAddress' => options['PrivateIpAddress']}
|
@@ -217,30 +280,33 @@ module Fog
|
|
217
280
|
end
|
218
281
|
|
219
282
|
instance = {
|
220
|
-
'amiLaunchIndex'
|
221
|
-
'associatePublicIP'
|
222
|
-
'architecture'
|
223
|
-
'blockDeviceMapping'
|
224
|
-
'
|
225
|
-
'
|
226
|
-
'
|
227
|
-
'
|
228
|
-
'
|
229
|
-
'
|
230
|
-
'
|
231
|
-
'
|
232
|
-
'
|
233
|
-
'
|
234
|
-
'
|
235
|
-
'
|
236
|
-
'
|
237
|
-
'
|
238
|
-
'
|
239
|
-
'
|
240
|
-
'
|
241
|
-
'
|
242
|
-
'
|
243
|
-
'
|
283
|
+
'amiLaunchIndex' => i,
|
284
|
+
'associatePublicIP' => options['associatePublicIP'] || false,
|
285
|
+
'architecture' => 'i386',
|
286
|
+
'blockDeviceMapping' => block_device_mapping,
|
287
|
+
'hibernationOptions' => hibernation_options,
|
288
|
+
'networkInterfaces' => network_interfaces,
|
289
|
+
'clientToken' => options['clientToken'],
|
290
|
+
'dnsName' => nil,
|
291
|
+
'ebsOptimized' => options['EbsOptimized'] || false,
|
292
|
+
'hypervisor' => 'xen',
|
293
|
+
'imageId' => image_id,
|
294
|
+
'instanceId' => instance_id,
|
295
|
+
'instanceState' => { 'code' => 0, 'name' => 'pending' },
|
296
|
+
'instanceType' => options['InstanceType'] || 'm1.small',
|
297
|
+
'kernelId' => options['KernelId'] || Fog::AWS::Mock.kernel_id,
|
298
|
+
'keyName' => options['KeyName'],
|
299
|
+
'launchTime' => Time.now,
|
300
|
+
'monitoring' => { 'state' => options['Monitoring.Enabled'] || false },
|
301
|
+
'placement' => { 'availabilityZone' => availability_zone, 'groupName' => nil, 'tenancy' => options['Placement.Tenancy'] || 'default' },
|
302
|
+
'privateDnsName' => nil,
|
303
|
+
'productCodes' => [],
|
304
|
+
'reason' => nil,
|
305
|
+
'rootDeviceName' => block_device_mapping.first && block_device_mapping.first["deviceName"],
|
306
|
+
'rootDeviceType' => 'instance-store',
|
307
|
+
'spotInstanceRequestId' => options['SpotInstanceRequestId'],
|
308
|
+
'subnetId' => options['SubnetId'],
|
309
|
+
'virtualizationType' => 'paravirtual'
|
244
310
|
}
|
245
311
|
instances_set << instance
|
246
312
|
self.data[:instances][instance_id] = instance.merge({
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class Compute
|
4
4
|
class Real
|
5
5
|
require 'fog/aws/parsers/compute/start_stop_instances'
|
6
6
|
|
@@ -21,7 +21,7 @@ module Fog
|
|
21
21
|
request({
|
22
22
|
'Action' => 'StartInstances',
|
23
23
|
:idempotent => true,
|
24
|
-
:parser => Fog::Parsers::Compute::
|
24
|
+
:parser => Fog::Parsers::AWS::Compute::StartStopInstances.new
|
25
25
|
}.merge!(params))
|
26
26
|
end
|
27
27
|
end
|
@@ -35,7 +35,7 @@ module Fog
|
|
35
35
|
instance_set = instance_set.select {|x| instance_ids.include?(x["instanceId"]) }
|
36
36
|
|
37
37
|
if instance_set.empty?
|
38
|
-
raise Fog::Compute::
|
38
|
+
raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
|
39
39
|
else
|
40
40
|
response = Excon::Response.new
|
41
41
|
response.status = 200
|