aws-sdk 1.8.5 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|