fog-aws 3.5.0 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -765
- data/LICENSE.md +1 -1
- data/README.md +117 -7
- data/fog-aws.gemspec +14 -11
- data/lib/fog/aws/auto_scaling.rb +1 -1
- data/lib/fog/aws/beanstalk.rb +1 -1
- data/lib/fog/aws/cdn.rb +1 -1
- data/lib/fog/aws/cloud_formation.rb +1 -1
- data/lib/fog/aws/cloud_watch.rb +1 -1
- data/lib/fog/aws/compute.rb +8 -5
- data/lib/fog/aws/credential_fetcher.rb +89 -7
- data/lib/fog/aws/data_pipeline.rb +1 -1
- data/lib/fog/aws/dns.rb +137 -1
- data/lib/fog/aws/dynamodb.rb +1 -1
- data/lib/fog/aws/ecs.rb +1 -1
- data/lib/fog/aws/elasticache.rb +6 -4
- data/lib/fog/aws/elb.rb +2 -2
- data/lib/fog/aws/elbv2.rb +72 -0
- data/lib/fog/aws/emr.rb +1 -1
- data/lib/fog/aws/glacier.rb +84 -22
- data/lib/fog/aws/iam.rb +1 -1
- data/lib/fog/aws/kinesis.rb +24 -16
- data/lib/fog/aws/kms.rb +1 -1
- data/lib/fog/aws/lambda.rb +1 -1
- data/lib/fog/aws/models/compute/dhcp_option.rb +1 -1
- data/lib/fog/aws/models/compute/flavors.rb +3803 -531
- data/lib/fog/aws/models/compute/network_interfaces.rb +1 -1
- data/lib/fog/aws/models/compute/security_group.rb +13 -5
- data/lib/fog/aws/models/compute/server.rb +6 -2
- data/lib/fog/aws/models/compute/servers.rb +2 -0
- data/lib/fog/aws/models/compute/snapshot.rb +7 -6
- data/lib/fog/aws/models/compute/vpc.rb +8 -2
- data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
- data/lib/fog/aws/models/storage/directories.rb +1 -0
- data/lib/fog/aws/models/storage/directory.rb +0 -1
- data/lib/fog/aws/models/storage/file.rb +168 -23
- data/lib/fog/aws/models/storage/files.rb +33 -2
- data/lib/fog/aws/parsers/compute/create_snapshot.rb +1 -1
- data/lib/fog/aws/parsers/compute/create_subnet.rb +33 -6
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +18 -4
- data/lib/fog/aws/parsers/compute/describe_subnets.rb +33 -6
- data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +1 -1
- data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +3 -3
- data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +3 -1
- data/lib/fog/aws/parsers/elbv2/create_load_balancer.rb +88 -0
- data/lib/fog/aws/parsers/elbv2/describe_listeners.rb +110 -0
- data/lib/fog/aws/parsers/elbv2/describe_load_balancers.rb +88 -0
- data/lib/fog/aws/parsers/elbv2/describe_tags.rb +53 -0
- data/lib/fog/aws/parsers/elbv2/empty.rb +10 -0
- data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
- data/lib/fog/aws/parsers/iam/list_server_certificates.rb +1 -1
- data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
- data/lib/fog/aws/parsers/rds/db_cluster_parser.rb +1 -1
- data/lib/fog/aws/parsers/rds/db_parser.rb +1 -1
- data/lib/fog/aws/parsers/rds/modify_db_subnet_group.rb +1 -1
- data/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb +1 -1
- data/lib/fog/aws/parsers/storage/get_object_tagging.rb +33 -0
- data/lib/fog/aws/parsers/storage/upload_part_copy_object.rb +18 -0
- data/lib/fog/aws/parsers/sts/assume_role_with_web_identity.rb +1 -1
- data/lib/fog/aws/rds.rb +1 -1
- data/lib/fog/aws/redshift.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/attach_load_balancer_target_groups.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/create_change_set.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/create_stack.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/get_template_summary.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +1 -1
- data/lib/fog/aws/requests/cloud_watch/list_metrics.rb +1 -1
- data/lib/fog/aws/requests/compute/authorize_security_group_egress.rb +1 -1
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +16 -1
- data/lib/fog/aws/requests/compute/create_network_interface.rb +8 -5
- data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
- data/lib/fog/aws/requests/compute/create_vpc.rb +3 -3
- data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
- data/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb +1 -1
- data/lib/fog/aws/requests/compute/modify_volume.rb +1 -1
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +1 -1
- data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +1 -1
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +1 -1
- data/lib/fog/aws/requests/compute/run_instances.rb +64 -0
- data/lib/fog/aws/requests/compute/stop_instances.rb +11 -3
- data/lib/fog/aws/requests/data_pipeline/deactivate_pipeline.rb +1 -1
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +0 -133
- data/lib/fog/aws/requests/ecs/list_task_definitions.rb +1 -1
- data/lib/fog/aws/requests/efs/create_file_system.rb +1 -1
- data/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb +1 -1
- data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +2 -2
- data/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb +1 -1
- data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.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/glacier/initiate_job.rb +1 -1
- data/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb +1 -1
- data/lib/fog/aws/requests/kinesis/list_streams.rb +1 -1
- data/lib/fog/aws/requests/lambda/invoke.rb +7 -7
- data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
- data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +2 -2
- data/lib/fog/aws/requests/rds/create_db_cluster.rb +1 -1
- data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +1 -1
- data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +1 -1
- data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +1 -1
- data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
- data/lib/fog/aws/requests/ses/send_raw_email.rb +1 -1
- data/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
- data/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
- data/lib/fog/aws/requests/storage/copy_object.rb +2 -1
- data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +18 -8
- data/lib/fog/aws/requests/storage/get_bucket.rb +2 -2
- data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object.rb +1 -1
- data/lib/fog/aws/requests/storage/get_object_tagging.rb +41 -0
- data/lib/fog/aws/requests/storage/get_service.rb +1 -1
- data/lib/fog/aws/requests/storage/list_parts.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket.rb +0 -4
- data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_notification.rb +1 -1
- data/lib/fog/aws/requests/storage/put_object.rb +1 -1
- data/lib/fog/aws/requests/storage/put_object_tagging.rb +42 -0
- data/lib/fog/aws/requests/storage/shared_mock_methods.rb +2 -1
- data/lib/fog/aws/requests/storage/sync_clock.rb +9 -1
- 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/ses.rb +20 -17
- data/lib/fog/aws/signaturev4.rb +1 -1
- data/lib/fog/aws/simpledb.rb +1 -1
- data/lib/fog/aws/sns.rb +1 -1
- data/lib/fog/aws/sqs.rb +1 -1
- data/lib/fog/aws/storage.rb +78 -13
- data/lib/fog/aws/support.rb +1 -1
- data/lib/fog/aws/version.rb +1 -1
- data/lib/fog/aws.rb +11 -2
- metadata +49 -294
- data/.gitignore +0 -16
- data/.travis.yml +0 -53
- data/Gemfile +0 -14
- data/Rakefile +0 -14
- data/gemfiles/Gemfile-edge +0 -14
- data/gemfiles/Gemfile-ruby-2.0 +0 -7
- data/stale.yml +0 -17
- data/tests/credentials_tests.rb +0 -87
- data/tests/helper.rb +0 -29
- data/tests/helpers/collection_helper.rb +0 -90
- data/tests/helpers/compute/flavors_helper.rb +0 -28
- data/tests/helpers/compute/server_helper.rb +0 -23
- data/tests/helpers/compute/servers_helper.rb +0 -8
- data/tests/helpers/dns_helper.rb +0 -56
- data/tests/helpers/formats_helper.rb +0 -100
- data/tests/helpers/formats_helper_tests.rb +0 -107
- data/tests/helpers/mock_helper.rb +0 -109
- data/tests/helpers/model_helper.rb +0 -30
- data/tests/helpers/responds_to_helper.rb +0 -11
- data/tests/helpers/schema_validator_tests.rb +0 -104
- data/tests/helpers/succeeds_helper.rb +0 -9
- data/tests/lorem.txt +0 -1
- data/tests/models/auto_scaling/activities_tests.rb +0 -6
- data/tests/models/auto_scaling/configuration_test.rb +0 -13
- data/tests/models/auto_scaling/configurations_tests.rb +0 -11
- data/tests/models/auto_scaling/groups_test.rb +0 -27
- data/tests/models/auto_scaling/helper.rb +0 -0
- data/tests/models/auto_scaling/instance_tests.rb +0 -15
- data/tests/models/auto_scaling/instances_tests.rb +0 -6
- data/tests/models/beanstalk/application_tests.rb +0 -69
- data/tests/models/beanstalk/applications_tests.rb +0 -7
- data/tests/models/beanstalk/environment_tests.rb +0 -131
- data/tests/models/beanstalk/environments_tests.rb +0 -34
- data/tests/models/beanstalk/template_tests.rb +0 -47
- data/tests/models/beanstalk/templates_tests.rb +0 -62
- data/tests/models/beanstalk/version_tests.rb +0 -66
- data/tests/models/beanstalk/versions_tests.rb +0 -60
- data/tests/models/cdn/distribution_tests.rb +0 -15
- data/tests/models/cdn/distributions_tests.rb +0 -15
- data/tests/models/cdn/invalidation_tests.rb +0 -31
- data/tests/models/cdn/invalidations_tests.rb +0 -14
- data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
- data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
- data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
- data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
- data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
- data/tests/models/cloud_watch/metrics_tests.rb +0 -32
- data/tests/models/compute/address_tests.rb +0 -43
- data/tests/models/compute/addresses_tests.rb +0 -5
- data/tests/models/compute/dhcp_option_tests.rb +0 -3
- data/tests/models/compute/dhcp_options_tests.rb +0 -3
- data/tests/models/compute/internet_gateway_tests.rb +0 -3
- data/tests/models/compute/internet_gateways_tests.rb +0 -3
- data/tests/models/compute/key_pair_tests.rb +0 -26
- data/tests/models/compute/key_pairs_tests.rb +0 -5
- data/tests/models/compute/network_acl_tests.rb +0 -109
- data/tests/models/compute/network_acls_tests.rb +0 -20
- data/tests/models/compute/network_interfaces_test.rb +0 -12
- data/tests/models/compute/security_group_tests.rb +0 -98
- data/tests/models/compute/security_groups_tests.rb +0 -5
- data/tests/models/compute/server_tests.rb +0 -94
- data/tests/models/compute/snapshot_tests.rb +0 -10
- data/tests/models/compute/snapshots_tests.rb +0 -10
- data/tests/models/compute/subnet_tests.rb +0 -13
- data/tests/models/compute/subnets_tests.rb +0 -5
- data/tests/models/compute/volume_tests.rb +0 -65
- data/tests/models/compute/volumes_tests.rb +0 -5
- data/tests/models/compute/vpc_tests.rb +0 -26
- data/tests/models/compute/vpcs_tests.rb +0 -19
- data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
- data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
- data/tests/models/dns/record_tests.rb +0 -33
- data/tests/models/dns/records_tests.rb +0 -41
- data/tests/models/dns/zone_tests.rb +0 -4
- data/tests/models/dns/zones_tests.rb +0 -4
- data/tests/models/efs/file_system_tests.rb +0 -12
- data/tests/models/efs/mount_target_tests.rb +0 -45
- data/tests/models/efs/mount_targets_tests.rb +0 -30
- data/tests/models/elasticache/cluster_tests.rb +0 -30
- data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
- data/tests/models/elasticache/security_groups_tests.rb +0 -52
- data/tests/models/elasticache/subnet_groups_tests.rb +0 -43
- data/tests/models/elb/model_tests.rb +0 -360
- data/tests/models/elb/tagging_tests.rb +0 -15
- data/tests/models/glacier/model_tests.rb +0 -47
- data/tests/models/iam/access_keys_tests.rb +0 -53
- data/tests/models/iam/groups_tests.rb +0 -59
- data/tests/models/iam/instance_profile_tests.rb +0 -18
- data/tests/models/iam/managed_policies_tests.rb +0 -89
- data/tests/models/iam/policies_tests.rb +0 -57
- data/tests/models/iam/roles_tests.rb +0 -71
- data/tests/models/iam/users_tests.rb +0 -119
- data/tests/models/rds/cluster_tests.rb +0 -54
- data/tests/models/rds/clusters_tests.rb +0 -5
- data/tests/models/rds/event_subscription_tests.rb +0 -9
- data/tests/models/rds/event_subscriptions_tests.rb +0 -6
- data/tests/models/rds/helper.rb +0 -25
- data/tests/models/rds/instance_option_tests.rb +0 -14
- data/tests/models/rds/parameter_group_tests.rb +0 -24
- data/tests/models/rds/parameter_groups_tests.rb +0 -8
- data/tests/models/rds/security_group_tests.rb +0 -77
- data/tests/models/rds/security_groups_tests.rb +0 -5
- data/tests/models/rds/server_tests.rb +0 -131
- data/tests/models/rds/servers_tests.rb +0 -24
- data/tests/models/rds/snapshot_tests.rb +0 -12
- data/tests/models/rds/snapshots_tests.rb +0 -12
- data/tests/models/rds/tagging_tests.rb +0 -20
- data/tests/models/sns/topic_tests.rb +0 -15
- data/tests/models/sns/topics_tests.rb +0 -6
- data/tests/models/storage/directory_tests.rb +0 -91
- data/tests/models/storage/file_tests.rb +0 -129
- data/tests/models/storage/files_tests.rb +0 -58
- data/tests/models/storage/url_tests.rb +0 -25
- data/tests/models/storage/version_tests.rb +0 -52
- data/tests/models/storage/versions_tests.rb +0 -51
- data/tests/models/support/trusted_advisor_tests.rb +0 -25
- data/tests/parsers/compute/describe_images_tests.rb +0 -33
- data/tests/parsers/elb/describe_load_balancers.rb +0 -65
- data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -111
- data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
- data/tests/requests/auto_scaling/helper.rb +0 -229
- data/tests/requests/auto_scaling/model_tests.rb +0 -235
- data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
- data/tests/requests/auto_scaling/tag_tests.rb +0 -63
- data/tests/requests/beanstalk/application_tests.rb +0 -140
- data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
- data/tests/requests/cdn/cdn_tests.rb +0 -252
- data/tests/requests/cloud_formation/stack_tests.rb +0 -167
- data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
- data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
- data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
- data/tests/requests/compute/address_tests.rb +0 -144
- data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
- data/tests/requests/compute/availability_zone_tests.rb +0 -25
- data/tests/requests/compute/client_tests.rb +0 -25
- data/tests/requests/compute/dhcp_options_tests.rb +0 -39
- data/tests/requests/compute/helper.rb +0 -27
- data/tests/requests/compute/image_tests.rb +0 -169
- data/tests/requests/compute/instance_attrib_tests.rb +0 -168
- data/tests/requests/compute/instance_tests.rb +0 -338
- data/tests/requests/compute/internet_gateway_tests.rb +0 -49
- data/tests/requests/compute/key_pair_tests.rb +0 -67
- data/tests/requests/compute/network_acl_tests.rb +0 -112
- data/tests/requests/compute/network_interface_tests.rb +0 -239
- data/tests/requests/compute/placement_group_tests.rb +0 -48
- data/tests/requests/compute/region_tests.rb +0 -52
- data/tests/requests/compute/route_tests.rb +0 -341
- data/tests/requests/compute/security_group_tests.rb +0 -446
- data/tests/requests/compute/snapshot_tests.rb +0 -77
- data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
- data/tests/requests/compute/spot_instance_tests.rb +0 -55
- data/tests/requests/compute/spot_price_history_tests.rb +0 -23
- data/tests/requests/compute/subnet_tests.rb +0 -87
- data/tests/requests/compute/tag_tests.rb +0 -101
- data/tests/requests/compute/volume_tests.rb +0 -263
- data/tests/requests/compute/vpc_tests.rb +0 -216
- data/tests/requests/data_pipeline/helper.rb +0 -78
- data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
- data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
- data/tests/requests/dns/dns_tests.rb +0 -240
- data/tests/requests/dns/health_check_tests.rb +0 -159
- data/tests/requests/dns/helper.rb +0 -21
- data/tests/requests/dynamodb/item_tests.rb +0 -137
- data/tests/requests/dynamodb/table_tests.rb +0 -99
- data/tests/requests/ecs/cluster_tests.rb +0 -112
- data/tests/requests/ecs/container_instance_tests.rb +0 -119
- data/tests/requests/ecs/helper.rb +0 -276
- data/tests/requests/ecs/sample_task_definition1.json +0 -56
- data/tests/requests/ecs/service_tests.rb +0 -132
- data/tests/requests/ecs/task_definitions_tests.rb +0 -97
- data/tests/requests/ecs/task_tests.rb +0 -145
- data/tests/requests/efs/file_system_tests.rb +0 -152
- data/tests/requests/efs/helper.rb +0 -44
- data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
- data/tests/requests/elasticache/describe_events.rb +0 -17
- data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
- data/tests/requests/elasticache/helper.rb +0 -103
- data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
- data/tests/requests/elasticache/security_group_tests.rb +0 -108
- data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
- data/tests/requests/elb/helper.rb +0 -91
- data/tests/requests/elb/listener_tests.rb +0 -68
- data/tests/requests/elb/load_balancer_tests.rb +0 -89
- data/tests/requests/elb/policy_tests.rb +0 -132
- data/tests/requests/emr/helper.rb +0 -167
- data/tests/requests/emr/instance_group_tests.rb +0 -106
- data/tests/requests/emr/job_flow_tests.rb +0 -88
- data/tests/requests/federation/get_signin_token_tests.rb +0 -11
- data/tests/requests/glacier/archive_tests.rb +0 -13
- data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
- data/tests/requests/glacier/tree_hash_tests.rb +0 -62
- data/tests/requests/glacier/vault_tests.rb +0 -35
- data/tests/requests/iam/access_key_tests.rb +0 -53
- data/tests/requests/iam/account_policy_tests.rb +0 -20
- data/tests/requests/iam/account_tests.rb +0 -34
- data/tests/requests/iam/group_policy_tests.rb +0 -48
- data/tests/requests/iam/group_tests.rb +0 -44
- data/tests/requests/iam/helper.rb +0 -154
- data/tests/requests/iam/instance_profile_tests.rb +0 -44
- data/tests/requests/iam/login_profile_tests.rb +0 -62
- data/tests/requests/iam/managed_policy_tests.rb +0 -110
- data/tests/requests/iam/mfa_tests.rb +0 -23
- data/tests/requests/iam/role_tests.rb +0 -156
- data/tests/requests/iam/server_certificate_tests.rb +0 -130
- data/tests/requests/iam/user_policy_tests.rb +0 -45
- data/tests/requests/iam/user_tests.rb +0 -78
- data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -105
- data/tests/requests/kinesis/helper.rb +0 -111
- data/tests/requests/kinesis/stream_tests.rb +0 -169
- data/tests/requests/kms/helper.rb +0 -27
- data/tests/requests/kms/key_tests.rb +0 -23
- data/tests/requests/lambda/function_sample_1.js +0 -9
- data/tests/requests/lambda/function_sample_2.js +0 -9
- data/tests/requests/lambda/function_tests.rb +0 -460
- data/tests/requests/lambda/helper.rb +0 -81
- data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
- data/tests/requests/rds/cluster_tests.rb +0 -37
- data/tests/requests/rds/db_engine_versions.rb +0 -7
- data/tests/requests/rds/db_snapshot_tests.rb +0 -62
- data/tests/requests/rds/describe_events.rb +0 -16
- data/tests/requests/rds/event_subscription_tests.rb +0 -30
- data/tests/requests/rds/helper.rb +0 -406
- data/tests/requests/rds/instance_option_tests.rb +0 -27
- data/tests/requests/rds/instance_tests.rb +0 -149
- data/tests/requests/rds/log_file_tests.rb +0 -19
- data/tests/requests/rds/parameter_group_tests.rb +0 -62
- data/tests/requests/rds/parameter_request_tests.rb +0 -32
- data/tests/requests/rds/security_group_tests.rb +0 -101
- data/tests/requests/rds/subnet_groups_tests.rb +0 -52
- data/tests/requests/rds/tagging_tests.rb +0 -78
- data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
- data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
- data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
- data/tests/requests/redshift/cluster_tests.rb +0 -80
- data/tests/requests/ses/helper.rb +0 -9
- data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
- data/tests/requests/ses/verified_email_address_tests.rb +0 -27
- data/tests/requests/simpledb/attributes_tests.rb +0 -86
- data/tests/requests/simpledb/domain_tests.rb +0 -51
- data/tests/requests/simpledb/helper.rb +0 -10
- data/tests/requests/sns/helper.rb +0 -9
- data/tests/requests/sns/subscription_tests.rb +0 -86
- data/tests/requests/sns/topic_tests.rb +0 -53
- data/tests/requests/sqs/helper.rb +0 -9
- data/tests/requests/sqs/message_tests.rb +0 -51
- data/tests/requests/sqs/queue_tests.rb +0 -50
- data/tests/requests/storage/acl_utils_tests.rb +0 -209
- data/tests/requests/storage/bucket_tests.rb +0 -416
- data/tests/requests/storage/cors_utils_tests.rb +0 -108
- data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
- data/tests/requests/storage/multipart_upload_tests.rb +0 -121
- data/tests/requests/storage/object_tests.rb +0 -262
- data/tests/requests/storage/versioning_tests.rb +0 -262
- data/tests/requests/sts/assume_role_tests.rb +0 -19
- data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
- data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -28
- data/tests/requests/sts/get_federation_token_tests.rb +0 -20
- data/tests/requests/sts/session_token_tests.rb +0 -16
- data/tests/requests/support/helper.rb +0 -43
- data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
- data/tests/signaturev4_tests.rb +0 -106
- data/tests/signed_params_tests.rb +0 -17
- data/tests/storage_tests.rb +0 -7
@@ -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
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELBV2
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/elbv2/describe_tags'
|
6
|
+
|
7
|
+
# returns a Hash of tags for a load balancer
|
8
|
+
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DescribeTags.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * resource_arns <~Array> - ARN(s) of the ELB instance whose tags are to be retrieved
|
11
|
+
# ==== Returns
|
12
|
+
# * response<~Excon::Response>:
|
13
|
+
# * body<~Hash>:
|
14
|
+
def describe_tags(resource_arns)
|
15
|
+
request({
|
16
|
+
'Action' => 'DescribeTags',
|
17
|
+
:parser => Fog::Parsers::AWS::ELBV2::DescribeTags.new
|
18
|
+
}.merge!(Fog::AWS.indexed_param('ResourceArns.member.%d', [*resource_arns]))
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Mock
|
24
|
+
def describe_tags(resource_arns)
|
25
|
+
response = Excon::Response.new
|
26
|
+
resource_arns = [*resource_arns]
|
27
|
+
|
28
|
+
tag_descriptions = resource_arns.map do |resource_arn|
|
29
|
+
if self.data[:load_balancers_v2][resource_arn]
|
30
|
+
{
|
31
|
+
"Tags"=>self.data[:tags][resource_arn],
|
32
|
+
"ResourceArn"=>resource_arn
|
33
|
+
}
|
34
|
+
else
|
35
|
+
raise Fog::AWS::ELBV2::NotFound.new("Elastic load balancer #{resource_arns} not found")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
response.status = 200
|
40
|
+
response.body = {
|
41
|
+
"ResponseMetadata"=>{"RequestId"=> Fog::AWS::Mock.request_id },
|
42
|
+
"DescribeTagsResult"=>{"TagDescriptions"=> tag_descriptions}
|
43
|
+
}
|
44
|
+
|
45
|
+
response
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -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
|
+
# removes tags from an elastic load balancer instance
|
8
|
+
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_RemoveTags.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * resource_arn <~String> - ARN of the ELB instance whose tags are to be retrieved
|
11
|
+
# * keys <~Array> A list of String keys for the tags to remove
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
def remove_tags(resource_arn, keys)
|
16
|
+
request(
|
17
|
+
{ 'Action' => 'RemoveTags',
|
18
|
+
'ResourceArns.member.1' => resource_arn,
|
19
|
+
:parser => Fog::Parsers::AWS::ELBV2::Empty.new,
|
20
|
+
}.merge(Fog::AWS.indexed_param('TagKeys.member.%d', keys))
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
|
28
|
+
def remove_tags(resource_arn, keys)
|
29
|
+
response = Excon::Response.new
|
30
|
+
if self.data[:load_balancers_v2][resource_arn]
|
31
|
+
keys.each {|key| self.data[:tags][resource_arn].delete key}
|
32
|
+
response.status = 200
|
33
|
+
response.body = {
|
34
|
+
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id }
|
35
|
+
}
|
36
|
+
response
|
37
|
+
else
|
38
|
+
raise Fog::AWS::ELBV2::NotFound.new("Elastic load balancer #{resource_arn} not found")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -20,8 +20,8 @@ module Fog
|
|
20
20
|
headers['X-Amz-Client-Context'] =
|
21
21
|
Base64::encode64(Fog::JSON.encode(client_context))
|
22
22
|
end
|
23
|
-
if
|
24
|
-
headers['X-Amz-
|
23
|
+
if invocation_type = params.delete('InvocationType')
|
24
|
+
headers['X-Amz-Invocation-Type'] = invocation_type
|
25
25
|
end
|
26
26
|
if log_type = params.delete('LogType')
|
27
27
|
headers['X-Amz-Log-Type'] = log_type
|
@@ -51,12 +51,12 @@ module Fog
|
|
51
51
|
raise Fog::AWS::Lambda::Error, message
|
52
52
|
end
|
53
53
|
|
54
|
-
client_context
|
55
|
-
|
56
|
-
log_type
|
57
|
-
payload
|
54
|
+
client_context = params.delete('ClientContext')
|
55
|
+
invocation_type = params.delete('InvocationType')
|
56
|
+
log_type = params.delete('LogType')
|
57
|
+
payload = params.delete('Payload')
|
58
58
|
|
59
|
-
if (client_context ||
|
59
|
+
if (client_context || invocation_type || log_type)
|
60
60
|
message = "invoke parameters handling are not yet mocked [light_black](#{caller.first})[/]"
|
61
61
|
Fog::Logger.warning message
|
62
62
|
Fog::Mock.not_implemented
|
@@ -12,28 +12,30 @@ module Fog
|
|
12
12
|
# * body<~Hash>:
|
13
13
|
def add_tags_to_resource(rds_id, tags)
|
14
14
|
keys = tags.keys.sort
|
15
|
-
values = keys.map {|key| tags[key]}
|
15
|
+
values = keys.map { |key| tags[key] }
|
16
|
+
resource_name = "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}"
|
17
|
+
%w[us-gov-west-1 us-gov-east-1].include?(@region) ? resource_name.insert(7, '-us-gov') : resource_name
|
16
18
|
request({
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
|
19
|
+
'Action' => 'AddTagsToResource',
|
20
|
+
'ResourceName' => resource_name,
|
21
|
+
:parser => Fog::Parsers::AWS::RDS::Base.new
|
22
|
+
}.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys))
|
23
|
+
.merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
25
27
|
class Mock
|
26
28
|
def add_tags_to_resource(rds_id, tags)
|
27
29
|
response = Excon::Response.new
|
28
|
-
if server =
|
29
|
-
|
30
|
+
if server = data[:servers][rds_id]
|
31
|
+
data[:tags][rds_id].merge! tags
|
30
32
|
response.status = 200
|
31
33
|
response.body = {
|
32
|
-
|
34
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
33
35
|
}
|
34
36
|
response
|
35
37
|
else
|
36
|
-
raise Fog::AWS::RDS::NotFound
|
38
|
+
raise Fog::AWS::RDS::NotFound, "DBInstance #{rds_id} not found"
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
@@ -43,12 +43,12 @@ module Fog
|
|
43
43
|
if sec_group = self.data[:security_groups][name]
|
44
44
|
if opts.key?('CIDRIP')
|
45
45
|
if sec_group['IPRanges'].find{|h| h['CIDRIP'] == opts['CIDRIP']}
|
46
|
-
raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['CIDRIP']} is
|
46
|
+
raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['CIDRIP']} is already defined")
|
47
47
|
end
|
48
48
|
sec_group['IPRanges'] << opts.merge({"Status" => 'authorizing'})
|
49
49
|
else
|
50
50
|
if sec_group['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == opts['EC2SecurityGroupName'] || h['EC2SecurityGroupId'] == opts['EC2SecurityGroupId']}
|
51
|
-
raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['EC2SecurityGroupName']} is
|
51
|
+
raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['EC2SecurityGroupName']} is already defined")
|
52
52
|
end
|
53
53
|
sec_group['EC2SecurityGroups'] << opts.merge({"Status" => 'authorizing'})
|
54
54
|
end
|
@@ -12,7 +12,7 @@ module Fog
|
|
12
12
|
# * AvailabilityZones<~Array> - A list of EC2 Availability Zones that instances in the DB cluster can be created in
|
13
13
|
# * BackupRetentionPeriod<~String> - The number of days for which automated backups are retained
|
14
14
|
# * CharacterSetName<~String> - A value that indicates that the DB cluster should be associated with the specified CharacterSet
|
15
|
-
# * DatabaseName<~String> - The name for your database of up to 8
|
15
|
+
# * DatabaseName<~String> - The name for your database of up to 8 alphanumeric characters. If you do not provide a name, Amazon RDS will not create a database in the DB cluster you are creating
|
16
16
|
# * DBClusterIdentifier<~String> - The DB cluster identifier. This parameter is stored as a lowercase string
|
17
17
|
# * DBClusterParameterGroupName<~String> - The name of the DB cluster parameter group to associate with this DB cluster
|
18
18
|
# * DBSubnetGroupName<~String> - A DB subnet group to associate with this DB cluster
|
@@ -9,7 +9,7 @@ module Fog
|
|
9
9
|
# ==== Parameters
|
10
10
|
# * DBInstanceIdentifier <~String> - ID of instance to retrieve information for. if absent information for all instances is returned
|
11
11
|
# * DBSnapshotIdentifier <~String> - ID of snapshot to retrieve information for. if absent information for all snapshots is returned
|
12
|
-
# * SnapshotType <~String> - type of snapshot to
|
12
|
+
# * SnapshotType <~String> - type of snapshot to retrieve (automated|manual)
|
13
13
|
# * Marker <~String> - An optional marker provided in the previous DescribeDBInstances request
|
14
14
|
# * MaxRecords <~Integer> - Max number of records to return (between 20 and 100)
|
15
15
|
# Only one of DBInstanceIdentifier or DBSnapshotIdentifier can be specified
|
@@ -11,11 +11,14 @@ module Fog
|
|
11
11
|
# ==== Returns
|
12
12
|
# * response<~Excon::Response>:
|
13
13
|
# * body<~Hash>:
|
14
|
+
|
14
15
|
def list_tags_for_resource(rds_id)
|
16
|
+
resource_name = "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}"
|
17
|
+
%w[us-gov-west-1 us-gov-east-1].include?(@region) ? resource_name.insert(7, '-us-gov') : resource_name
|
15
18
|
request(
|
16
|
-
'Action'
|
17
|
-
'ResourceName'
|
18
|
-
:parser
|
19
|
+
'Action' => 'ListTagsForResource',
|
20
|
+
'ResourceName' => resource_name,
|
21
|
+
:parser => Fog::Parsers::AWS::RDS::TagListParser.new
|
19
22
|
)
|
20
23
|
end
|
21
24
|
end
|
@@ -23,15 +26,15 @@ module Fog
|
|
23
26
|
class Mock
|
24
27
|
def list_tags_for_resource(rds_id)
|
25
28
|
response = Excon::Response.new
|
26
|
-
if server =
|
29
|
+
if server = data[:servers][rds_id]
|
27
30
|
response.status = 200
|
28
31
|
response.body = {
|
29
|
-
|
30
|
-
{
|
32
|
+
'ListTagsForResourceResult' =>
|
33
|
+
{ 'TagList' => data[:tags][rds_id] }
|
31
34
|
}
|
32
35
|
response
|
33
36
|
else
|
34
|
-
raise Fog::AWS::RDS::NotFound
|
37
|
+
raise Fog::AWS::RDS::NotFound, "DBInstance #{rds_id} not found"
|
35
38
|
end
|
36
39
|
end
|
37
40
|
end
|
@@ -56,7 +56,7 @@ module Fog
|
|
56
56
|
self.data[:modify_time] = Time.now
|
57
57
|
# TODO verify the params options
|
58
58
|
# if apply_immediately is false, all the options go to pending_modified_values and then apply and clear after either
|
59
|
-
# a reboot or the
|
59
|
+
# a reboot or the maintenance window
|
60
60
|
#if apply_immediately
|
61
61
|
# modified_server = server.merge(options)
|
62
62
|
#else
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
# * DBParameterGroupName <~String> - name of the parameter group
|
11
11
|
# * Parameters<~Array> - Array of up to 20 Hashes describing parameters to set
|
12
12
|
# * 'ParameterName'<~String> - parameter name.
|
13
|
-
# * 'ParameterValue'<~String> - new
|
13
|
+
# * 'ParameterValue'<~String> - new parameter value
|
14
14
|
# * 'ApplyMethod'<~String> - immediate | pending-reboot whether to set the parameter immediately or not (may require an instance restart)
|
15
15
|
#
|
16
16
|
# ==== Returns
|