fog-aws 3.0.0 → 3.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +10 -0
- data/.github/workflows/ruby.yml +36 -0
- data/.github/workflows/stale.yml +23 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +354 -22
- data/Gemfile +1 -1
- data/LICENSE.md +1 -1
- data/README.md +60 -7
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/fog-aws.gemspec +5 -4
- data/lib/fog/aws.rb +27 -19
- data/lib/fog/aws/auto_scaling.rb +1 -0
- data/lib/fog/aws/cdn.rb +15 -2
- data/lib/fog/aws/compute.rb +36 -23
- data/lib/fog/aws/credential_fetcher.rb +62 -8
- data/lib/fog/aws/dns.rb +154 -5
- data/lib/fog/aws/efs.rb +1 -1
- 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/kinesis.rb +23 -15
- data/lib/fog/aws/models/auto_scaling/group.rb +10 -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 +3 -2
- 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 +2719 -397
- data/lib/fog/aws/models/compute/image.rb +2 -2
- data/lib/fog/aws/models/compute/images.rb +3 -3
- 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 +2 -2
- data/lib/fog/aws/models/compute/security_groups.rb +3 -3
- data/lib/fog/aws/models/compute/server.rb +6 -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 +2 -2
- data/lib/fog/aws/models/compute/spot_requests.rb +3 -3
- data/lib/fog/aws/models/compute/subnet.rb +2 -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 +3 -3
- data/lib/fog/aws/models/compute/volumes.rb +3 -3
- data/lib/fog/aws/models/compute/vpc.rb +10 -4
- 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 +4 -0
- data/lib/fog/aws/models/rds/cluster.rb +9 -1
- data/lib/fog/aws/models/rds/server.rb +66 -63
- data/lib/fog/aws/models/storage/directories.rb +3 -3
- data/lib/fog/aws/models/storage/directory.rb +40 -6
- data/lib/fog/aws/models/storage/file.rb +132 -7
- 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/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/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 +35 -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 +2 -2
- 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 +2 -2
- data/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_route_tables.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +3 -3
- 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 +35 -8
- 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 +2 -2
- data/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_vpc_classic_link.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_vpc_classic_link_dns_support.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_vpcs.rb +2 -2
- 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 +2 -2
- data/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/move_address_to_vpc.rb +2 -2
- 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 +2 -2
- 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/rds/db_parser.rb +41 -2
- 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 +2 -2
- 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/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_watch/put_metric_alarm.rb +2 -2
- data/lib/fog/aws/requests/compute/allocate_address.rb +4 -4
- data/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb +5 -5
- data/lib/fog/aws/requests/compute/associate_address.rb +7 -7
- 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 +7 -7
- 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 +6 -6
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +11 -11
- data/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb +4 -4
- data/lib/fog/aws/requests/compute/copy_image.rb +3 -3
- data/lib/fog/aws/requests/compute/copy_snapshot.rb +3 -3
- 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 +6 -6
- 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 +4 -4
- data/lib/fog/aws/requests/compute/create_security_group.rb +4 -4
- 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 +6 -6
- 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 +7 -7
- 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 +9 -9
- 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 +3 -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 +3 -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 +4 -4
- 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 +5 -5
- data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +3 -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 +3 -3
- data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_route_tables.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +15 -4
- 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 +3 -3
- data/lib/fog/aws/requests/compute/describe_spot_price_history.rb +5 -5
- data/lib/fog/aws/requests/compute/describe_subnets.rb +3 -3
- 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 +3 -3
- data/lib/fog/aws/requests/compute/describe_vpc_attribute.rb +5 -5
- data/lib/fog/aws/requests/compute/describe_vpc_classic_link.rb +4 -4
- data/lib/fog/aws/requests/compute/describe_vpc_classic_link_dns_support.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +3 -3
- data/lib/fog/aws/requests/compute/detach_classic_link_vpc.rb +5 -5
- 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 +4 -4
- data/lib/fog/aws/requests/compute/disassociate_address.rb +5 -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 +4 -4
- 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 +8 -8
- 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 +5 -5
- 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 +4 -4
- 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 +8 -8
- data/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb +6 -6
- data/lib/fog/aws/requests/compute/restore_address_to_classic.rb +5 -5
- data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +4 -4
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +4 -4
- data/lib/fog/aws/requests/compute/run_instances.rb +24 -4
- 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 +4 -4
- data/lib/fog/aws/requests/compute/unmonitor_instances.rb +4 -4
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +6 -139
- 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 +15 -3
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -7
- 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/lambda/invoke.rb +7 -7
- data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +1 -1
- data/lib/fog/aws/requests/rds/create_db_instance.rb +1 -1
- data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +2 -2
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +1 -1
- data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +1 -1
- 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 +2 -2
- 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 +21 -11
- data/lib/fog/aws/requests/storage/delete_object.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_object_url.rb +2 -2
- 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 +3 -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 +2 -2
- 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 -7
- 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 +2 -2
- 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_with_web_identity.rb +7 -6
- data/lib/fog/aws/service_mapper.rb +5 -5
- data/lib/fog/aws/storage.rb +50 -19
- data/lib/fog/aws/version.rb +1 -1
- data/tests/credentials_tests.rb +102 -39
- data/tests/helper.rb +2 -2
- data/tests/helpers/collection_helper.rb +3 -4
- data/tests/helpers/compute/flavors_helper.rb +1 -5
- data/tests/helpers/compute/server_helper.rb +1 -3
- data/tests/helpers/compute/servers_helper.rb +0 -2
- data/tests/helpers/dns_helper.rb +32 -31
- data/tests/helpers/formats_helper.rb +58 -56
- data/tests/helpers/formats_helper_tests.rb +22 -25
- data/tests/helpers/mock_helper.rb +96 -96
- data/tests/helpers/model_helper.rb +4 -5
- data/tests/helpers/responds_to_helper.rb +1 -1
- data/tests/helpers/schema_validator_tests.rb +21 -24
- data/tests/helpers/succeeds_helper.rb +2 -2
- data/tests/models/compute/address_tests.rb +1 -1
- data/tests/models/compute/network_acl_tests.rb +4 -4
- data/tests/models/compute/security_group_tests.rb +1 -1
- data/tests/models/compute/volume_tests.rb +1 -1
- data/tests/models/elb/model_tests.rb +1 -1
- data/tests/models/storage/directory_tests.rb +113 -2
- data/tests/models/storage/files_tests.rb +32 -0
- data/tests/parsers/compute/describe_images_tests.rb +2 -2
- data/tests/parsers/elb/describe_load_balancers.rb +1 -1
- data/tests/parsers/elbv2/create_load_balancer_tests.rb +48 -0
- data/tests/parsers/elbv2/describe_listeners_tests.rb +76 -0
- data/tests/parsers/elbv2/describe_load_balancers_tests.rb +54 -0
- data/tests/parsers/elbv2/describe_tags_tests.rb +35 -0
- data/tests/requests/auto_scaling/auto_scaling_tests.rb +8 -0
- data/tests/requests/compute/address_tests.rb +9 -9
- data/tests/requests/compute/assign_private_ip_tests.rb +3 -3
- data/tests/requests/compute/image_tests.rb +11 -2
- data/tests/requests/compute/instance_attrib_tests.rb +1 -1
- data/tests/requests/compute/instance_tests.rb +5 -5
- data/tests/requests/compute/internet_gateway_tests.rb +1 -1
- data/tests/requests/compute/key_pair_tests.rb +1 -1
- data/tests/requests/compute/network_acl_tests.rb +2 -2
- data/tests/requests/compute/network_interface_tests.rb +6 -6
- data/tests/requests/compute/placement_group_tests.rb +2 -2
- data/tests/requests/compute/region_tests.rb +4 -4
- data/tests/requests/compute/route_tests.rb +24 -24
- data/tests/requests/compute/security_group_tests.rb +14 -14
- data/tests/requests/compute/snapshot_tests.rb +1 -1
- data/tests/requests/compute/spot_datafeed_subscription_tests.rb +1 -1
- data/tests/requests/compute/subnet_tests.rb +3 -3
- data/tests/requests/compute/tag_tests.rb +3 -3
- data/tests/requests/compute/volume_tests.rb +11 -11
- data/tests/requests/compute/vpc_tests.rb +9 -3
- data/tests/requests/dns/change_resource_record_sets_tests.rb +3 -3
- data/tests/requests/efs/helper.rb +2 -0
- data/tests/requests/elbv2/helper.rb +66 -0
- data/tests/requests/elbv2/load_balancer_tests.rb +50 -0
- data/tests/requests/glacier/tree_hash_tests.rb +29 -0
- data/tests/requests/storage/acl_utils_tests.rb +24 -24
- data/tests/requests/storage/bucket_tests.rb +1 -1
- data/tests/requests/storage/cors_utils_tests.rb +14 -14
- data/tests/requests/storage/multipart_copy_tests.rb +93 -0
- data/tests/requests/storage/object_tests.rb +7 -0
- data/tests/requests/storage/versioning_tests.rb +38 -0
- data/tests/requests/sts/assume_role_with_web_identity_tests.rb +2 -0
- data/tests/signaturev4_tests.rb +21 -22
- data/tests/signed_params_tests.rb +7 -7
- data/tests/storage_tests.rb +1 -1
- metadata +61 -17
- data/.travis.yml +0 -55
- data/gemfiles/Gemfile-ruby-2.0 +0 -7
data/lib/fog/aws/dns.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fog
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module AWS
|
3
|
+
class DNS < Fog::Service
|
4
4
|
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
5
5
|
|
6
6
|
requires :aws_access_key_id, :aws_secret_access_key
|
@@ -25,7 +25,10 @@ module Fog
|
|
25
25
|
request :list_resource_record_sets
|
26
26
|
request :get_change
|
27
27
|
|
28
|
+
|
28
29
|
class Mock
|
30
|
+
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
31
|
+
|
29
32
|
def self.data
|
30
33
|
@data ||= Hash.new do |hash, region|
|
31
34
|
hash[region] = Hash.new do |region_hash, key|
|
@@ -70,6 +73,7 @@ module Fog
|
|
70
73
|
|
71
74
|
class Real
|
72
75
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
76
|
+
|
73
77
|
# Initialize connection to Route 53 DNS service
|
74
78
|
#
|
75
79
|
# ==== Notes
|
@@ -77,7 +81,7 @@ module Fog
|
|
77
81
|
# :aws_secret_access_key in order to create a connection
|
78
82
|
#
|
79
83
|
# ==== Examples
|
80
|
-
# dns = Fog::DNS
|
84
|
+
# dns = Fog::AWS::DNS.new(
|
81
85
|
# :aws_access_key_id => your_aws_access_key_id,
|
82
86
|
# :aws_secret_access_key => your_aws_secret_access_key
|
83
87
|
# )
|
@@ -147,9 +151,9 @@ module Fog
|
|
147
151
|
else
|
148
152
|
raise case match[:code]
|
149
153
|
when 'NoSuchHostedZone', 'NoSuchChange' then
|
150
|
-
Fog::DNS::
|
154
|
+
Fog::AWS::DNS::NotFound.slurp(error, match[:message])
|
151
155
|
else
|
152
|
-
Fog::DNS::
|
156
|
+
Fog::AWS::DNS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
|
153
157
|
end
|
154
158
|
end
|
155
159
|
end
|
@@ -160,6 +164,151 @@ module Fog
|
|
160
164
|
Base64.encode64(signed_string).chomp!
|
161
165
|
end
|
162
166
|
end
|
167
|
+
|
168
|
+
def self.hosted_zone_for_alias_target(dns_name)
|
169
|
+
hosted_zones = if dns_name.match(/^dualstack\./)
|
170
|
+
elb_dualstack_hosted_zone_mapping
|
171
|
+
else
|
172
|
+
elb_hosted_zone_mapping
|
173
|
+
end
|
174
|
+
|
175
|
+
Hash[hosted_zones.select { |k, _|
|
176
|
+
dns_name =~ /\A.+\.#{k}\.elb\.amazonaws\.com\.?\z/
|
177
|
+
}].values.last
|
178
|
+
end
|
179
|
+
|
180
|
+
def self.elb_hosted_zone_mapping
|
181
|
+
@elb_hosted_zone_mapping ||= {
|
182
|
+
"ap-northeast-1" => "Z2YN17T5R711GT",
|
183
|
+
"ap-southeast-1" => "Z1WI8VXHPB1R38",
|
184
|
+
"ap-southeast-2" => "Z2999QAZ9SRTIC",
|
185
|
+
"eu-west-1" => "Z3NF1Z3NOM5OY2",
|
186
|
+
"eu-central-1" => "Z215JYRZR1TBD5",
|
187
|
+
"sa-east-1" => "Z2ES78Y61JGQKS",
|
188
|
+
"us-east-1" => "Z3DZXE0Q79N41H",
|
189
|
+
"us-west-1" => "Z1M58G0W56PQJA",
|
190
|
+
"us-west-2" => "Z33MTJ483KN6FU",
|
191
|
+
}
|
192
|
+
end
|
193
|
+
|
194
|
+
# See https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region
|
195
|
+
# This needs to be kept in sync manually sadly for now as seemingly this data is not available via an API
|
196
|
+
def self.elb_dualstack_hosted_zone_mapping
|
197
|
+
@elb_dualstack_hosted_zone_mapping ||= {
|
198
|
+
"ap-northeast-1" => "Z14GRHDCWA56QT",
|
199
|
+
"ap-northeast-2" => "ZWKZPGTI48KDX",
|
200
|
+
"ap-northeast-3" => "Z5LXEXXYW11ES",
|
201
|
+
"ap-south-1" => "ZP97RAFLXTNZK",
|
202
|
+
"ap-southeast-1" => "Z1LMS91P8CMLE5",
|
203
|
+
"ap-southeast-2" => "Z1GM3OXH4ZPM65",
|
204
|
+
"ca-central-1" => "ZQSVJUPU6J1EY",
|
205
|
+
"eu-central-1" => "Z215JYRZR1TBD5",
|
206
|
+
"eu-west-1" => "Z32O12XQLNTSW2",
|
207
|
+
"eu-west-2" => "ZHURV8PSTC4K8",
|
208
|
+
"eu-west-3" => "Z3Q77PNBQS71R4",
|
209
|
+
"us-east-1" => "Z35SXDOTRQ7X7K",
|
210
|
+
"us-east-2" => "Z3AADJGX6KTTL2",
|
211
|
+
"us-west-1" => "Z368ELLRRE2KJ0",
|
212
|
+
"us-west-2" => "Z1H1FL5HABSF5",
|
213
|
+
"sa-east-1" => "Z2P70J7HTTTPLU",
|
214
|
+
}
|
215
|
+
end
|
216
|
+
|
217
|
+
# Returns the xml request for a given changeset
|
218
|
+
def self.change_resource_record_sets_data(zone_id, change_batch, version, options = {})
|
219
|
+
# AWS methods return zone_ids that looks like '/hostedzone/id'. Let the caller either use
|
220
|
+
# that form or just the actual id (which is what this request needs)
|
221
|
+
zone_id = zone_id.sub('/hostedzone/', '')
|
222
|
+
|
223
|
+
optional_tags = ''
|
224
|
+
options.each do |option, value|
|
225
|
+
case option
|
226
|
+
when :comment
|
227
|
+
optional_tags += "<Comment>#{value}</Comment>"
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
#build XML
|
232
|
+
if change_batch.count > 0
|
233
|
+
|
234
|
+
changes = "<ChangeBatch>#{optional_tags}<Changes>"
|
235
|
+
|
236
|
+
change_batch.each do |change_item|
|
237
|
+
action_tag = %Q{<Action>#{change_item[:action]}</Action>}
|
238
|
+
name_tag = %Q{<Name>#{change_item[:name]}</Name>}
|
239
|
+
type_tag = %Q{<Type>#{change_item[:type]}</Type>}
|
240
|
+
|
241
|
+
# TTL must be omitted if using an alias record
|
242
|
+
ttl_tag = ''
|
243
|
+
ttl_tag += %Q{<TTL>#{change_item[:ttl]}</TTL>} unless change_item[:alias_target]
|
244
|
+
|
245
|
+
weight_tag = ''
|
246
|
+
set_identifier_tag = ''
|
247
|
+
region_tag = ''
|
248
|
+
if change_item[:set_identifier]
|
249
|
+
set_identifier_tag += %Q{<SetIdentifier>#{change_item[:set_identifier]}</SetIdentifier>}
|
250
|
+
if change_item[:weight] # Weighted Record
|
251
|
+
weight_tag += %Q{<Weight>#{change_item[:weight]}</Weight>}
|
252
|
+
elsif change_item[:region] # Latency record
|
253
|
+
region_tag += %Q{<Region>#{change_item[:region]}</Region>}
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
failover_tag = if change_item[:failover]
|
258
|
+
%Q{<Failover>#{change_item[:failover]}</Failover>}
|
259
|
+
end
|
260
|
+
|
261
|
+
geolocation_tag = if change_item[:geo_location]
|
262
|
+
xml_geo = change_item[:geo_location].map { |k,v| "<#{k}>#{v}</#{k}>" }.join
|
263
|
+
%Q{<GeoLocation>#{xml_geo}</GeoLocation>}
|
264
|
+
end
|
265
|
+
|
266
|
+
resource_records = change_item[:resource_records] || []
|
267
|
+
resource_record_tags = ''
|
268
|
+
resource_records.each do |record|
|
269
|
+
resource_record_tags += %Q{<ResourceRecord><Value>#{record}</Value></ResourceRecord>}
|
270
|
+
end
|
271
|
+
|
272
|
+
# ResourceRecords must be omitted if using an alias record
|
273
|
+
resource_tag = ''
|
274
|
+
resource_tag += %Q{<ResourceRecords>#{resource_record_tags}</ResourceRecords>} if resource_records.any?
|
275
|
+
|
276
|
+
alias_target_tag = ''
|
277
|
+
if change_item[:alias_target]
|
278
|
+
# Accept either underscore or camel case for hash keys.
|
279
|
+
dns_name = change_item[:alias_target][:dns_name] || change_item[:alias_target][:DNSName]
|
280
|
+
hosted_zone_id = change_item[:alias_target][:hosted_zone_id] || change_item[:alias_target][:HostedZoneId] || AWS.hosted_zone_for_alias_target(dns_name)
|
281
|
+
evaluate_target_health = change_item[:alias_target][:evaluate_target_health] || change_item[:alias_target][:EvaluateTargetHealth] || false
|
282
|
+
evaluate_target_health_xml = !evaluate_target_health.nil? ? %Q{<EvaluateTargetHealth>#{evaluate_target_health}</EvaluateTargetHealth>} : ''
|
283
|
+
alias_target_tag += %Q{<AliasTarget><HostedZoneId>#{hosted_zone_id}</HostedZoneId><DNSName>#{dns_name}</DNSName>#{evaluate_target_health_xml}</AliasTarget>}
|
284
|
+
end
|
285
|
+
|
286
|
+
health_check_id_tag = if change_item[:health_check_id]
|
287
|
+
%Q{<HealthCheckId>#{change_item[:health_check_id]}</HealthCheckId>}
|
288
|
+
end
|
289
|
+
|
290
|
+
change_tags = %Q{<Change>#{action_tag}<ResourceRecordSet>#{name_tag}#{type_tag}#{set_identifier_tag}#{weight_tag}#{region_tag}#{failover_tag}#{geolocation_tag}#{ttl_tag}#{resource_tag}#{alias_target_tag}#{health_check_id_tag}</ResourceRecordSet></Change>}
|
291
|
+
changes += change_tags
|
292
|
+
end
|
293
|
+
|
294
|
+
changes += '</Changes></ChangeBatch>'
|
295
|
+
end
|
296
|
+
|
297
|
+
%Q{<?xml version="1.0" encoding="UTF-8"?><ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/#{version}/">#{changes}</ChangeResourceRecordSetsRequest>}
|
298
|
+
end
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
# @deprecated
|
303
|
+
module DNS
|
304
|
+
# @deprecated
|
305
|
+
class AWS < Fog::AWS::DNS
|
306
|
+
# @deprecated
|
307
|
+
# @overrides Fog::Service.new (from the fog-core gem)
|
308
|
+
def self.new(*)
|
309
|
+
Fog::Logger.deprecation 'Fog::DNS::AWS is deprecated, please use Fog::AWS::DNS.'
|
310
|
+
super
|
311
|
+
end
|
163
312
|
end
|
164
313
|
end
|
165
314
|
end
|
data/lib/fog/aws/efs.rb
CHANGED
@@ -64,7 +64,7 @@ module Fog
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def mock_compute
|
67
|
-
@mock_compute ||= Fog::Compute
|
67
|
+
@mock_compute ||= Fog::AWS::Compute.new(:aws_access_key_id => @aws_access_key_id, :aws_secret_access_key => @aws_secret_access_key, :region => @region)
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
data/lib/fog/aws/elasticache.rb
CHANGED
@@ -171,8 +171,10 @@ module Fog
|
|
171
171
|
@aws_credentials_expire_at = Time::now + 20
|
172
172
|
setup_credentials(options)
|
173
173
|
@region = options[:region] || 'us-east-1'
|
174
|
-
unless ['ap-
|
175
|
-
'
|
174
|
+
unless ['ap-south-1', 'ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'ap-southeast-1', 'ap-southeast-2',
|
175
|
+
'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-central-1',
|
176
|
+
'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ca-central-1',
|
177
|
+
'sa-east-1', 'cn-north-1', 'cn-northwest-1', 'ap-east-1', 'us-gov-west-1'].include?(@region)
|
176
178
|
raise ArgumentError, "Unknown region: #{@region.inspect}"
|
177
179
|
end
|
178
180
|
end
|
data/lib/fog/aws/elb.rb
CHANGED
@@ -14,7 +14,7 @@ module Fog
|
|
14
14
|
class ValidationError < Fog::Errors::Error; end
|
15
15
|
|
16
16
|
requires :aws_access_key_id, :aws_secret_access_key
|
17
|
-
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
|
17
|
+
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :version, :instrumentor, :instrumentor_name
|
18
18
|
|
19
19
|
request_path 'fog/aws/requests/elb'
|
20
20
|
request :configure_health_check
|
@@ -142,6 +142,7 @@ module Fog
|
|
142
142
|
@port = options[:port] || 443
|
143
143
|
@scheme = options[:scheme] || 'https'
|
144
144
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
145
|
+
@version ||= options[:version] || '2012-06-01'
|
145
146
|
|
146
147
|
setup_credentials(options)
|
147
148
|
end
|
@@ -178,7 +179,7 @@ module Fog
|
|
178
179
|
:host => @host,
|
179
180
|
:path => @path,
|
180
181
|
:port => @port,
|
181
|
-
:version =>
|
182
|
+
:version => @version,
|
182
183
|
:method => 'POST'
|
183
184
|
}
|
184
185
|
)
|
@@ -0,0 +1,72 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2 < ELB
|
4
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
5
|
+
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :version, :instrumentor, :instrumentor_name
|
6
|
+
|
7
|
+
request_path 'fog/aws/requests/elbv2'
|
8
|
+
request :add_tags
|
9
|
+
request :create_load_balancer
|
10
|
+
request :describe_tags
|
11
|
+
request :remove_tags
|
12
|
+
request :describe_load_balancers
|
13
|
+
request :describe_listeners
|
14
|
+
|
15
|
+
class Real < ELB::Real
|
16
|
+
def initialize(options={})
|
17
|
+
@version = '2015-12-01'
|
18
|
+
|
19
|
+
super(options)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Mock
|
24
|
+
def self.data
|
25
|
+
@data ||= Hash.new do |hash, region|
|
26
|
+
owner_id = Fog::AWS::Mock.owner_id
|
27
|
+
hash[region] = Hash.new do |region_hash, key|
|
28
|
+
region_hash[key] = {
|
29
|
+
:owner_id => owner_id,
|
30
|
+
:load_balancers_v2 => {}
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.dns_name(name, region)
|
37
|
+
"#{name}-#{Fog::Mock.random_hex(8)}.#{region}.elb.amazonaws.com"
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.reset
|
41
|
+
@data = nil
|
42
|
+
end
|
43
|
+
|
44
|
+
attr_reader :region
|
45
|
+
|
46
|
+
def initialize(options={})
|
47
|
+
@use_iam_profile = options[:use_iam_profile]
|
48
|
+
|
49
|
+
@region = options[:region] || 'us-east-1'
|
50
|
+
setup_credentials(options)
|
51
|
+
|
52
|
+
Fog::AWS.validate_region!(@region)
|
53
|
+
end
|
54
|
+
|
55
|
+
def setup_credentials(options)
|
56
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
57
|
+
@aws_secret_access_key = options[:aws_secret_access_key]
|
58
|
+
|
59
|
+
@signer = Fog::AWS::SignatureV4.new(@aws_access_key_id, @aws_secret_access_key,@region,'elasticloadbalancing')
|
60
|
+
end
|
61
|
+
|
62
|
+
def data
|
63
|
+
self.class.data[@region][@aws_access_key_id]
|
64
|
+
end
|
65
|
+
|
66
|
+
def reset_data
|
67
|
+
self.class.data[@region].delete(@aws_access_key_id)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
data/lib/fog/aws/glacier.rb
CHANGED
@@ -39,52 +39,114 @@ module Fog
|
|
39
39
|
new.add_part(body)
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
42
|
+
def initialize
|
43
|
+
@last_chunk_digest = nil # Digest OBJECT for last chunk (Digest::SHA256)
|
44
|
+
@last_chunk_digest_temp = nil # Digest VALUE for last chunk
|
45
|
+
@last_chunk_length = 0 # Length of last chunk, always smaller than 1MB.
|
46
|
+
@digest_stack = []
|
47
|
+
# First position on stack corresponds to 1MB, second 2MB, third 4MB, fourt 8MB and so on.
|
48
|
+
# In any time, the size of all already added parts is equal to sum of all existing (non-nil)
|
49
|
+
# positions multiplied by that number, plus last_chunk_length for the remainder smaller than
|
50
|
+
# one megabyte. So, if last_chunk_length is half megabyte, stack[0] is filled, stack[1] and
|
51
|
+
# stack[2] empty and stack[3] filled, the size is 0.5MB + 1x1MB + 0x2MB + 0x4MB + 1x8MB = 9.5MB.
|
52
|
+
end
|
53
|
+
|
54
|
+
def update_digest_stack(digest, stack)
|
55
|
+
stack.each_with_index{|s,i|
|
56
|
+
if s
|
57
|
+
digest = Digest::SHA256.digest(s + digest)
|
58
|
+
stack[i] = nil
|
59
|
+
else
|
60
|
+
stack[i] = digest # Update this position with value obtained in previous run of cycle.
|
61
|
+
digest = nil
|
62
|
+
break
|
50
63
|
end
|
51
|
-
|
52
|
-
|
64
|
+
}
|
65
|
+
stack << digest if digest
|
53
66
|
end
|
54
67
|
|
55
|
-
def
|
56
|
-
|
68
|
+
def reduce_digest_stack(digest, stack)
|
69
|
+
stack.each_with_index{|s,i|
|
70
|
+
unless digest
|
71
|
+
digest = stack[i]
|
72
|
+
next
|
73
|
+
end
|
74
|
+
if stack[i]
|
75
|
+
digest = Digest::SHA256.digest(stack[i] + digest)
|
76
|
+
end
|
77
|
+
}
|
78
|
+
digest
|
57
79
|
end
|
58
80
|
|
59
81
|
def add_part(bytes)
|
60
82
|
part = self.digest_for_part(bytes)
|
61
|
-
@digests << part
|
62
83
|
part.unpack('H*').first
|
63
84
|
end
|
64
85
|
|
65
|
-
def
|
66
|
-
chunk_count = [body.bytesize / MEGABYTE + (body.bytesize % MEGABYTE > 0 ? 1 : 0), 1].max
|
86
|
+
def prepare_body_for_slice(body)
|
67
87
|
if body.respond_to? :byteslice
|
68
|
-
|
88
|
+
r = yield(body, :byteslice)
|
69
89
|
else
|
70
90
|
if body.respond_to? :encoding
|
71
91
|
old_encoding = body.encoding
|
72
92
|
body.force_encoding('BINARY')
|
73
93
|
end
|
74
|
-
|
94
|
+
r = yield(body, :slice)
|
75
95
|
if body.respond_to? :encoding
|
76
96
|
body.force_encoding(old_encoding)
|
77
97
|
end
|
78
98
|
end
|
79
|
-
|
99
|
+
r
|
80
100
|
end
|
81
101
|
|
82
|
-
def
|
83
|
-
|
102
|
+
def digest_for_part(body)
|
103
|
+
part_stack = []
|
104
|
+
part_temp = nil
|
105
|
+
body_size = body.bytesize
|
106
|
+
prepare_body_for_slice(body) {|body, slice|
|
107
|
+
start_offset = 0
|
108
|
+
if @last_chunk_length != 0
|
109
|
+
start_offset = MEGABYTE - @last_chunk_length
|
110
|
+
@last_chunk_hash.update(body.send(slice, 0, start_offset))
|
111
|
+
hash = @last_chunk_hash.digest
|
112
|
+
@last_chunk_digest_temp = hash
|
113
|
+
if body_size > start_offset
|
114
|
+
@last_chunk_length = 0
|
115
|
+
@last_chunk_hash = nil
|
116
|
+
@last_chunk_digest_temp = nil
|
117
|
+
update_digest_stack(hash, @digest_stack)
|
118
|
+
else
|
119
|
+
part_temp = hash
|
120
|
+
@last_chunk_digest_temp = hash
|
121
|
+
@last_chunk_length += body_size
|
122
|
+
next
|
123
|
+
end
|
124
|
+
end
|
125
|
+
whole_chunk_count = (body_size - start_offset) / MEGABYTE
|
126
|
+
whole_chunk_count.times.each {|chunk_index|
|
127
|
+
hash = Digest::SHA256.digest(body.send(slice, start_offset + chunk_index * MEGABYTE, MEGABYTE))
|
128
|
+
update_digest_stack(hash, part_stack)
|
129
|
+
update_digest_stack(hash, @digest_stack)
|
130
|
+
}
|
131
|
+
rest_size = body_size - start_offset - whole_chunk_count * MEGABYTE
|
132
|
+
if rest_size > 0 || whole_chunk_count == 0
|
133
|
+
@last_chunk_hash = Digest::SHA256.new
|
134
|
+
@last_chunk_length = rest_size
|
135
|
+
@last_chunk_hash.update(body.send(slice, start_offset + whole_chunk_count * MEGABYTE, rest_size))
|
136
|
+
hash = @last_chunk_hash.digest
|
137
|
+
@last_chunk_digest_temp = hash
|
138
|
+
part_temp = hash
|
139
|
+
end
|
140
|
+
}
|
141
|
+
reduce_digest_stack(part_temp, part_stack)
|
84
142
|
end
|
85
143
|
|
86
144
|
def digest
|
87
|
-
|
145
|
+
reduce_digest_stack(@last_chunk_digest_temp, @digest_stack)
|
146
|
+
end
|
147
|
+
|
148
|
+
def hexdigest
|
149
|
+
digest.unpack('H*').first
|
88
150
|
end
|
89
151
|
end
|
90
152
|
|