aws-sdk 1.8.5 → 1.9.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 +7 -0
- data/.yardopts +1 -0
- data/README.rdoc +8 -0
- data/lib/aws-sdk.rb +39 -35
- data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
- data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
- data/lib/aws/auto_scaling.rb +44 -44
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +14 -15
- data/lib/aws/auto_scaling/client.rb +277 -277
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +35 -36
- data/lib/aws/auto_scaling/group_collection.rb +10 -10
- data/lib/aws/auto_scaling/group_options.rb +19 -19
- data/lib/aws/auto_scaling/instance.rb +27 -27
- data/lib/aws/auto_scaling/instance_collection.rb +10 -10
- data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
- data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
- data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
- data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
- data/lib/aws/auto_scaling/tag_collection.rb +30 -28
- data/lib/aws/cloud_formation.rb +95 -94
- data/lib/aws/cloud_formation/client.rb +136 -133
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +37 -37
- data/lib/aws/cloud_formation/stack_collection.rb +28 -27
- data/lib/aws/cloud_formation/stack_event.rb +9 -11
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +6 -6
- data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
- data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
- data/lib/aws/cloud_front.rb +21 -21
- data/lib/aws/cloud_front/client.rb +853 -652
- data/lib/aws/cloud_front/request.rb +3 -0
- data/lib/aws/cloud_search.rb +22 -22
- data/lib/aws/cloud_search/client.rb +322 -315
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_watch.rb +39 -39
- data/lib/aws/cloud_watch/alarm.rb +55 -37
- data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
- data/lib/aws/cloud_watch/client.rb +360 -146
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +15 -15
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
- data/lib/aws/cloud_watch/metric_collection.rb +16 -16
- data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
- data/lib/aws/core.rb +243 -225
- data/lib/aws/core/async_handle.rb +13 -13
- data/lib/aws/core/cacheable.rb +14 -15
- data/lib/aws/core/client.rb +40 -15
- data/lib/aws/core/collection.rb +42 -46
- data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
- data/lib/aws/core/collection/with_next_token.rb +1 -1
- data/lib/aws/core/configuration.rb +97 -133
- data/lib/aws/core/credential_providers.rb +16 -16
- data/lib/aws/core/data.rb +23 -23
- data/lib/aws/core/http/connection_pool.rb +348 -0
- data/lib/aws/core/http/net_http_handler.rb +17 -26
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +13 -19
- data/lib/aws/core/http/response.rb +2 -2
- data/lib/aws/core/lazy_error_classes.rb +17 -17
- data/lib/aws/core/log_formatter.rb +70 -104
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +4 -4
- data/lib/aws/core/page_result.rb +8 -8
- data/lib/aws/core/policy.rb +49 -49
- data/lib/aws/core/region.rb +72 -0
- data/lib/aws/core/region_collection.rb +106 -0
- data/lib/aws/core/resource.rb +5 -5
- data/lib/aws/core/response.rb +20 -17
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/service_interface.rb +24 -2
- data/lib/aws/core/signature/version_3.rb +2 -2
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +3 -4
- data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
- data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
- data/lib/aws/core/xml/stub.rb +9 -9
- data/lib/aws/data_pipeline.rb +21 -21
- data/lib/aws/data_pipeline/client.rb +189 -133
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/direct_connect.rb +74 -0
- data/lib/aws/direct_connect/client.rb +253 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/direct_connect/request.rb +27 -0
- data/lib/aws/dynamo_db.rb +71 -69
- data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
- data/lib/aws/dynamo_db/batch_get.rb +23 -23
- data/lib/aws/dynamo_db/batch_write.rb +43 -43
- data/lib/aws/dynamo_db/binary.rb +9 -9
- data/lib/aws/dynamo_db/client.rb +494 -509
- data/lib/aws/dynamo_db/client_base.rb +91 -0
- data/lib/aws/dynamo_db/client_v2.rb +825 -0
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +10 -10
- data/lib/aws/dynamo_db/item_collection.rb +75 -75
- data/lib/aws/dynamo_db/table.rb +85 -85
- data/lib/aws/dynamo_db/table_collection.rb +13 -13
- data/lib/aws/ec2.rb +132 -142
- data/lib/aws/ec2/attachment.rb +31 -36
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +4 -4
- data/lib/aws/ec2/client.rb +2272 -2125
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +6 -6
- data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
- data/lib/aws/ec2/elastic_ip.rb +15 -15
- data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
- data/lib/aws/ec2/export_task.rb +4 -4
- data/lib/aws/ec2/export_task_collection.rb +11 -11
- data/lib/aws/ec2/filtered_collection.rb +6 -8
- data/lib/aws/ec2/image.rb +46 -40
- data/lib/aws/ec2/image_collection.rb +44 -52
- data/lib/aws/ec2/instance.rb +64 -62
- data/lib/aws/ec2/instance_collection.rb +47 -50
- data/lib/aws/ec2/internet_gateway.rb +6 -6
- data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
- data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
- data/lib/aws/ec2/key_pair.rb +3 -3
- data/lib/aws/ec2/key_pair_collection.rb +12 -12
- data/lib/aws/ec2/network_acl.rb +39 -39
- data/lib/aws/ec2/network_acl/association.rb +2 -2
- data/lib/aws/ec2/network_acl/entry.rb +22 -22
- data/lib/aws/ec2/network_acl_collection.rb +2 -2
- data/lib/aws/ec2/network_interface.rb +13 -4
- data/lib/aws/ec2/network_interface/attachment.rb +3 -3
- data/lib/aws/ec2/network_interface_collection.rb +5 -5
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +6 -6
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
- data/lib/aws/ec2/resource_tag_collection.rb +5 -5
- data/lib/aws/ec2/route_table.rb +14 -14
- data/lib/aws/ec2/route_table/association.rb +22 -22
- data/lib/aws/ec2/route_table/route.rb +8 -8
- data/lib/aws/ec2/route_table_collection.rb +3 -3
- data/lib/aws/ec2/security_group.rb +39 -41
- data/lib/aws/ec2/security_group_collection.rb +19 -21
- data/lib/aws/ec2/snapshot.rb +3 -3
- data/lib/aws/ec2/snapshot_collection.rb +11 -12
- data/lib/aws/ec2/subnet.rb +2 -2
- data/lib/aws/ec2/subnet_collection.rb +17 -17
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +7 -7
- data/lib/aws/ec2/tagged_item.rb +10 -10
- data/lib/aws/ec2/volume.rb +16 -16
- data/lib/aws/ec2/volume_collection.rb +9 -12
- data/lib/aws/ec2/vpc.rb +6 -6
- data/lib/aws/ec2/vpc_collection.rb +10 -10
- data/lib/aws/ec2/vpn_connection.rb +4 -4
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
- data/lib/aws/elastic_beanstalk.rb +12 -12
- data/lib/aws/elastic_beanstalk/client.rb +376 -368
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_transcoder.rb +5 -5
- data/lib/aws/elastic_transcoder/client.rb +283 -283
- data/lib/aws/elastic_transcoder/config.rb +1 -1
- data/lib/aws/elasticache.rb +12 -12
- data/lib/aws/elasticache/client.rb +484 -479
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elb.rb +23 -23
- data/lib/aws/elb/availability_zone_collection.rb +34 -34
- data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
- data/lib/aws/elb/client.rb +153 -153
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +20 -25
- data/lib/aws/elb/listener.rb +3 -3
- data/lib/aws/elb/listener_collection.rb +8 -8
- data/lib/aws/elb/load_balancer.rb +15 -16
- data/lib/aws/elb/load_balancer_collection.rb +36 -24
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
- data/lib/aws/emr.rb +28 -26
- data/lib/aws/emr/client.rb +165 -149
- data/lib/aws/emr/config.rb +1 -1
- data/lib/aws/emr/instance_group.rb +1 -1
- data/lib/aws/emr/instance_group_collection.rb +1 -1
- data/lib/aws/emr/job_flow.rb +27 -26
- data/lib/aws/emr/job_flow_collection.rb +34 -34
- data/lib/aws/errors.rb +7 -7
- data/lib/aws/glacier.rb +21 -21
- data/lib/aws/glacier/archive_collection.rb +2 -2
- data/lib/aws/glacier/client.rb +139 -140
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/vault.rb +2 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/iam.rb +133 -144
- data/lib/aws/iam/access_key.rb +17 -17
- data/lib/aws/iam/access_key_collection.rb +22 -22
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +429 -420
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +2 -2
- data/lib/aws/iam/group.rb +8 -8
- data/lib/aws/iam/group_collection.rb +16 -16
- data/lib/aws/iam/group_policy_collection.rb +6 -6
- data/lib/aws/iam/group_user_collection.rb +3 -3
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +9 -9
- data/lib/aws/iam/policy_collection.rb +4 -4
- data/lib/aws/iam/resource.rb +2 -2
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +15 -15
- data/lib/aws/iam/signing_certificate.rb +29 -29
- data/lib/aws/iam/signing_certificate_collection.rb +23 -23
- data/lib/aws/iam/user.rb +33 -38
- data/lib/aws/iam/user_collection.rb +27 -27
- data/lib/aws/iam/user_group_collection.rb +3 -3
- data/lib/aws/iam/user_policy_collection.rb +6 -6
- data/lib/aws/iam/virtual_mfa_device.rb +12 -12
- data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
- data/lib/aws/import_export.rb +22 -21
- data/lib/aws/import_export/client.rb +47 -43
- data/lib/aws/ops_works.rb +5 -5
- data/lib/aws/ops_works/client.rb +484 -438
- data/lib/aws/ops_works/config.rb +1 -1
- data/lib/aws/rails.rb +34 -34
- data/lib/aws/rds.rb +18 -18
- data/lib/aws/rds/client.rb +1286 -1277
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +15 -4
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/record.rb +50 -24
- data/lib/aws/record/abstract_base.rb +52 -60
- data/lib/aws/record/attributes.rb +79 -79
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +69 -67
- data/lib/aws/record/errors.rb +21 -21
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +20 -21
- data/lib/aws/record/hash_model/attributes.rb +13 -15
- data/lib/aws/record/hash_model/finder_methods.rb +46 -46
- data/lib/aws/record/hash_model/scope.rb +31 -31
- data/lib/aws/record/model.rb +136 -136
- data/lib/aws/record/model/attributes.rb +57 -59
- data/lib/aws/record/model/finder_methods.rb +67 -67
- data/lib/aws/record/model/scope.rb +48 -49
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +23 -19
- data/lib/aws/record/validations.rb +253 -271
- data/lib/aws/record/validator.rb +3 -3
- data/lib/aws/record/validators/acceptance.rb +1 -3
- data/lib/aws/record/validators/block.rb +1 -3
- data/lib/aws/record/validators/confirmation.rb +1 -3
- data/lib/aws/record/validators/count.rb +2 -4
- data/lib/aws/record/validators/exclusion.rb +2 -4
- data/lib/aws/record/validators/format.rb +2 -4
- data/lib/aws/record/validators/inclusion.rb +1 -3
- data/lib/aws/record/validators/length.rb +5 -7
- data/lib/aws/record/validators/method.rb +1 -3
- data/lib/aws/record/validators/numericality.rb +6 -8
- data/lib/aws/record/validators/presence.rb +1 -3
- data/lib/aws/redshift.rb +14 -14
- data/lib/aws/redshift/client.rb +596 -592
- data/lib/aws/redshift/config.rb +1 -1
- data/lib/aws/route_53.rb +30 -30
- data/lib/aws/route_53/change_batch.rb +7 -7
- data/lib/aws/route_53/client.rb +188 -152
- data/lib/aws/route_53/hosted_zone.rb +4 -4
- data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
- data/lib/aws/route_53/resource_record_set.rb +10 -10
- data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
- data/lib/aws/s3.rb +79 -79
- data/lib/aws/s3/access_control_list.rb +44 -36
- data/lib/aws/s3/acl_options.rb +51 -51
- data/lib/aws/s3/bucket.rb +146 -146
- data/lib/aws/s3/bucket_collection.rb +21 -21
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
- data/lib/aws/s3/bucket_tag_collection.rb +4 -2
- data/lib/aws/s3/cipher_io.rb +5 -4
- data/lib/aws/s3/client.rb +89 -84
- data/lib/aws/s3/client/xml.rb +1 -1
- data/lib/aws/s3/config.rb +7 -1
- data/lib/aws/s3/cors_rule.rb +2 -0
- data/lib/aws/s3/cors_rule_collection.rb +42 -40
- data/lib/aws/s3/data_options.rb +16 -11
- data/lib/aws/s3/encryption_utils.rb +2 -2
- data/lib/aws/s3/errors.rb +7 -7
- data/lib/aws/s3/multipart_upload.rb +30 -33
- data/lib/aws/s3/multipart_upload_collection.rb +8 -6
- data/lib/aws/s3/object_collection.rb +35 -35
- data/lib/aws/s3/object_metadata.rb +6 -6
- data/lib/aws/s3/object_version.rb +4 -4
- data/lib/aws/s3/object_version_collection.rb +15 -15
- data/lib/aws/s3/policy.rb +2 -2
- data/lib/aws/s3/prefixed_collection.rb +9 -5
- data/lib/aws/s3/presigned_post.rb +39 -37
- data/lib/aws/s3/request.rb +11 -11
- data/lib/aws/s3/s3_object.rb +210 -200
- data/lib/aws/s3/tree.rb +25 -27
- data/lib/aws/s3/tree/child_collection.rb +3 -3
- data/lib/aws/s3/tree/leaf_node.rb +2 -2
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +13 -13
- data/lib/aws/simple_db.rb +83 -83
- data/lib/aws/simple_db/attribute.rb +9 -7
- data/lib/aws/simple_db/attribute_collection.rb +22 -13
- data/lib/aws/simple_db/client.rb +107 -107
- data/lib/aws/simple_db/config.rb +7 -1
- data/lib/aws/simple_db/consistent_read_option.rb +5 -5
- data/lib/aws/simple_db/domain.rb +4 -2
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +5 -5
- data/lib/aws/simple_db/errors.rb +9 -9
- data/lib/aws/simple_db/item.rb +5 -5
- data/lib/aws/simple_db/item_collection.rb +83 -81
- data/lib/aws/simple_db/item_data.rb +4 -4
- data/lib/aws/simple_db/put_attributes.rb +3 -3
- data/lib/aws/simple_email_service.rb +140 -140
- data/lib/aws/simple_email_service/client.rb +82 -76
- data/lib/aws/simple_email_service/config.rb +1 -2
- data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
- data/lib/aws/simple_email_service/identity.rb +8 -8
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_workflow.rb +106 -106
- data/lib/aws/simple_workflow/activity_task.rb +15 -22
- data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
- data/lib/aws/simple_workflow/activity_type.rb +23 -23
- data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
- data/lib/aws/simple_workflow/client.rb +1004 -956
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +5 -5
- data/lib/aws/simple_workflow/decision_task.rb +129 -129
- data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
- data/lib/aws/simple_workflow/domain.rb +11 -11
- data/lib/aws/simple_workflow/domain_collection.rb +26 -26
- data/lib/aws/simple_workflow/history_event.rb +32 -32
- data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
- data/lib/aws/simple_workflow/option_formatters.rb +5 -5
- data/lib/aws/simple_workflow/request.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +1 -1
- data/lib/aws/simple_workflow/type.rb +8 -8
- data/lib/aws/simple_workflow/type_collection.rb +15 -15
- data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
- data/lib/aws/simple_workflow/workflow_type.rb +27 -25
- data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
- data/lib/aws/sns.rb +25 -25
- data/lib/aws/sns/client.rb +55 -55
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/subscription.rb +7 -7
- data/lib/aws/sns/subscription_collection.rb +5 -5
- data/lib/aws/sns/topic.rb +49 -49
- data/lib/aws/sns/topic_collection.rb +2 -2
- data/lib/aws/sns/topic_subscription_collection.rb +5 -5
- data/lib/aws/sqs.rb +20 -20
- data/lib/aws/sqs/client.rb +78 -78
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +12 -12
- data/lib/aws/sqs/queue.rb +66 -67
- data/lib/aws/sqs/queue_collection.rb +16 -8
- data/lib/aws/sqs/received_message.rb +7 -6
- data/lib/aws/storage_gateway.rb +21 -21
- data/lib/aws/storage_gateway/client.rb +269 -202
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/sts.rb +10 -8
- data/lib/aws/sts/client.rb +35 -35
- data/lib/aws/sts/session.rb +3 -3
- data/lib/aws/version.rb +1 -2
- metadata +23 -21
- data/lib/aws/core/autoloader.rb +0 -64
- data/lib/net/http/connection_pool.rb +0 -226
- data/lib/net/http/connection_pool/connection.rb +0 -189
- data/lib/net/http/connection_pool/session.rb +0 -126
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
require 'net/http'
|
|
15
|
+
require 'net/https'
|
|
16
|
+
require 'thread'
|
|
17
|
+
require 'logger'
|
|
18
|
+
|
|
19
|
+
module AWS
|
|
20
|
+
module Core
|
|
21
|
+
module Http
|
|
22
|
+
|
|
23
|
+
def self.patch_net_http_100_continue!
|
|
24
|
+
if RUBY_VERSION >= '2.0'
|
|
25
|
+
Net::HTTP.send(:include, Expect100Continue20)
|
|
26
|
+
elsif RUBY_VERSION >= '1.9.3'
|
|
27
|
+
Net::HTTP.send(:include, Expect100Continue19)
|
|
28
|
+
else
|
|
29
|
+
msg = "Expect 100-continue not supported in Ruby < 1.9.3"
|
|
30
|
+
raise NotImplementedError, msg
|
|
31
|
+
end
|
|
32
|
+
Net::HTTP.send(:alias_method, :old_transport_request, :transport_request)
|
|
33
|
+
Net::HTTP.send(:alias_method, :transport_request, :new_transport_request)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @private
|
|
37
|
+
module Expect100Continue19
|
|
38
|
+
def new_transport_request(req)
|
|
39
|
+
begin_transport req
|
|
40
|
+
res = catch(:response) {
|
|
41
|
+
req.exec @socket, @curr_http_version, edit_path(req.path)
|
|
42
|
+
begin
|
|
43
|
+
res = Net::HTTPResponse.read_new(@socket)
|
|
44
|
+
end while res.kind_of?(Net::HTTPContinue)
|
|
45
|
+
res
|
|
46
|
+
}
|
|
47
|
+
res.reading_body(@socket, req.response_body_permitted?) {
|
|
48
|
+
yield res if block_given?
|
|
49
|
+
}
|
|
50
|
+
end_transport req, res
|
|
51
|
+
res
|
|
52
|
+
rescue => exception
|
|
53
|
+
D "Conn close because of error #{exception}"
|
|
54
|
+
@socket.close if @socket and not @socket.closed?
|
|
55
|
+
raise exception
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @private
|
|
60
|
+
module Expect100Continue20
|
|
61
|
+
def new_transport_request(req)
|
|
62
|
+
count = 0
|
|
63
|
+
begin
|
|
64
|
+
begin_transport req
|
|
65
|
+
res = catch(:response) {
|
|
66
|
+
req.exec @socket, @curr_http_version, edit_path(req.path)
|
|
67
|
+
begin
|
|
68
|
+
res = Net::HTTPResponse.read_new(@socket)
|
|
69
|
+
res.decode_content = req.decode_content
|
|
70
|
+
end while res.kind_of?(Net::HTTPContinue)
|
|
71
|
+
|
|
72
|
+
res.uri = req.uri
|
|
73
|
+
|
|
74
|
+
res
|
|
75
|
+
}
|
|
76
|
+
res.reading_body(@socket, req.response_body_permitted?) {
|
|
77
|
+
yield res if block_given?
|
|
78
|
+
}
|
|
79
|
+
rescue Net::OpenTimeout
|
|
80
|
+
raise
|
|
81
|
+
rescue Net::ReadTimeout, IOError, EOFError,
|
|
82
|
+
Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE,
|
|
83
|
+
# avoid a dependency on OpenSSL
|
|
84
|
+
defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : IOError,
|
|
85
|
+
Timeout::Error => exception
|
|
86
|
+
if count == 0 && IDEMPOTENT_METHODS_.include?(req.method)
|
|
87
|
+
count += 1
|
|
88
|
+
@socket.close if @socket and not @socket.closed?
|
|
89
|
+
D "Conn close because of error #{exception}, and retry"
|
|
90
|
+
retry
|
|
91
|
+
end
|
|
92
|
+
D "Conn close because of error #{exception}"
|
|
93
|
+
@socket.close if @socket and not @socket.closed?
|
|
94
|
+
raise
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -74,36 +74,30 @@ module AWS
|
|
|
74
74
|
# simple_email_service and ses do not match).
|
|
75
75
|
attr_accessor :service_ruby_name
|
|
76
76
|
|
|
77
|
-
# @return [nil, URI] The URI to the proxy server requests are
|
|
78
|
-
# sent through if configured. Returns nil if there is no proxy.
|
|
79
|
-
attr_accessor :proxy_uri
|
|
80
|
-
|
|
81
77
|
# @return [Integer] The number of seconds the service has to respond
|
|
82
78
|
# before a timeout error is raised on the request. Defaults to
|
|
83
79
|
# 60 seconds.
|
|
84
80
|
attr_accessor :read_timeout
|
|
85
81
|
|
|
86
|
-
# @return [Boolean] Returns
|
|
82
|
+
# @return [Boolean] Returns `true` if this request should be made
|
|
87
83
|
# with SSL enabled.
|
|
88
84
|
attr_accessor :use_ssl
|
|
89
85
|
|
|
90
86
|
alias_method :use_ssl?, :use_ssl
|
|
91
87
|
|
|
92
|
-
# @return [
|
|
93
|
-
# the
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
alias_method :ssl_verify_peer?, :ssl_verify_peer
|
|
97
|
-
|
|
98
|
-
# @return [String] Returns the path to a bundle of CA certs in PEM
|
|
99
|
-
# format; the HTTP handler should use this to verify all HTTPS
|
|
100
|
-
# requests if {#ssl_verify_peer?} is true.
|
|
101
|
-
attr_accessor :ssl_ca_file
|
|
88
|
+
# @return [Float] timeout The number of seconds to wait for a
|
|
89
|
+
# 100-continue response before sending the HTTP request body.
|
|
90
|
+
# @private
|
|
91
|
+
attr_accessor :continue_timeout
|
|
102
92
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
93
|
+
def endpoint
|
|
94
|
+
scheme = use_ssl ? 'https' : 'http'
|
|
95
|
+
port = case scheme
|
|
96
|
+
when 'https' then self.port == 443 ? '' : ":#{self.port}"
|
|
97
|
+
when 'http' then self.port == 80 ? '' : ":#{self.port}"
|
|
98
|
+
end
|
|
99
|
+
"#{scheme}://#{host}#{port}"
|
|
100
|
+
end
|
|
107
101
|
|
|
108
102
|
# @return [Integer] Returns the port the request will be made over.
|
|
109
103
|
# Defaults to 443 for SSL requests and 80 for non-SSL requests.
|
|
@@ -36,13 +36,13 @@ module AWS
|
|
|
36
36
|
# @return [Exception,nil]
|
|
37
37
|
attr_accessor :network_error
|
|
38
38
|
|
|
39
|
-
# @return [Boolean] Returns
|
|
39
|
+
# @return [Boolean] Returns `true` if the request could not be made
|
|
40
40
|
# because of a networking issue (including timeouts).
|
|
41
41
|
def network_error?
|
|
42
42
|
@network_error ? true : false
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
# The #network_error attribute was previously #timeout, aliasing
|
|
45
|
+
# The #network_error attribute was previously #timeout, aliasing
|
|
46
46
|
# for backwards compatability
|
|
47
47
|
alias_method :timeout=, :network_error=
|
|
48
48
|
|
|
@@ -16,7 +16,7 @@ require 'thread'
|
|
|
16
16
|
module AWS
|
|
17
17
|
module Core
|
|
18
18
|
|
|
19
|
-
# Provides lazy creation of error classes via {#const_missing}.
|
|
19
|
+
# Provides lazy creation of error classes via {#const_missing}.
|
|
20
20
|
#
|
|
21
21
|
# Extend this module provides 3 benefits to another module:
|
|
22
22
|
#
|
|
@@ -26,24 +26,24 @@ module AWS
|
|
|
26
26
|
#
|
|
27
27
|
# Here is an example of how it works:
|
|
28
28
|
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
29
|
+
# Class Foo
|
|
30
|
+
# module Errors
|
|
31
|
+
# extend AWS::Core::LazyErrorClasses
|
|
32
|
+
# end
|
|
33
|
+
# end
|
|
34
34
|
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
35
|
+
# Foo::Errors.error_class('NoSuchKey')
|
|
36
|
+
# #=> Foo::Errors::NoSuckKey
|
|
37
37
|
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
38
|
+
# Foo::Errors.error_class('Nested.Error.Klasses')
|
|
39
|
+
# #=> Foo::Errors::Nested::Error::Klasses
|
|
40
40
|
#
|
|
41
41
|
# The errors returned from {#error_class} are subclasses
|
|
42
42
|
# of {AWS::Errors::Base}.
|
|
43
43
|
#
|
|
44
44
|
module LazyErrorClasses
|
|
45
45
|
|
|
46
|
-
# This grammar parses the defualt AWS XML error format
|
|
46
|
+
# This grammar parses the defualt AWS XML error format
|
|
47
47
|
BASE_ERROR_GRAMMAR = XML::Grammar.customize do
|
|
48
48
|
element("Error") do
|
|
49
49
|
ignore
|
|
@@ -56,12 +56,12 @@ module AWS
|
|
|
56
56
|
unless base.const_defined?(:GRAMMAR)
|
|
57
57
|
base.const_set(:GRAMMAR, BASE_ERROR_GRAMMAR)
|
|
58
58
|
end
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
mutex = Mutex.new
|
|
61
61
|
MetaUtils.extend_method(base, :const_missing_mutex) { mutex }
|
|
62
62
|
|
|
63
63
|
end
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
# Defines a new error class.
|
|
66
66
|
# @param [String,Symbol] constant
|
|
67
67
|
# @return [nil]
|
|
@@ -73,9 +73,9 @@ module AWS
|
|
|
73
73
|
|
|
74
74
|
# Converts the error code into an error class constant.
|
|
75
75
|
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
#
|
|
76
|
+
# AWS::EC2::Errors.error_class('Non.Existent.Error')
|
|
77
|
+
# #=> AWS::EC2::Errors::Non::Existent::Error
|
|
78
|
+
#
|
|
79
79
|
# @param [String] code An AWS error code.
|
|
80
80
|
#
|
|
81
81
|
# @return [Class] Returns the error class defiend by the error code.
|
|
@@ -83,7 +83,7 @@ module AWS
|
|
|
83
83
|
def error_class code
|
|
84
84
|
module_eval("#{self}::#{code.gsub('.Range','Range').gsub(".","::")}")
|
|
85
85
|
end
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
end
|
|
@@ -16,32 +16,32 @@ require 'pathname'
|
|
|
16
16
|
module AWS
|
|
17
17
|
module Core
|
|
18
18
|
|
|
19
|
-
#
|
|
19
|
+
# # Log Formatters
|
|
20
20
|
#
|
|
21
21
|
# Log formatters receive a {AWS::Core::Response} object and return
|
|
22
22
|
# a log message. When you construct a {LogFormatter}, you provide
|
|
23
23
|
# a pattern string with substitutions.
|
|
24
24
|
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
25
|
+
# pattern = '[REQUEST :http_status_code] :service :operation :duration'
|
|
26
|
+
# formatter = AWS::Core::LogFormatter.new(pattern)
|
|
27
|
+
# formatter.format(response)
|
|
28
|
+
# #=> '[AWS 200] EC2 get_bucket 0.0352'
|
|
29
29
|
#
|
|
30
|
-
#
|
|
30
|
+
# # AWS Configuration
|
|
31
31
|
#
|
|
32
32
|
# AWS.config provides a {LogFormatter.default} log formatter. You can
|
|
33
33
|
# repace this formatter by building your own and then passing it
|
|
34
34
|
# to {AWS.config}.
|
|
35
35
|
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
36
|
+
# pattern = '[REQUEST :http_status_code] :service :operation :duration'
|
|
37
|
+
# AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern)
|
|
38
38
|
#
|
|
39
|
-
#
|
|
39
|
+
# ## Canned Formatters
|
|
40
40
|
#
|
|
41
41
|
# Instead of providing your own pattern, you can choose a canned log
|
|
42
42
|
# formatter.
|
|
43
43
|
#
|
|
44
|
-
#
|
|
44
|
+
# AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
|
|
45
45
|
#
|
|
46
46
|
# Here is the list of canned formatters.
|
|
47
47
|
#
|
|
@@ -50,105 +50,71 @@ module AWS
|
|
|
50
50
|
# * {LogFormatter.debug}
|
|
51
51
|
# * {LogFormatter.colored}
|
|
52
52
|
#
|
|
53
|
-
#
|
|
53
|
+
# # Pattern Substitutions
|
|
54
54
|
#
|
|
55
55
|
# You can put any of these placeholders into you pattern.
|
|
56
56
|
#
|
|
57
|
-
#
|
|
58
|
-
# The AWS
|
|
59
|
-
#
|
|
60
|
-
#
|
|
61
|
-
# The
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
# The
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
#
|
|
68
|
-
# The
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
#
|
|
90
|
-
#
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
# [+:http_request_method+]
|
|
95
|
-
# The HTTP request verb (e.g. 'POST', 'PUT', 'GET', etc).
|
|
96
|
-
#
|
|
97
|
-
# [+:http_request_protocol+]
|
|
98
|
-
# This is replaced by 'http' or 'https'.
|
|
99
|
-
#
|
|
100
|
-
# [+:http_request_host+]
|
|
101
|
-
# The host name of the http request endpoint (e.g. 's3.amazon.com').
|
|
102
|
-
#
|
|
103
|
-
# [+:http_request_port+]
|
|
104
|
-
# The port number (e.g. '443' or '80').
|
|
105
|
-
#
|
|
106
|
-
# [+:http_request_uri+]
|
|
107
|
-
# The http request uri folling the host (e.g.
|
|
108
|
-
# '/bucket_name/objects/key?versions').
|
|
109
|
-
#
|
|
110
|
-
# [+:http_request_body+]
|
|
111
|
-
# The http request payload.
|
|
112
|
-
#
|
|
113
|
-
# [+:http_request_headers+]
|
|
114
|
-
# The http request headers, inspected.
|
|
115
|
-
#
|
|
116
|
-
# [+:http_request_proxy_uri+]
|
|
117
|
-
# The proxy uri used, or an empty string.
|
|
118
|
-
#
|
|
119
|
-
# [+:http_response_status+]
|
|
120
|
-
# The http response status code (e.g. '200', '404', '500', etc).
|
|
121
|
-
#
|
|
122
|
-
# [+:http_response_headers+]
|
|
123
|
-
# The http response headers, inspected.
|
|
124
|
-
#
|
|
125
|
-
# [+:http_response_body+]
|
|
126
|
-
# The http response body contents.
|
|
57
|
+
# * `:service` - The AWS service name (e.g. 'S3', 'EC2', 'SimpleDB', etc)
|
|
58
|
+
# * `:region` - The AWS region name (e.g. 'us-west-1', 'us-west-2', etc)
|
|
59
|
+
# * `:operation` - The name of the client request method. This maps to
|
|
60
|
+
# the name of the serivce API operation (e.g. :describe_instances).
|
|
61
|
+
# * `:options` - The hash of options passed to the client request method.
|
|
62
|
+
# Long strings are truncated/summarized if they excede the log
|
|
63
|
+
# formatters {#max_string_size}. Other objects are inspected.
|
|
64
|
+
# * `:retry_count` - The number of times a client request was retried.
|
|
65
|
+
# Throttlings and service errors trigger the automatic retry logic.
|
|
66
|
+
# This value indicates how many extra attempts were made before
|
|
67
|
+
# getting a successful response or giving up.
|
|
68
|
+
# * `:duration` - The time it took to generate a response, expressed
|
|
69
|
+
# in decimal seconds. This time includes everything from
|
|
70
|
+
# calling the client request method, until that method returns
|
|
71
|
+
# a value (event retries and retry delays).
|
|
72
|
+
# * `:error_class` - The class name of the error returned by the
|
|
73
|
+
# service. If no error was returned, this will be replcaed by
|
|
74
|
+
# an empty string.
|
|
75
|
+
# * `:error_message` - The message of the error returned. If
|
|
76
|
+
# no error was returned by the service, this will be an empty
|
|
77
|
+
# string.
|
|
78
|
+
# * `:http_request_method` - The HTTP request verb (e.g. 'POST',
|
|
79
|
+
# 'PUT', 'GET', etc).
|
|
80
|
+
# * `:http_request_protocol` - This is replaced by 'http' or 'https'.
|
|
81
|
+
# * `:http_request_host` - The host name of the http request
|
|
82
|
+
# endpoint (e.g. 's3.amazon.com').
|
|
83
|
+
# * `:http_request_port` - The port number (e.g. '443' or '80').
|
|
84
|
+
# * `:http_request_uri` - The http request uri folling the host (e.g.
|
|
85
|
+
# '/bucket_name/objects/key?versions').
|
|
86
|
+
# * `:http_request_body` - The http request payload.
|
|
87
|
+
# * `:http_request_headers` - The http request headers, inspected.
|
|
88
|
+
# * `:http_request_proxy_uri` - The proxy uri used, or an empty string.
|
|
89
|
+
# * `:http_response_status` - The http response status
|
|
90
|
+
# code (e.g. '200', '404', '500', etc).
|
|
91
|
+
# * `:http_response_headers` - The http response headers, inspected.
|
|
92
|
+
# * `:http_response_body` - The http response body contents.
|
|
127
93
|
#
|
|
128
94
|
class LogFormatter
|
|
129
95
|
|
|
130
96
|
# @param [String] pattern The log format pattern should be a string
|
|
131
97
|
# and may contain any of the following placeholders:
|
|
132
98
|
#
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
#
|
|
145
|
-
#
|
|
146
|
-
#
|
|
147
|
-
#
|
|
148
|
-
#
|
|
149
|
-
#
|
|
150
|
-
#
|
|
151
|
-
#
|
|
99
|
+
# * `:service`
|
|
100
|
+
# * `:region`
|
|
101
|
+
# * `:operation`
|
|
102
|
+
# * `:options`
|
|
103
|
+
# * `:retry_count`
|
|
104
|
+
# * `:duration`
|
|
105
|
+
# * `:error_class`
|
|
106
|
+
# * `:error_message`
|
|
107
|
+
# * `:http_request_method`
|
|
108
|
+
# * `:http_request_protocol`
|
|
109
|
+
# * `:http_request_host`
|
|
110
|
+
# * `:http_request_port`
|
|
111
|
+
# * `:http_request_uri`
|
|
112
|
+
# * `:http_request_body`
|
|
113
|
+
# * `:http_request_headers`
|
|
114
|
+
# * `:http_request_proxy_uri`
|
|
115
|
+
# * `:http_response_status`
|
|
116
|
+
# * `:http_response_headers`
|
|
117
|
+
# * `:http_response_body`
|
|
152
118
|
#
|
|
153
119
|
# @param [Hash] options
|
|
154
120
|
#
|
|
@@ -248,7 +214,7 @@ module AWS
|
|
|
248
214
|
end
|
|
249
215
|
|
|
250
216
|
def _http_request_proxy_uri response
|
|
251
|
-
response.
|
|
217
|
+
response.config.proxy_uri
|
|
252
218
|
end
|
|
253
219
|
|
|
254
220
|
def _http_response_status response
|
|
@@ -320,7 +286,7 @@ module AWS
|
|
|
320
286
|
#
|
|
321
287
|
# @example A sample of the default format.
|
|
322
288
|
#
|
|
323
|
-
#
|
|
289
|
+
# [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
|
|
324
290
|
#
|
|
325
291
|
# @return [LogFormatter]
|
|
326
292
|
#
|
|
@@ -345,7 +311,7 @@ module AWS
|
|
|
345
311
|
#
|
|
346
312
|
# @example A sample of the short format
|
|
347
313
|
#
|
|
348
|
-
#
|
|
314
|
+
# [AWS SimpleEmailService 200 0.494532] list_verified_email_addresses
|
|
349
315
|
#
|
|
350
316
|
# @return [LogFormatter]
|
|
351
317
|
#
|
|
@@ -431,7 +397,7 @@ module AWS
|
|
|
431
397
|
#
|
|
432
398
|
# @example A sample of the colored format (sans the ansi colors).
|
|
433
399
|
#
|
|
434
|
-
#
|
|
400
|
+
# [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
|
|
435
401
|
#
|
|
436
402
|
# @return [LogFormatter]
|
|
437
403
|
#
|