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
@@ -7,15 +7,15 @@ module Fog
|
|
7
7
|
#
|
8
8
|
# ==== Parameters
|
9
9
|
# * 'table_name'<~String> - name of table for item
|
10
|
-
# * 'key'<~Hash> - list of
|
10
|
+
# * 'key'<~Hash> - list of Key attributes
|
11
11
|
# {
|
12
12
|
# "ForumName": {"S": "Amazon DynamoDB"},
|
13
13
|
# "Subject": {"S": "Maximum number of items?"}
|
14
14
|
# }
|
15
15
|
#
|
16
16
|
# * 'options'<~Hash>:
|
17
|
-
# * '
|
18
|
-
# * 'ExpressionAttributeValues'<~Hash> - values to be used in the
|
17
|
+
# * 'UpdateExpression'<~String> - the expression that will update the item
|
18
|
+
# * 'ExpressionAttributeValues'<~Hash> - values to be used in the update expression
|
19
19
|
# * 'ReturnValues'<~String> - data to return in %w{ALL_NEW ALL_OLD NONE UPDATED_NEW UPDATED_OLD}, defaults to NONE
|
20
20
|
#
|
21
21
|
# ==== Returns
|
@@ -29,13 +29,14 @@ module Fog
|
|
29
29
|
if deprecated_attribute_updates
|
30
30
|
raise DeprecatedAttributeUpdates, "The `20111205` DynamoDB API is deprecated. You need to use `ExpressionAttributeValues` instead of `AttributeUpdates`."
|
31
31
|
attribute_updates = options
|
32
|
-
options = deprecated_attribute_updates
|
32
|
+
options = deprecated_attribute_updates.merge(
|
33
|
+
'AttributeUpdates' => attribute_updates,
|
34
|
+
)
|
33
35
|
end
|
34
36
|
|
35
37
|
body = {
|
36
38
|
'Key' => key,
|
37
39
|
'TableName' => table_name,
|
38
|
-
'AttributeUpdates' => attribute_updates,
|
39
40
|
}.merge(options)
|
40
41
|
|
41
42
|
request(
|
@@ -7,17 +7,27 @@ module Fog
|
|
7
7
|
# ==== Parameters
|
8
8
|
# * CreationToken <~String> - String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation.
|
9
9
|
# * PerformanceMode <~String> - (Optional) The PerformanceMode of the file system. We recommend generalPurpose performance mode for most file systems. File systems using the maxIO performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. This can't be changed after the file system has been created.
|
10
|
+
# * Encrypted <~Boolean> - (Optional) A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a CreateFileSystem:KmsKeyId for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.
|
11
|
+
# * KmsKeyId <~String> - (Optional) The ID of the AWS KMS CMK to be used to protect the encrypted file system. This parameter is only required if you want to use a non-default CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This ID can be in one of the following formats:
|
12
|
+
# - Key ID - A unique identifier of the key, for example, 1234abcd-12ab-34cd-56ef-1234567890ab.
|
13
|
+
# - ARN - An Amazon Resource Name (ARN) for the key, for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
|
14
|
+
# - Key alias - A previously created display name for a key. For example, alias/projectKey1.
|
15
|
+
# - Key alias ARN - An ARN for a key alias, for example, arn:aws:kms:us-west-2:444455556666:alias/projectKey1.
|
16
|
+
# If KmsKeyId is specified, the CreateFileSystem:Encrypted parameter must be set to true.
|
10
17
|
# ==== Returns
|
11
18
|
# * response<~Excon::Response>
|
12
19
|
# * body<~Hash>
|
13
20
|
def create_file_system(creation_token, options={})
|
14
|
-
|
21
|
+
params = {
|
15
22
|
:path => "file-systems",
|
16
23
|
:method => 'POST',
|
17
24
|
:expects => 201,
|
18
25
|
'CreationToken' => creation_token,
|
19
|
-
'PerformanceMode' => options[:peformance_mode] || 'generalPurpose'
|
20
|
-
|
26
|
+
'PerformanceMode' => options[:peformance_mode] || 'generalPurpose',
|
27
|
+
'Encrypted' => options[:encrypted] || false
|
28
|
+
}
|
29
|
+
params[:kms_key_id] = options[:kms_key_id] if options.key?(:kms_key_id)
|
30
|
+
request(params)
|
21
31
|
end
|
22
32
|
end
|
23
33
|
|
@@ -30,6 +40,7 @@ module Fog
|
|
30
40
|
"OwnerId" => Fog::AWS::Mock.owner_id,
|
31
41
|
"CreationToken" => creation_token,
|
32
42
|
"PerformanceMode" => options[:performance_mode] || "generalPurpose",
|
43
|
+
"Encrypted" => options[:encrypted] || false,
|
33
44
|
"FileSystemId" => id,
|
34
45
|
"CreationTime" => Time.now.to_i.to_f,
|
35
46
|
"LifeCycleState" => "creating",
|
@@ -39,6 +50,7 @@ module Fog
|
|
39
50
|
"Timestamp" => Time.now.to_i.to_f
|
40
51
|
}
|
41
52
|
}
|
53
|
+
file_system[:kms_key_id] = options[:kms_key_id] if options.key?(:kms_key_id)
|
42
54
|
|
43
55
|
self.data[:file_systems][id] = file_system
|
44
56
|
response.body = file_system
|
@@ -80,7 +80,7 @@ module Fog
|
|
80
80
|
elsif subnet_ids.any?
|
81
81
|
# using Hash here for Rubt 1.8.7 support.
|
82
82
|
Hash[
|
83
|
-
Fog::Compute::
|
83
|
+
Fog::AWS::Compute::Mock.data.select do |_, region_data|
|
84
84
|
region_data[@aws_access_key_id][:subnets].any? do |region_subnets|
|
85
85
|
subnet_ids.include? region_subnets['subnetId']
|
86
86
|
end
|
@@ -89,8 +89,8 @@ module Fog
|
|
89
89
|
else
|
90
90
|
'us-east-1'
|
91
91
|
end
|
92
|
-
supported_platforms = Fog::Compute::
|
93
|
-
subnets = Fog::Compute::
|
92
|
+
supported_platforms = Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"]
|
93
|
+
subnets = Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:subnets].select {|e| subnet_ids.include?(e["subnetId"]) }
|
94
94
|
|
95
95
|
# http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html
|
96
96
|
elb_location = if supported_platforms.include?("EC2")
|
@@ -109,21 +109,21 @@ module Fog
|
|
109
109
|
|
110
110
|
security_group = case elb_location
|
111
111
|
when 'EC2-Classic'
|
112
|
-
Fog::Compute::
|
112
|
+
Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:security_groups]['amazon-elb-sg']
|
113
113
|
when 'EC2-VPC-Default'
|
114
|
-
compute = Fog::Compute::
|
114
|
+
compute = Fog::AWS::Compute::new(:aws_access_key_id => @aws_access_key_id, :aws_secret_access_key => @aws_secret_access_key)
|
115
115
|
|
116
116
|
vpc = compute.vpcs.all.first ||
|
117
117
|
compute.vpcs.create('cidr_block' => '10.0.0.0/24')
|
118
118
|
|
119
|
-
Fog::Compute::
|
119
|
+
Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
|
120
120
|
sg['groupName'] =~ /^default_elb/ &&
|
121
121
|
sg["vpcId"] == vpc.id
|
122
122
|
}
|
123
123
|
when 'EC2-VPC'
|
124
124
|
vpc_id = subnets.first["vpcId"]
|
125
125
|
|
126
|
-
Fog::Compute::
|
126
|
+
Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
|
127
127
|
sg['groupName'] == 'default' &&
|
128
128
|
sg["vpcId"] == vpc_id
|
129
129
|
}
|
@@ -35,7 +35,7 @@ module Fog
|
|
35
35
|
raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
|
36
36
|
instance_ids = [*instance_ids]
|
37
37
|
instance_ids.each do |instance|
|
38
|
-
raise Fog::AWS::ELB::InvalidInstance unless Fog::Compute::
|
38
|
+
raise Fog::AWS::ELB::InvalidInstance unless Fog::AWS::Compute::Mock.data[@region][@aws_access_key_id][:instances][instance]
|
39
39
|
end
|
40
40
|
|
41
41
|
response = Excon::Response.new
|
@@ -38,7 +38,7 @@ module Fog
|
|
38
38
|
instance_ids = [*instance_ids]
|
39
39
|
instance_ids = load_balancer['Instances'].map { |i| i['InstanceId'] } unless instance_ids.any?
|
40
40
|
data = instance_ids.map do |id|
|
41
|
-
unless Fog::Compute::
|
41
|
+
unless Fog::AWS::Compute::Mock.data[@region][@aws_access_key_id][:instances][id]
|
42
42
|
raise Fog::AWS::ELB::InvalidInstance
|
43
43
|
end
|
44
44
|
|
@@ -35,7 +35,7 @@ module Fog
|
|
35
35
|
raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
|
36
36
|
instance_ids = [*instance_ids]
|
37
37
|
instances = instance_ids.map do |instance|
|
38
|
-
raise Fog::AWS::ELB::InvalidInstance unless Fog::Compute::
|
38
|
+
raise Fog::AWS::ELB::InvalidInstance unless Fog::AWS::Compute::Mock.data[@region][@aws_access_key_id][:instances][instance]
|
39
39
|
{'InstanceId' => instance}
|
40
40
|
end
|
41
41
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/elbv2/empty'
|
6
|
+
|
7
|
+
# adds tags to a load balancer instance
|
8
|
+
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_AddTags.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * resource_arn <~String> - The Amazon Resource Name (ARN) of the resource
|
11
|
+
# * tags <~Hash> A Hash of (String) key-value pairs
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
def add_tags(resource_arn, tags)
|
16
|
+
keys = tags.keys.sort
|
17
|
+
values = keys.map {|key| tags[key]}
|
18
|
+
request({
|
19
|
+
'Action' => 'AddTags',
|
20
|
+
'ResourceArns.member.1' => resource_arn,
|
21
|
+
:parser => Fog::Parsers::AWS::ELBV2::Empty.new,
|
22
|
+
}.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys))
|
23
|
+
.merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
class Mock
|
29
|
+
def add_tags(resource_arn, tags)
|
30
|
+
response = Excon::Response.new
|
31
|
+
if self.data[:load_balancers_v2][resource_arn]
|
32
|
+
self.data[:tags][resource_arn].merge! tags
|
33
|
+
response.status = 200
|
34
|
+
response.body = {
|
35
|
+
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id }
|
36
|
+
}
|
37
|
+
response
|
38
|
+
else
|
39
|
+
raise Fog::AWS::ELBV2::NotFound.new("Elastic load balancer #{resource_arn} not found")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,160 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/elbv2/create_load_balancer'
|
6
|
+
|
7
|
+
# Create a new Elastic Load Balancer
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * name<~String> - The name of the load balancer.
|
11
|
+
# This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens,
|
12
|
+
# must not begin or end with a hyphen, and must not begin with "internal-".
|
13
|
+
# - Required: Yes
|
14
|
+
# * options<~Hash>:
|
15
|
+
# * ip_address_type<~String> - [Application Load Balancers] The type of IP addresses used by the subnets for your load balancer.
|
16
|
+
# The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).
|
17
|
+
# Internal load balancers must use ipv4.
|
18
|
+
# - Required: No
|
19
|
+
# * scheme<~String> - The default is an Internet-facing load balancer. Valid Values: internet-facing | internal
|
20
|
+
# - Required: No
|
21
|
+
# * security_groups<~Array> - The IDs of the security groups for the load balancer.
|
22
|
+
# - Required: No
|
23
|
+
# * subnet_mappings<~Array> - The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.
|
24
|
+
# - [Application Load Balancers] You must specify subnets from at least two Availability Zones.
|
25
|
+
# You cannot specify Elastic IP addresses for your subnets.
|
26
|
+
# - [Network Load Balancers] You can specify subnets from one or more Availability Zones.
|
27
|
+
# You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer.
|
28
|
+
# For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet.
|
29
|
+
# - Required: No
|
30
|
+
# * subnets<~Array> - The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.
|
31
|
+
# - [Application Load Balancers] You must specify subnets from at least two Availability Zones.
|
32
|
+
# - [Network Load Balancers] You can specify subnets from one or more Availability Zones.
|
33
|
+
# - Required: No
|
34
|
+
# * tags<~Hash> - One or more tags to assign to the load balancer.
|
35
|
+
# - Required: No
|
36
|
+
# * type<~String> - The type of load balancer. The default is application. Valid Values: application | network
|
37
|
+
# - Required: No
|
38
|
+
# ==== Returns
|
39
|
+
# * response<~Excon::Response>:
|
40
|
+
# * body<~Hash>:
|
41
|
+
# * 'ResponseMetadata'<~Hash>:
|
42
|
+
# * 'RequestId'<~String> - Id of request
|
43
|
+
# * 'CreateLoadBalancerResult'<~Hash>:
|
44
|
+
# * 'LoadBalancers'<~Array>
|
45
|
+
# * 'AvailabilityZones'<~Array>:
|
46
|
+
# * 'SubnetId'<~String> - ID of the subnet
|
47
|
+
# * 'ZoneName'<~String> - Name of the Availability Zone
|
48
|
+
# * 'LoadBalancerAddresses'<~Array>:
|
49
|
+
# * 'IpAddress'<~String> - IP address
|
50
|
+
# * 'AllocationId'<~String> - ID of the AWS allocation
|
51
|
+
# * 'CanonicalHostedZoneName'<~String> - name of the Route 53 hosted zone associated with the load balancer
|
52
|
+
# * 'CanonicalHostedZoneNameID'<~String> - ID of the Route 53 hosted zone associated with the load balancer
|
53
|
+
# * 'CreatedTime'<~Time> - time load balancer was created
|
54
|
+
# * 'DNSName'<~String> - external DNS name of load balancer
|
55
|
+
# * 'LoadBalancerName'<~String> - name of load balancer
|
56
|
+
# * 'SecurityGroups'<~Array> - array of security group id
|
57
|
+
def create_load_balancer(name, options = {})
|
58
|
+
params = {}
|
59
|
+
params.merge!(Fog::AWS.indexed_param('Subnets.member.%d', options[:subnets]))
|
60
|
+
params.merge!(Fog::AWS.indexed_param('SecurityGroups.member.%d', options[:security_groups]))
|
61
|
+
params.merge!(Fog::AWS.serialize_keys('Scheme', options[:scheme]))
|
62
|
+
params.merge!(Fog::AWS.serialize_keys('Type', options[:type]))
|
63
|
+
params.merge!(Fog::AWS.serialize_keys('IpAddressType', options[:ip_address_type]))
|
64
|
+
|
65
|
+
|
66
|
+
unless options[:tags].nil?
|
67
|
+
tag_keys = options[:tags].keys.sort
|
68
|
+
tag_values = tag_keys.map { |key| options[:tags][key] }
|
69
|
+
params.merge!(Fog::AWS.indexed_param('Tags.member.%d.Key', tag_keys))
|
70
|
+
params.merge!(Fog::AWS.indexed_param('Tags.member.%d.Value', tag_values))
|
71
|
+
end
|
72
|
+
|
73
|
+
unless options[:subnet_mappings].nil?
|
74
|
+
subnet_ids = []
|
75
|
+
allocation_ids = []
|
76
|
+
private_ipv4_address = []
|
77
|
+
options[:subnet_mappings].each do |subnet_mapping|
|
78
|
+
subnet_ids.push(subnet_mapping[:subnet_id])
|
79
|
+
allocation_ids.push(subnet_mapping[:allocation_id])
|
80
|
+
private_ipv4_address.push(subnet_mapping[:private_ipv4_address])
|
81
|
+
end
|
82
|
+
params.merge!(Fog::AWS.indexed_param('SubnetMappings.member.%d.SubnetId', subnet_ids))
|
83
|
+
params.merge!(Fog::AWS.indexed_param('SubnetMappings.member.%d.AllocationId', allocation_ids))
|
84
|
+
params.merge!(Fog::AWS.indexed_param('SubnetMappings.member.%d.PrivateIPv4Address', private_ipv4_address))
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
request({
|
89
|
+
'Action' => 'CreateLoadBalancer',
|
90
|
+
'Name' => name,
|
91
|
+
:parser => Fog::Parsers::AWS::ELBV2::CreateLoadBalancer.new
|
92
|
+
}.merge!(params))
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
class Mock
|
97
|
+
def create_load_balancer(name, options = {})
|
98
|
+
response = Excon::Response.new
|
99
|
+
response.status = 200
|
100
|
+
|
101
|
+
raise Fog::AWS::ELBV2::IdentifierTaken if self.data[:load_balancers_v2].key? name
|
102
|
+
|
103
|
+
dns_name = Fog::AWS::ELBV2::Mock.dns_name(name, @region)
|
104
|
+
type = options[:type] || 'application'
|
105
|
+
load_balancer_arn = Fog::AWS::Mock.arn('elasticloadbalancing', self.data[:owner_id], "loadbalancer/#{type[0..2]}/#{name}/#{Fog::AWS::Mock.key_id}")
|
106
|
+
|
107
|
+
subnet_ids = options[:subnets] || []
|
108
|
+
region = if subnet_ids.any?
|
109
|
+
# using Hash here for Rubt 1.8.7 support.
|
110
|
+
Hash[
|
111
|
+
Fog::AWS::Compute::Mock.data.select do |_, region_data|
|
112
|
+
unless region_data[@aws_access_key_id].nil?
|
113
|
+
region_data[@aws_access_key_id][:subnets].any? do |region_subnets|
|
114
|
+
subnet_ids.include? region_subnets['subnetId']
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
].keys[0]
|
119
|
+
else
|
120
|
+
'us-east-1'
|
121
|
+
end
|
122
|
+
|
123
|
+
subnets = Fog::AWS::Compute::Mock.data[region][@aws_access_key_id][:subnets].select {|e| subnet_ids.include?(e["subnetId"]) }
|
124
|
+
availability_zones = subnets.map do |subnet|
|
125
|
+
{ "LoadBalancerAddresses"=>[], "SubnetId"=>subnet["subnetId"], "ZoneName"=>subnet["availabilityZone"]}
|
126
|
+
end
|
127
|
+
vpc_id = subnets.first['vpcId']
|
128
|
+
|
129
|
+
self.data[:tags] ||= {}
|
130
|
+
self.data[:tags][load_balancer_arn] = options[:tags] || {}
|
131
|
+
|
132
|
+
load_balancer = {
|
133
|
+
'AvailabilityZones' => availability_zones || [],
|
134
|
+
'Scheme' => options[:scheme] || 'internet-facing',
|
135
|
+
'SecurityGroups' => options[:security_groups] || [],
|
136
|
+
'CanonicalHostedZoneId' => '',
|
137
|
+
'CreatedTime' => Time.now,
|
138
|
+
'DNSName' => dns_name,
|
139
|
+
'VpcId' => vpc_id,
|
140
|
+
'Type' => type,
|
141
|
+
'State' => {'Code' => 'provisioning'},
|
142
|
+
'LoadBalancerArn' => load_balancer_arn,
|
143
|
+
'LoadBalancerName' => name
|
144
|
+
}
|
145
|
+
self.data[:load_balancers_v2][load_balancer_arn] = load_balancer
|
146
|
+
response.body = {
|
147
|
+
'ResponseMetadata' => {
|
148
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
149
|
+
},
|
150
|
+
'CreateLoadBalancerResult' => {
|
151
|
+
'LoadBalancers' => [load_balancer]
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
response
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/elbv2/describe_listeners'
|
6
|
+
|
7
|
+
# Describe all or specified load balancers
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * 'LoadBalancerArn'<~String> - The Amazon Resource Name (ARN) of the load balancer
|
11
|
+
# * options<~Hash>
|
12
|
+
# * 'Marker'<String> - Indicates where to begin in your list of load balancers
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'ResponseMetadata'<~Hash>:
|
18
|
+
# * 'RequestId'<~String> - Id of request
|
19
|
+
# * 'DescribeListenersResult'<~Hash>:
|
20
|
+
# * 'Listeners'<~Array>
|
21
|
+
# * 'LoadBalancerArn'<~String> - The Amazon Resource Name (ARN) of the load balancer
|
22
|
+
# * 'Protocol'<~String> - The protocol for connections from clients to the load balancer
|
23
|
+
# * 'Port'<~String> - The port on which the load balancer is listening
|
24
|
+
# * 'DefaultActions'<~Array> - The default actions for the listener
|
25
|
+
# * 'Type'<~String> - The type of action
|
26
|
+
# * 'TargetGroupArn'<~String> - The Amazon Resource Name (ARN) of the target group. Specify only when Type is forward
|
27
|
+
# * 'NextMarker'<~String> - Marker to specify for next page
|
28
|
+
def describe_listeners(load_balancer_arn, options = {})
|
29
|
+
request({
|
30
|
+
'Action' => 'DescribeListeners',
|
31
|
+
'LoadBalancerArn' => load_balancer_arn,
|
32
|
+
:parser => Fog::Parsers::AWS::ELBV2::DescribeListeners.new
|
33
|
+
}.merge!(options))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/elbv2/describe_load_balancers'
|
6
|
+
|
7
|
+
# Describe all or specified load balancers
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * options<~Hash>
|
11
|
+
# * 'LoadBalancerNames'<~Array> - List of load balancer names to describe, defaults to all
|
12
|
+
# * 'Marker'<String> - Indicates where to begin in your list of load balancers
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'ResponseMetadata'<~Hash>:
|
18
|
+
# * 'RequestId'<~String> - Id of request
|
19
|
+
# * 'DescribeLoadBalancersResult'<~Hash>:
|
20
|
+
# * 'LoadBalancers'<~Array>
|
21
|
+
# * 'AvailabilityZones'<~Array>:
|
22
|
+
# * 'SubnetId'<~String> - ID of the subnet
|
23
|
+
# * 'ZoneName'<~String> - Name of the Availability Zone
|
24
|
+
# * 'LoadBalancerAddresses'<~Array>:
|
25
|
+
# * 'IpAddress'<~String> - IP address
|
26
|
+
# * 'AllocationId'<~String> - ID of the AWS allocation
|
27
|
+
# * 'CanonicalHostedZoneName'<~String> - name of the Route 53 hosted zone associated with the load balancer
|
28
|
+
# * 'CanonicalHostedZoneNameID'<~String> - ID of the Route 53 hosted zone associated with the load balancer
|
29
|
+
# * 'CreatedTime'<~Time> - time load balancer was created
|
30
|
+
# * 'DNSName'<~String> - external DNS name of load balancer
|
31
|
+
# * 'LoadBalancerName'<~String> - name of load balancer
|
32
|
+
# * 'SecurityGroups'<~Array> - array of security group id
|
33
|
+
# * 'NextMarker'<~String> - Marker to specify for next page
|
34
|
+
def describe_load_balancers(options = {})
|
35
|
+
unless options.is_a?(Hash)
|
36
|
+
Fog::Logger.deprecation("describe_load_balancers with #{options.class} is deprecated, use all('LoadBalancerNames' => []) instead [light_black](#{caller.first})[/]")
|
37
|
+
options = { 'LoadBalancerNames' => [options].flatten }
|
38
|
+
end
|
39
|
+
|
40
|
+
if names = options.delete('LoadBalancerNames')
|
41
|
+
options.update(Fog::AWS.indexed_param('LoadBalancerNames.member', [*names]))
|
42
|
+
end
|
43
|
+
|
44
|
+
request({
|
45
|
+
'Action' => 'DescribeLoadBalancers',
|
46
|
+
:parser => Fog::Parsers::AWS::ELBV2::DescribeLoadBalancers.new
|
47
|
+
}.merge!(options))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class Mock
|
52
|
+
def describe_load_balancers(options = {})
|
53
|
+
unless options.is_a?(Hash)
|
54
|
+
Fog::Logger.deprecation("describe_load_balancers with #{options.class} is deprecated, use all('LoadBalancerNames' => []) instead [light_black](#{caller.first})[/]")
|
55
|
+
options = { 'LoadBalancerNames' => [options].flatten }
|
56
|
+
end
|
57
|
+
|
58
|
+
lb_names = options['LoadBalancerNames'] || []
|
59
|
+
|
60
|
+
lb_names = [*lb_names]
|
61
|
+
load_balancers = if lb_names.any?
|
62
|
+
lb_names.map do |lb_name|
|
63
|
+
lb = self.data[:load_balancers_v2].find { |name, data| name == lb_name }
|
64
|
+
raise Fog::AWS::ELBV2::NotFound unless lb
|
65
|
+
lb[1].dup
|
66
|
+
end.compact
|
67
|
+
else
|
68
|
+
self.data[:load_balancers_v2].map { |lb, values| values.dup }
|
69
|
+
end
|
70
|
+
|
71
|
+
marker = options.fetch('Marker', 0).to_i
|
72
|
+
if load_balancers.count - marker > 400
|
73
|
+
next_marker = marker + 400
|
74
|
+
load_balancers = load_balancers[marker...next_marker]
|
75
|
+
else
|
76
|
+
next_marker = nil
|
77
|
+
end
|
78
|
+
|
79
|
+
response = Excon::Response.new
|
80
|
+
response.status = 200
|
81
|
+
|
82
|
+
response.body = {
|
83
|
+
'ResponseMetadata' => {
|
84
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
85
|
+
},
|
86
|
+
'DescribeLoadBalancersResult' => {
|
87
|
+
'LoadBalancers' => load_balancers
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
if next_marker
|
92
|
+
response.body['DescribeLoadBalancersResult']['NextMarker'] = next_marker.to_s
|
93
|
+
end
|
94
|
+
|
95
|
+
response
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|