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
|
@@ -13,25 +13,25 @@
|
|
|
13
13
|
|
|
14
14
|
module AWS
|
|
15
15
|
module Core
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
# Mixin that provides a generic callback facility for asynchronous
|
|
18
18
|
# tasks that can either succeed or fail.
|
|
19
19
|
module AsyncHandle
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
# Called to signal success and fire off the success and complete callbacks.
|
|
22
22
|
def signal_success
|
|
23
23
|
__send_signal(:success)
|
|
24
24
|
end
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
# Called to signal failure and fire off the failure and complete callbacks.
|
|
27
27
|
def signal_failure
|
|
28
28
|
__send_signal(:failure)
|
|
29
29
|
end
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
# Registers a callback to be called on successful completion of
|
|
32
32
|
# the task.
|
|
33
33
|
#
|
|
34
|
-
#
|
|
34
|
+
# handle.on_success { puts "It worked!" }
|
|
35
35
|
#
|
|
36
36
|
# If this is called when the task has already completed
|
|
37
37
|
# successfully, it will call the callback immediately.
|
|
@@ -42,10 +42,10 @@ module AWS
|
|
|
42
42
|
(@_async_callbacks ||= []) << { :success => block }
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
# Registers a callback to be called when the task fails.
|
|
47
47
|
#
|
|
48
|
-
#
|
|
48
|
+
# handle.on_failure { puts "It didn't work!" }
|
|
49
49
|
#
|
|
50
50
|
# If this is called when the task has already failed, it will
|
|
51
51
|
# call the callback immediately.
|
|
@@ -56,13 +56,13 @@ module AWS
|
|
|
56
56
|
(@_async_callbacks ||= []) << { :failure => block }
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
# Registers a callback to be called when the task is complete,
|
|
61
61
|
# regardless of its status. Yields the status to the block.
|
|
62
62
|
#
|
|
63
|
-
#
|
|
64
|
-
#
|
|
65
|
-
#
|
|
63
|
+
# handle.on_complete do |status|
|
|
64
|
+
# puts "It #{status == :success ? 'did' : 'did not'} work!"
|
|
65
|
+
# end
|
|
66
66
|
#
|
|
67
67
|
# If this is called when the task has already completed, it will
|
|
68
68
|
# call the callback immediately.
|
|
@@ -76,7 +76,7 @@ module AWS
|
|
|
76
76
|
}
|
|
77
77
|
end
|
|
78
78
|
end
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
private
|
|
81
81
|
def __send_signal(kind)
|
|
82
82
|
@_async_status = kind
|
|
@@ -84,7 +84,7 @@ module AWS
|
|
|
84
84
|
cb[kind]
|
|
85
85
|
end.compact.each {|block| block.call } if @_async_callbacks
|
|
86
86
|
end
|
|
87
|
-
|
|
87
|
+
|
|
88
88
|
end
|
|
89
89
|
end
|
|
90
90
|
end
|
data/lib/aws/core/cacheable.rb
CHANGED
|
@@ -13,56 +13,55 @@
|
|
|
13
13
|
|
|
14
14
|
module AWS
|
|
15
15
|
module Core
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
# @private
|
|
18
18
|
module Cacheable
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
# @private
|
|
21
21
|
class NoData < StandardError; end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def self.included base
|
|
24
24
|
base.extend Naming unless base.respond_to?(:service_ruby_name)
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
# @private
|
|
28
28
|
protected
|
|
29
29
|
def local_cache_key
|
|
30
30
|
raise NotImplementedError
|
|
31
31
|
end
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
# @private
|
|
34
34
|
protected
|
|
35
35
|
def cache_key
|
|
36
36
|
@cache_key ||= begin
|
|
37
|
-
endpoint_method = self.class.service_ruby_name + "_endpoint"
|
|
38
37
|
config.credential_provider.access_key_id + ":" +
|
|
39
|
-
config.
|
|
38
|
+
config.region + ":" +
|
|
40
39
|
self.class.name + ":" +
|
|
41
40
|
local_cache_key
|
|
42
41
|
end
|
|
43
42
|
end
|
|
44
|
-
|
|
43
|
+
|
|
45
44
|
# @private
|
|
46
45
|
public
|
|
47
46
|
def retrieve_attribute attr, &block
|
|
48
|
-
|
|
47
|
+
|
|
49
48
|
if cache = AWS.response_cache
|
|
50
|
-
|
|
49
|
+
|
|
51
50
|
if cache.resource_cache.cached?(cache_key, attr.name)
|
|
52
51
|
return cache.resource_cache.get(cache_key, attr.name)
|
|
53
52
|
end
|
|
54
|
-
|
|
53
|
+
|
|
55
54
|
cache.select(*attr.request_types).each do |response|
|
|
56
55
|
if attributes = attributes_from_response(response)
|
|
57
56
|
cache.resource_cache.store(cache_key, attributes)
|
|
58
57
|
return attributes[attr.name] if attributes.key?(attr.name)
|
|
59
58
|
end
|
|
60
59
|
end
|
|
61
|
-
|
|
60
|
+
|
|
62
61
|
end
|
|
63
|
-
|
|
62
|
+
|
|
64
63
|
response = yield
|
|
65
|
-
|
|
64
|
+
|
|
66
65
|
if attributes = attributes_from_response(response)
|
|
67
66
|
if cache = AWS.response_cache
|
|
68
67
|
cache.resource_cache.store(cache_key, attributes)
|
|
@@ -72,7 +71,7 @@ module AWS
|
|
|
72
71
|
raise NoData.new("no data in #{response.request_type} response")
|
|
73
72
|
end
|
|
74
73
|
end
|
|
75
|
-
|
|
74
|
+
|
|
76
75
|
end
|
|
77
76
|
end
|
|
78
77
|
end
|
data/lib/aws/core/client.rb
CHANGED
|
@@ -105,7 +105,7 @@ module AWS
|
|
|
105
105
|
# end
|
|
106
106
|
#
|
|
107
107
|
# The block executes in the context of an HttpHandler
|
|
108
|
-
# instance, and
|
|
108
|
+
# instance, and `super` delegates to the HTTP handler used by
|
|
109
109
|
# this client. This provides an easy way to spy on requests
|
|
110
110
|
# and responses. See HttpHandler, HttpRequest, and
|
|
111
111
|
# HttpResponse for more details on how to implement a fully
|
|
@@ -177,11 +177,13 @@ module AWS
|
|
|
177
177
|
protected
|
|
178
178
|
|
|
179
179
|
def new_request
|
|
180
|
-
eval(self.class.name.sub(/::Client
|
|
180
|
+
eval(self.class.name.sub(/::Client.*$/, ''))::Request.new
|
|
181
181
|
end
|
|
182
182
|
|
|
183
183
|
def new_response(*args, &block)
|
|
184
|
-
Response.new(*args, &block)
|
|
184
|
+
resp = Response.new(*args, &block)
|
|
185
|
+
resp.config = config
|
|
186
|
+
resp
|
|
185
187
|
end
|
|
186
188
|
|
|
187
189
|
def make_async_request response
|
|
@@ -315,18 +317,32 @@ module AWS
|
|
|
315
317
|
response.error.kind_of?(Errors::ServerError)
|
|
316
318
|
end
|
|
317
319
|
|
|
318
|
-
# @return [Boolean] Returns
|
|
320
|
+
# @return [Boolean] Returns `true` if the response contains an
|
|
319
321
|
# error message that indicates credentials have expired.
|
|
320
322
|
def expired_credentials? response
|
|
321
323
|
response.error and
|
|
322
324
|
response.error.respond_to?(:code) and
|
|
323
|
-
(
|
|
325
|
+
(
|
|
326
|
+
response.error.code.to_s.match(/expired/i) or # session credentials
|
|
327
|
+
response.error.code == 'InvalidClientTokenId' or # query services
|
|
328
|
+
response.error.code == 'UnrecognizedClientException' or # json services
|
|
329
|
+
response.error.code == 'InvalidAccessKeyId' or # s3
|
|
330
|
+
response.error.code == 'AuthFailure' # ec2
|
|
331
|
+
)
|
|
324
332
|
end
|
|
325
333
|
|
|
326
334
|
def throttled? response
|
|
327
335
|
response.error and
|
|
328
336
|
response.error.respond_to?(:code) and
|
|
329
|
-
|
|
337
|
+
(
|
|
338
|
+
response.error.code.to_s.match(/throttl/i) or
|
|
339
|
+
#response.error.code == 'Throttling' or # most query services
|
|
340
|
+
#response.error.code == 'ThrottlingException' or # json services
|
|
341
|
+
#response.error.code == 'RequestThrottled' or # sqs
|
|
342
|
+
response.error.code == 'ProvisionedThroughputExceededException' or # ddb
|
|
343
|
+
response.error.code == 'RequestLimitExceeded' or # ec2
|
|
344
|
+
response.error.code == 'BandwidthLimitExceeded' # cloud search
|
|
345
|
+
)
|
|
330
346
|
end
|
|
331
347
|
|
|
332
348
|
def redirected? response
|
|
@@ -405,15 +421,15 @@ module AWS
|
|
|
405
421
|
# in sub-classes (e.g. QueryClient, RESTClient, etc).
|
|
406
422
|
# @param [Response] response
|
|
407
423
|
# @return [Array<Code,Message>,nil] Should return an array with an
|
|
408
|
-
# error code and message, or
|
|
424
|
+
# error code and message, or `nil`.
|
|
409
425
|
def extract_error_details response
|
|
410
426
|
raise NotImplementedError
|
|
411
427
|
end
|
|
412
428
|
|
|
413
429
|
# Given an error code string, this method will return an error class.
|
|
414
430
|
#
|
|
415
|
-
#
|
|
416
|
-
#
|
|
431
|
+
# AWS::EC2::Client.new.send(:error_code, 'InvalidInstanceId')
|
|
432
|
+
# #=> AWS::EC2::Errors::InvalidInstanceId
|
|
417
433
|
#
|
|
418
434
|
# @param [String] error_code The error code string as returned by
|
|
419
435
|
# the service. If this class contains periods, they will be
|
|
@@ -427,8 +443,8 @@ module AWS
|
|
|
427
443
|
|
|
428
444
|
# Returns the ::Errors module for the current client.
|
|
429
445
|
#
|
|
430
|
-
#
|
|
431
|
-
#
|
|
446
|
+
# AWS::S3::Client.new.errors_module
|
|
447
|
+
# #=> AWS::S3::Errors
|
|
432
448
|
#
|
|
433
449
|
# @return [Module]
|
|
434
450
|
#
|
|
@@ -466,6 +482,7 @@ module AWS
|
|
|
466
482
|
cached_response.cached = true
|
|
467
483
|
cached_response
|
|
468
484
|
else
|
|
485
|
+
|
|
469
486
|
# process the http request
|
|
470
487
|
options[:async] ?
|
|
471
488
|
make_async_request(response, &read_block) :
|
|
@@ -515,15 +532,23 @@ module AWS
|
|
|
515
532
|
http_request.host = endpoint
|
|
516
533
|
http_request.port = port
|
|
517
534
|
http_request.region = config.send(:"#{service_ruby_name}_region")
|
|
518
|
-
http_request.proxy_uri = config.proxy_uri
|
|
519
535
|
http_request.use_ssl = config.use_ssl?
|
|
520
|
-
http_request.ssl_verify_peer = config.ssl_verify_peer?
|
|
521
|
-
http_request.ssl_ca_file = config.ssl_ca_file if config.ssl_ca_file
|
|
522
|
-
http_request.ssl_ca_path = config.ssl_ca_path if config.ssl_ca_path
|
|
523
536
|
|
|
524
537
|
send("configure_#{name}_request", http_request, opts)
|
|
525
538
|
|
|
526
539
|
http_request.headers["user-agent"] = user_agent_string
|
|
540
|
+
|
|
541
|
+
if
|
|
542
|
+
@config.http_continue_threshold and
|
|
543
|
+
http_request.headers['content-length'] and
|
|
544
|
+
http_request.headers['content-length'].to_i > @config.http_continue_threshold
|
|
545
|
+
then
|
|
546
|
+
http_request.headers["expect"] = "100-continue"
|
|
547
|
+
http_request.continue_timeout = @config.http_continue_timeout
|
|
548
|
+
else
|
|
549
|
+
http_request.continue_timeout = nil
|
|
550
|
+
end
|
|
551
|
+
|
|
527
552
|
http_request.add_authorization!(credential_provider)
|
|
528
553
|
|
|
529
554
|
http_request
|
data/lib/aws/core/collection.rb
CHANGED
|
@@ -16,20 +16,18 @@ module AWS
|
|
|
16
16
|
# Provides useful methods for enumerating items in a collection.
|
|
17
17
|
module Collection
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
autoload :WithLimitAndNextToken, 'with_limit_and_next_token'
|
|
23
|
-
end
|
|
19
|
+
autoload :Simple, 'aws/core/collection/simple'
|
|
20
|
+
autoload :WithNextToken, 'aws/core/collection/with_next_token'
|
|
21
|
+
autoload :WithLimitAndNextToken, 'aws/core/collection/with_limit_and_next_token'
|
|
24
22
|
|
|
25
23
|
include Enumerable
|
|
26
24
|
|
|
27
25
|
# Yields once for every item in this collection.
|
|
28
26
|
#
|
|
29
|
-
#
|
|
27
|
+
# collection.each {|item| ... }
|
|
30
28
|
#
|
|
31
29
|
# @note If you want fewer than all items, it is generally better
|
|
32
|
-
# to call {#page} than {#each} with a
|
|
30
|
+
# to call {#page} than {#each} with a `:limit`.
|
|
33
31
|
#
|
|
34
32
|
# @param [Hash] options
|
|
35
33
|
#
|
|
@@ -37,13 +35,13 @@ module AWS
|
|
|
37
35
|
# items to enumerate from this collection.
|
|
38
36
|
#
|
|
39
37
|
# @option options [next_token] :next_token (nil)
|
|
40
|
-
# Acts as an offset.
|
|
41
|
-
# {#each_batch} when a
|
|
38
|
+
# Acts as an offset. `:next_token` may be returned by {#each} and
|
|
39
|
+
# {#each_batch} when a `:limit` is provided.
|
|
42
40
|
#
|
|
43
41
|
# @return [nil_or_next_token] Returns nil if all items were enumerated.
|
|
44
|
-
# If some items were excluded because of a
|
|
45
|
-
# a
|
|
46
|
-
# the same collection with the
|
|
42
|
+
# If some items were excluded because of a `:limit` option then
|
|
43
|
+
# a `next_token` is returned. Calling an enumerable method on
|
|
44
|
+
# the same collection with the `next_token` acts like an offset.
|
|
47
45
|
#
|
|
48
46
|
def each options = {}, &block
|
|
49
47
|
each_batch(options) do |batch|
|
|
@@ -53,13 +51,13 @@ module AWS
|
|
|
53
51
|
|
|
54
52
|
# Yields items from this collection in batches.
|
|
55
53
|
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
54
|
+
# collection.each_batch do |batch|
|
|
55
|
+
# batch.each do |item|
|
|
56
|
+
# # ...
|
|
57
|
+
# end
|
|
59
58
|
# end
|
|
60
|
-
# end
|
|
61
59
|
#
|
|
62
|
-
#
|
|
60
|
+
# ## Variable Batch Sizes
|
|
63
61
|
#
|
|
64
62
|
# Each AWS service has its own rules on how it returns results.
|
|
65
63
|
# Because of this batch size may very based on:
|
|
@@ -85,16 +83,14 @@ module AWS
|
|
|
85
83
|
# Use this method when you want to call a method provided by
|
|
86
84
|
# Enumerable, but you need to pass options:
|
|
87
85
|
#
|
|
88
|
-
#
|
|
89
|
-
#
|
|
86
|
+
# # raises an error because collect does not accept arguments
|
|
87
|
+
# collection.collect(:limit => 10) {|i| i.name }
|
|
90
88
|
#
|
|
91
|
-
#
|
|
92
|
-
#
|
|
89
|
+
# # not an issue with the enum method
|
|
90
|
+
# collection.enum(:limit => 10).collect(&:name)
|
|
93
91
|
#
|
|
94
92
|
# @param (see #each)
|
|
95
|
-
#
|
|
96
93
|
# @option (see #each)
|
|
97
|
-
#
|
|
98
94
|
# @return [Enumerable::Enumerator] Returns an enumerator for this
|
|
99
95
|
# collection.
|
|
100
96
|
#
|
|
@@ -115,15 +111,15 @@ module AWS
|
|
|
115
111
|
# Yields items from this collection in groups of an exact
|
|
116
112
|
# size (except for perhaps the last group).
|
|
117
113
|
#
|
|
118
|
-
#
|
|
114
|
+
# collection.in_groups_of (10, :limit => 30) do |group|
|
|
119
115
|
#
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
#
|
|
124
|
-
#
|
|
116
|
+
# # each group should be exactly 10 items unless
|
|
117
|
+
# # fewer than 30 items are returned by the service
|
|
118
|
+
# group.each do |item|
|
|
119
|
+
# #...
|
|
120
|
+
# end
|
|
125
121
|
#
|
|
126
|
-
#
|
|
122
|
+
# end
|
|
127
123
|
#
|
|
128
124
|
# @param [Integer] size Size each each group of objects
|
|
129
125
|
# should be yielded in.
|
|
@@ -152,29 +148,29 @@ module AWS
|
|
|
152
148
|
|
|
153
149
|
# Returns a single page of results in a kind-of array ({PageResult}).
|
|
154
150
|
#
|
|
155
|
-
#
|
|
156
|
-
#
|
|
157
|
-
#
|
|
158
|
-
#
|
|
159
|
-
#
|
|
151
|
+
# items = collection.page(:per_page => 10) # defaults to 10 items
|
|
152
|
+
# items.is_a?(Array) # => true
|
|
153
|
+
# items.size # => 8
|
|
154
|
+
# items.per_page # => 10
|
|
155
|
+
# items.last_page? # => true
|
|
160
156
|
#
|
|
161
157
|
# If you need to display a "next page" link in a web view you can
|
|
162
158
|
# use the #more? method. Just make sure the generated link
|
|
163
|
-
# contains the
|
|
159
|
+
# contains the `next_token`.
|
|
164
160
|
#
|
|
165
|
-
#
|
|
166
|
-
#
|
|
167
|
-
#
|
|
161
|
+
# <% if items.more? %>
|
|
162
|
+
# <%= link_to('Next Page', params.merge(:next_token => items.next_token) %>
|
|
163
|
+
# <% end %>
|
|
168
164
|
#
|
|
169
165
|
# Then in your controller you can find the next page of results:
|
|
170
166
|
#
|
|
171
|
-
#
|
|
167
|
+
# items = collection.page(:next_token => params[:next_token])
|
|
172
168
|
#
|
|
173
169
|
# Given a {PageResult} you can also get more results directly:
|
|
174
170
|
#
|
|
175
|
-
#
|
|
171
|
+
# more_items = items.next_page
|
|
176
172
|
#
|
|
177
|
-
# @note This method does not accept a
|
|
173
|
+
# @note This method does not accept a `:page` option, which means you
|
|
178
174
|
# can only start at the begining of the collection and request
|
|
179
175
|
# the next page of results. You can not choose an offset
|
|
180
176
|
# or know how many pages of results there will be.
|
|
@@ -248,15 +244,15 @@ module AWS
|
|
|
248
244
|
#
|
|
249
245
|
# An example of when this would be useful:
|
|
250
246
|
#
|
|
251
|
-
#
|
|
247
|
+
# collection.limit(10).each {|item| ... }
|
|
252
248
|
#
|
|
253
249
|
# The collection class including this module should define _limit
|
|
254
250
|
# and return the cached limit value (of 10 from this example).
|
|
255
251
|
# This value may still be overridden by a locally passed
|
|
256
|
-
#
|
|
252
|
+
# `:limit` option:
|
|
257
253
|
#
|
|
258
|
-
#
|
|
259
|
-
#
|
|
254
|
+
# # limit 5 wins out
|
|
255
|
+
# collection.limit(10).each(:limit => 5) {|item| ... }
|
|
260
256
|
#
|
|
261
257
|
def _limit
|
|
262
258
|
nil
|
|
@@ -15,7 +15,7 @@ module AWS
|
|
|
15
15
|
module Core
|
|
16
16
|
module Collection
|
|
17
17
|
|
|
18
|
-
#
|
|
18
|
+
# # Collection::WithLimitAndNextToken
|
|
19
19
|
#
|
|
20
20
|
# This module is used by collections where the service may truncate
|
|
21
21
|
# responses but that also accept a upper limit of results to
|