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
|
@@ -19,7 +19,7 @@ module AWS
|
|
|
19
19
|
module Options
|
|
20
20
|
|
|
21
21
|
# Given a hash of serialization rules, a JSONSerializer can convert
|
|
22
|
-
# a hash of request options into a JSON document. The request options
|
|
22
|
+
# a hash of request options into a JSON document. The request options
|
|
23
23
|
# are validated before returning JSON.
|
|
24
24
|
class JSONSerializer
|
|
25
25
|
|
|
@@ -18,10 +18,10 @@ module AWS
|
|
|
18
18
|
# Given a hash of validation rules, a validator validate request
|
|
19
19
|
# options. Validations support:
|
|
20
20
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
21
|
+
# * rejecting unknown options
|
|
22
|
+
# * ensuring presence of required options
|
|
23
|
+
# * validating expected option types (e.g. hash, array, string,
|
|
24
|
+
# integer, etc).
|
|
25
25
|
#
|
|
26
26
|
# After validating, a hash of request options is returned with
|
|
27
27
|
# with normalized values (with converted types).
|
data/lib/aws/core/page_result.rb
CHANGED
|
@@ -20,16 +20,16 @@ module AWS
|
|
|
20
20
|
attr_reader :collection
|
|
21
21
|
|
|
22
22
|
# @return [Integer] Returns the maximum number of results per page.
|
|
23
|
-
# The final page in a collection may return fewer than
|
|
24
|
-
# items (e.g.
|
|
23
|
+
# The final page in a collection may return fewer than `:per_page`
|
|
24
|
+
# items (e.g. `:per_page` is 10 and there are only 7 items).
|
|
25
25
|
attr_reader :per_page
|
|
26
26
|
|
|
27
27
|
# @return [String] An opaque token that can be passed the #page method
|
|
28
28
|
# of the collection that returned this page of results. This next
|
|
29
|
-
# token behaves as a pseudo offset. If
|
|
29
|
+
# token behaves as a pseudo offset. If `next_token` is `nil` then
|
|
30
30
|
# there are no more results for the collection.
|
|
31
31
|
attr_reader :next_token
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
# @param [Collection] collection The collection that was used to
|
|
34
34
|
# request this page of results. The collection should respond to
|
|
35
35
|
# #page and accept a :next_token option.
|
|
@@ -38,11 +38,11 @@ module AWS
|
|
|
38
38
|
# page of results.
|
|
39
39
|
#
|
|
40
40
|
# @param [Integer] per_page The number of requested items for this
|
|
41
|
-
# page of results. If the count of items is smaller than
|
|
41
|
+
# page of results. If the count of items is smaller than `per_page`
|
|
42
42
|
# then this is the last page of results.
|
|
43
43
|
#
|
|
44
44
|
# @param [String] next_token (nil) A token that can be passed to the
|
|
45
|
-
#
|
|
45
|
+
#
|
|
46
46
|
def initialize collection, items, per_page, next_token
|
|
47
47
|
@collection = collection
|
|
48
48
|
@per_page = per_page
|
|
@@ -60,12 +60,12 @@ module AWS
|
|
|
60
60
|
collection.page(:per_page => per_page, :next_token => next_token)
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
# @return [Boolean] Returns
|
|
63
|
+
# @return [Boolean] Returns `true` if this is the last page of results.
|
|
64
64
|
def last_page?
|
|
65
65
|
next_token.nil?
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
# @return [Boolean] Returns
|
|
68
|
+
# @return [Boolean] Returns `true` if there are more pages of results.
|
|
69
69
|
def more?
|
|
70
70
|
!!next_token
|
|
71
71
|
end
|
data/lib/aws/core/policy.rb
CHANGED
|
@@ -20,14 +20,14 @@ module AWS
|
|
|
20
20
|
|
|
21
21
|
# Represents an access policy for AWS operations and resources. For example:
|
|
22
22
|
#
|
|
23
|
-
#
|
|
24
|
-
# policy.allow(
|
|
25
|
-
#
|
|
26
|
-
#
|
|
23
|
+
# policy = Policy.new
|
|
24
|
+
# policy.allow(
|
|
25
|
+
# :actions => ['s3:PutObject'],
|
|
26
|
+
# :resources => "arn:aws:s3:::mybucket/mykey/*",
|
|
27
|
+
# :principals => :any
|
|
27
28
|
# ).where(:acl).is("public-read")
|
|
28
|
-
# end
|
|
29
29
|
#
|
|
30
|
-
#
|
|
30
|
+
# policy.to_json # => '{ "Version":"2008-10-17", ...'
|
|
31
31
|
#
|
|
32
32
|
# @see #initialize More ways to construct a policy.
|
|
33
33
|
# @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html Example policies (in JSON).
|
|
@@ -52,7 +52,8 @@ module AWS
|
|
|
52
52
|
# * With hash arguments:
|
|
53
53
|
#
|
|
54
54
|
# Policy.new(:statements => [
|
|
55
|
-
# {
|
|
55
|
+
# {
|
|
56
|
+
# :effect => :allow,
|
|
56
57
|
# :actions => :all,
|
|
57
58
|
# :principals => ["abc123"],
|
|
58
59
|
# :resources => "mybucket/mykey"
|
|
@@ -66,13 +67,11 @@ module AWS
|
|
|
66
67
|
# * With a block:
|
|
67
68
|
#
|
|
68
69
|
# Policy.new do |policy|
|
|
69
|
-
#
|
|
70
70
|
# policy.allow(
|
|
71
71
|
# :actions => ['s3:PutObject'],
|
|
72
72
|
# :resources => "arn:aws:s3:::mybucket/mykey/*",
|
|
73
73
|
# :principals => :any
|
|
74
74
|
# ).where(:acl).is("public-read")
|
|
75
|
-
#
|
|
76
75
|
# end
|
|
77
76
|
#
|
|
78
77
|
def initialize(opts = {})
|
|
@@ -123,8 +122,8 @@ module AWS
|
|
|
123
122
|
# Returns a hash representation of the policy. The following
|
|
124
123
|
# statements are equivalent:
|
|
125
124
|
#
|
|
126
|
-
#
|
|
127
|
-
#
|
|
125
|
+
# policy.to_h.to_json
|
|
126
|
+
# policy.to_json
|
|
128
127
|
#
|
|
129
128
|
# @return [Hash]
|
|
130
129
|
def to_h
|
|
@@ -151,15 +150,15 @@ module AWS
|
|
|
151
150
|
# Convenient syntax for expressing operators in statement
|
|
152
151
|
# condition blocks. For example, the following:
|
|
153
152
|
#
|
|
154
|
-
#
|
|
155
|
-
#
|
|
153
|
+
# policy.allow.where(:s3_prefix).not("forbidden").
|
|
154
|
+
# where(:current_time).lte(Date.today+1)
|
|
156
155
|
#
|
|
157
156
|
# is equivalent to:
|
|
158
157
|
#
|
|
159
|
-
#
|
|
160
|
-
#
|
|
161
|
-
#
|
|
162
|
-
#
|
|
158
|
+
# conditions = Policy::ConditionBlock.new
|
|
159
|
+
# conditions.add(:not, :s3_prefix, "forbidden")
|
|
160
|
+
# conditions.add(:lte, :current_time, Date.today+1)
|
|
161
|
+
# policy.allow(:conditions => conditions)
|
|
163
162
|
#
|
|
164
163
|
# @see ConditionBlock#add
|
|
165
164
|
class OperatorBuilder
|
|
@@ -192,7 +191,7 @@ module AWS
|
|
|
192
191
|
|
|
193
192
|
# Adds a condition for the given key. For example:
|
|
194
193
|
#
|
|
195
|
-
#
|
|
194
|
+
# policy.allow(...).where(:current_time).lte(Date.today + 1)
|
|
196
195
|
#
|
|
197
196
|
# @return [OperatorBuilder]
|
|
198
197
|
def where(key, operator = nil, *values)
|
|
@@ -209,10 +208,11 @@ module AWS
|
|
|
209
208
|
# Convenience method for constructing a new statement with the
|
|
210
209
|
# "Allow" effect and adding it to the policy. For example:
|
|
211
210
|
#
|
|
212
|
-
# policy.allow(
|
|
213
|
-
#
|
|
214
|
-
#
|
|
215
|
-
#
|
|
211
|
+
# policy.allow(
|
|
212
|
+
# :actions => [:put_object],
|
|
213
|
+
# :principals => :any,
|
|
214
|
+
# :resources => "mybucket/mykey/*").
|
|
215
|
+
# where(:acl).is("public-read")
|
|
216
216
|
#
|
|
217
217
|
# @option (see Statement#initialize)
|
|
218
218
|
# @see Statement#initialize
|
|
@@ -226,11 +226,11 @@ module AWS
|
|
|
226
226
|
# Convenience method for constructing a new statement with the
|
|
227
227
|
# "Deny" effect and adding it to the policy. For example:
|
|
228
228
|
#
|
|
229
|
-
#
|
|
230
|
-
#
|
|
231
|
-
#
|
|
232
|
-
#
|
|
233
|
-
#
|
|
229
|
+
# policy.deny(
|
|
230
|
+
# :actions => [:put_object],
|
|
231
|
+
# :principals => :any,
|
|
232
|
+
# :resources => "mybucket/mykey/*"
|
|
233
|
+
# ).where(:acl).is("public-read")
|
|
234
234
|
#
|
|
235
235
|
# @param (see Statement#initialize)
|
|
236
236
|
# @see Statement#initialize
|
|
@@ -244,12 +244,12 @@ module AWS
|
|
|
244
244
|
# Represents the condition block of a policy. In JSON,
|
|
245
245
|
# condition blocks look like this:
|
|
246
246
|
#
|
|
247
|
-
#
|
|
247
|
+
# { "StringLike": { "s3:prefix": ["photos/*", "photos.html"] } }
|
|
248
248
|
#
|
|
249
249
|
# ConditionBlock lets you specify conditions like the above
|
|
250
250
|
# example using the add method, for example:
|
|
251
251
|
#
|
|
252
|
-
#
|
|
252
|
+
# conditions.add(:like, :s3_prefix, "photos/*", "photos.html")
|
|
253
253
|
#
|
|
254
254
|
# See the add method documentation for more details about how
|
|
255
255
|
# to specify keys and operators.
|
|
@@ -322,22 +322,22 @@ module AWS
|
|
|
322
322
|
# The following list shows which operators are accepted as
|
|
323
323
|
# symbols and how they are represented in the JSON policy:
|
|
324
324
|
#
|
|
325
|
-
# *
|
|
326
|
-
# *
|
|
327
|
-
# *
|
|
328
|
-
# *
|
|
329
|
-
# *
|
|
330
|
-
# *
|
|
325
|
+
# * `:is` (StringEquals, NumericEquals, DateEquals, or Bool)
|
|
326
|
+
# * `:like` (StringLike)
|
|
327
|
+
# * `:not_like` (StringNotLike)
|
|
328
|
+
# * `:not` (StringNotEquals, NumericNotEquals, or DateNotEquals)
|
|
329
|
+
# * `:greater_than`, `:gt` (NumericGreaterThan or DateGreaterThan)
|
|
330
|
+
# * `:greater_than_equals`, `:gte`
|
|
331
331
|
# (NumericGreaterThanEquals or DateGreaterThanEquals)
|
|
332
|
-
# *
|
|
333
|
-
# *
|
|
332
|
+
# * `:less_than`, `:lt` (NumericLessThan or DateLessThan)
|
|
333
|
+
# * `:less_than_equals`, `:lte`
|
|
334
334
|
# (NumericLessThanEquals or DateLessThanEquals)
|
|
335
|
-
# *
|
|
336
|
-
# *
|
|
337
|
-
# *
|
|
338
|
-
# *
|
|
339
|
-
# *
|
|
340
|
-
# *
|
|
335
|
+
# * `:is_ip_address` (IpAddress)
|
|
336
|
+
# * `:not_ip_address` (NotIpAddress)
|
|
337
|
+
# * `:is_arn` (ArnEquals)
|
|
338
|
+
# * `:not_arn` (ArnNotEquals)
|
|
339
|
+
# * `:is_arn_like` (ArnLike)
|
|
340
|
+
# * `:not_arn_like` (ArnNotLike)
|
|
341
341
|
#
|
|
342
342
|
# @param [Symbol or String] operator The operator used to
|
|
343
343
|
# compare the key with the value. See above for valid
|
|
@@ -348,8 +348,8 @@ module AWS
|
|
|
348
348
|
# default, the key is assumed to be in the "aws"
|
|
349
349
|
# namespace, but if you prefix the symbol name with "s3_"
|
|
350
350
|
# it will be sent in the "s3" namespace. For example,
|
|
351
|
-
#
|
|
352
|
-
#
|
|
351
|
+
# `:s3_prefix` is sent as "s3:prefix" while
|
|
352
|
+
# `:secure_transport` is sent as "aws:SecureTransport".
|
|
353
353
|
# See
|
|
354
354
|
# http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingResOpsConditions.html
|
|
355
355
|
# for a list of the available keys for each action in S3.
|
|
@@ -731,12 +731,12 @@ module AWS
|
|
|
731
731
|
# Symbols are expected to match methods of S3::Client.
|
|
732
732
|
# @option opts :excluded_actions Action or actions which are
|
|
733
733
|
# explicitly not affected by this statement. As with
|
|
734
|
-
#
|
|
734
|
+
# `:actions`, these may be symbols or strings.
|
|
735
735
|
# @option opts [String or array of strings] :resources The
|
|
736
736
|
# resource(s) affected by the statement. These can be
|
|
737
|
-
# expressed as ARNs (e.g.
|
|
738
|
-
# or you may omit the
|
|
739
|
-
# the path as
|
|
737
|
+
# expressed as ARNs (e.g. `arn:aws:s3:::mybucket/mykey`)
|
|
738
|
+
# or you may omit the `arn:aws:s3:::` prefix and just give
|
|
739
|
+
# the path as `bucket_name/key`. You may use the wildcard
|
|
740
740
|
# character "*" to match zero or more characters in the
|
|
741
741
|
# resource name.
|
|
742
742
|
# @option opts [ConditionBlock or Hash] :conditions
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
module AWS
|
|
15
|
+
module Core
|
|
16
|
+
|
|
17
|
+
# Represents an AWS region. A region has a name and provides access
|
|
18
|
+
# to service interface objects.
|
|
19
|
+
#
|
|
20
|
+
# aws = AWS.regions['us-west-1']
|
|
21
|
+
#
|
|
22
|
+
# aws.dynamo_db.tables.map(&:name)
|
|
23
|
+
# aws.ec2.instances.map(&:id)
|
|
24
|
+
#
|
|
25
|
+
# @attr_reader [AutoScaling] auto_scaling
|
|
26
|
+
# @attr_reader [CloudFormation] cloud_formation
|
|
27
|
+
# @attr_reader [CloudFront] cloud_front
|
|
28
|
+
# @attr_reader [CloudSearch] cloud_search
|
|
29
|
+
# @attr_reader [CloudWatch] cloud_watch
|
|
30
|
+
# @attr_reader [DynamoDB] dynamo_db
|
|
31
|
+
# @attr_reader [DataPipeline] data_pipeline
|
|
32
|
+
# @attr_reader [EC2] ec2
|
|
33
|
+
# @attr_reader [ElastiCache] elasticache
|
|
34
|
+
# @attr_reader [ElasticBeanstalk] elastic_beanstalk
|
|
35
|
+
# @attr_reader [ElasticTranscoder] elastic_transcoder
|
|
36
|
+
# @attr_reader [ELB] elb
|
|
37
|
+
# @attr_reader [EMR] emr
|
|
38
|
+
# @attr_reader [Glacier] glacier
|
|
39
|
+
# @attr_reader [IAM] iam
|
|
40
|
+
# @attr_reader [ImportExport] import_export
|
|
41
|
+
# @attr_reader [OpsWorks] ops_works
|
|
42
|
+
# @attr_reader [RDS] rds
|
|
43
|
+
# @attr_reader [Redshift] redshift
|
|
44
|
+
# @attr_reader [Route53] route_53
|
|
45
|
+
# @attr_reader [S3] s3
|
|
46
|
+
# @attr_reader [SimpleDB] simple_db
|
|
47
|
+
# @attr_reader [SimpleEmailService] simple_email_service
|
|
48
|
+
# @attr_reader [SimpleWorkflow] simple_workflow
|
|
49
|
+
# @attr_reader [SNS] sns
|
|
50
|
+
# @attr_reader [SQS] sqs
|
|
51
|
+
# @attr_reader [StorageGateway] storage_gateway
|
|
52
|
+
# @attr_reader [STS] sts
|
|
53
|
+
#
|
|
54
|
+
class Region
|
|
55
|
+
|
|
56
|
+
# @param [String] name
|
|
57
|
+
# @option options [Configuration] :config (AWS.config)
|
|
58
|
+
def initialize name, options = {}
|
|
59
|
+
@name = name
|
|
60
|
+
@config = options[:config] || AWS.config
|
|
61
|
+
@config = @config.with(:region => name)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @return [String] The name of this region (e.g. 'us-west-1').
|
|
65
|
+
attr_reader :name
|
|
66
|
+
|
|
67
|
+
# @return [Configuration]
|
|
68
|
+
attr_reader :config
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
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 'uri'
|
|
15
|
+
require 'net/http'
|
|
16
|
+
require 'json'
|
|
17
|
+
|
|
18
|
+
module AWS
|
|
19
|
+
module Core
|
|
20
|
+
|
|
21
|
+
# Provides a mechnasim to discover available regions. This can useful if
|
|
22
|
+
# you want to perform an operation for a service in every region.
|
|
23
|
+
#
|
|
24
|
+
# # call the EC2 DescribeInstances operation in each region
|
|
25
|
+
# AWS.regions.each do |region|
|
|
26
|
+
# resp = region.ec2.client.describe_instances
|
|
27
|
+
# end
|
|
28
|
+
#
|
|
29
|
+
# You can also use this collection as a shortcut for creating
|
|
30
|
+
# a service interface with a given region.
|
|
31
|
+
#
|
|
32
|
+
# s3 = AWS.regions['us-west-1'].s3
|
|
33
|
+
#
|
|
34
|
+
# This collection enumerates and returns {Region} objects.
|
|
35
|
+
#
|
|
36
|
+
# @see Region
|
|
37
|
+
class RegionCollection
|
|
38
|
+
|
|
39
|
+
include Enumerable
|
|
40
|
+
|
|
41
|
+
# @option options [Configuration] :config (AWS.config)
|
|
42
|
+
# @option options [ServiceInterface] :service (nil)
|
|
43
|
+
# @private
|
|
44
|
+
def initialize options = {}
|
|
45
|
+
@config = options[:config] || AWS.config
|
|
46
|
+
@service = options[:service]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# @return [Configuration]
|
|
50
|
+
attr_reader :config
|
|
51
|
+
|
|
52
|
+
# @param [String] name
|
|
53
|
+
# @return [Region] Returns a {Region} with the given name.
|
|
54
|
+
def [] name
|
|
55
|
+
Region.new(name, :config => config)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Enumerates public regions (non US Gov regions).
|
|
59
|
+
# @yieldparam [region] Region
|
|
60
|
+
def each &block
|
|
61
|
+
public_regions.each do |region_name|
|
|
62
|
+
yield(self[region_name])
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
private
|
|
67
|
+
|
|
68
|
+
# @return [Array<String>] Returns an array of non-gov-cloud region names.
|
|
69
|
+
def public_regions
|
|
70
|
+
return ['us-east-1'] if @service and @service.global_endpoint?
|
|
71
|
+
data = self.class.data
|
|
72
|
+
regions = @service ?
|
|
73
|
+
data['services'][@service.endpoint_prefix] :
|
|
74
|
+
data['regions'].keys
|
|
75
|
+
regions.reject{|r| r =~ /us-gov/ }
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
class << self
|
|
79
|
+
|
|
80
|
+
# @return [nil]
|
|
81
|
+
# @private
|
|
82
|
+
def clear!
|
|
83
|
+
@data = nil
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @return [Hash] Returns a hash of region metadata.
|
|
87
|
+
# @private
|
|
88
|
+
def data
|
|
89
|
+
@data ||= load_data
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
|
|
94
|
+
# @return [Hash]
|
|
95
|
+
def load_data
|
|
96
|
+
#return JSON.parse(File.read(File.join(AWS::ROOT, 'endpoints.json')))
|
|
97
|
+
host = 'aws-sdk-configurations.amazonwebservices.com'
|
|
98
|
+
path = '/endpoints.json'
|
|
99
|
+
JSON.parse(Net::HTTP.get(host, path))
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|