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
data/lib/aws/rds/config.rb
CHANGED
data/lib/aws/rds/db_instance.rb
CHANGED
|
@@ -59,6 +59,8 @@ module AWS
|
|
|
59
59
|
#
|
|
60
60
|
# @attr_reader [String] character_set_name
|
|
61
61
|
#
|
|
62
|
+
# @attr_reader [String,nil] vpc_id
|
|
63
|
+
#
|
|
62
64
|
class DBInstance < Core::Resource
|
|
63
65
|
|
|
64
66
|
# @param [String] db_instance_id
|
|
@@ -75,6 +77,8 @@ module AWS
|
|
|
75
77
|
|
|
76
78
|
alias_method :db_instance_id, :db_instance_identifier
|
|
77
79
|
|
|
80
|
+
attribute :vpc_id, :from => [:db_subnet_group, :vpc_id], :static => true
|
|
81
|
+
|
|
78
82
|
attribute :allocated_storage, :static => true, :alias => :size
|
|
79
83
|
|
|
80
84
|
attribute :auto_minor_version_upgrade
|
|
@@ -136,8 +140,15 @@ module AWS
|
|
|
136
140
|
resp.data[:db_instances].find{|j| j[:db_instance_identifier] == id }
|
|
137
141
|
end
|
|
138
142
|
|
|
143
|
+
# @return [EC2::VPC,nil]
|
|
144
|
+
def vpc
|
|
145
|
+
if vpc_id
|
|
146
|
+
EC2::VPC.new(vpc_id, :config => config)
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
139
150
|
# Modifies the database instance.
|
|
140
|
-
# @note You do not need to set
|
|
151
|
+
# @note You do not need to set `:db_instance_identifier`.
|
|
141
152
|
# @see Client#modify_db_instance
|
|
142
153
|
# @param (see Client#modify_db_instance)
|
|
143
154
|
def modify options = {}
|
|
@@ -164,9 +175,9 @@ module AWS
|
|
|
164
175
|
|
|
165
176
|
# Reboots this databse instance.
|
|
166
177
|
# @param [Hash] options
|
|
167
|
-
# @option options [Boolean] :force_failover When
|
|
178
|
+
# @option options [Boolean] :force_failover When `true`, the reboot will be
|
|
168
179
|
# conducted through a MultiAZ failover. Constraint: You cannot
|
|
169
|
-
# specify
|
|
180
|
+
# specify `true` if the instance is not configured for MultiAZ.
|
|
170
181
|
# @return [nil]
|
|
171
182
|
def reboot options = {}
|
|
172
183
|
client.reboot_db_instance(options.merge(:db_instance_identifier => id))
|
|
@@ -180,7 +191,7 @@ module AWS
|
|
|
180
191
|
nil
|
|
181
192
|
end
|
|
182
193
|
|
|
183
|
-
# @return [Boolean] Returns
|
|
194
|
+
# @return [Boolean] Returns `true` if the db instance exists.
|
|
184
195
|
def exists?
|
|
185
196
|
begin
|
|
186
197
|
get_resource
|
data/lib/aws/rds/db_snapshot.rb
CHANGED
data/lib/aws/record.rb
CHANGED
|
@@ -15,32 +15,58 @@ require 'set'
|
|
|
15
15
|
|
|
16
16
|
module AWS
|
|
17
17
|
|
|
18
|
-
# AWS::Record is an ORM built on top of AWS services.
|
|
18
|
+
# AWS::Record is an ORM built on top of AWS services.
|
|
19
19
|
module Record
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
autoload :AbstractBase, 'aws/record/abstract_base'
|
|
22
|
+
autoload :Attributes, 'aws/record/attributes'
|
|
23
|
+
autoload :Base, 'aws/record/model'
|
|
24
|
+
autoload :Conversion, 'aws/record/conversion'
|
|
25
|
+
autoload :DirtyTracking, 'aws/record/dirty_tracking'
|
|
26
|
+
autoload :Errors, 'aws/record/errors'
|
|
27
|
+
autoload :Exceptions, 'aws/record/exceptions'
|
|
28
|
+
autoload :HashModel, 'aws/record/hash_model'
|
|
29
|
+
autoload :Model, 'aws/record/model'
|
|
30
|
+
autoload :Naming, 'aws/record/naming'
|
|
31
|
+
autoload :Scope, 'aws/record/scope'
|
|
32
|
+
autoload :Validations, 'aws/record/validations'
|
|
33
|
+
|
|
34
|
+
# errors
|
|
35
|
+
autoload :InvalidRecordError, 'aws/record/exceptions'
|
|
36
|
+
autoload :EmptyRecordError, 'aws/record/exceptions'
|
|
37
|
+
autoload :UndefinedAttributeError, 'aws/record/exceptions'
|
|
38
|
+
|
|
39
|
+
# validators
|
|
40
|
+
autoload :AcceptanceValidator, 'aws/record/validators/acceptance'
|
|
41
|
+
autoload :BlockValidator, 'aws/record/validators/block'
|
|
42
|
+
autoload :ConfirmationValidator, 'aws/record/validators/confirmation'
|
|
43
|
+
autoload :CountValidator, 'aws/record/validators/count'
|
|
44
|
+
autoload :ExclusionValidator, 'aws/record/validators/exclusion'
|
|
45
|
+
autoload :FormatValidator, 'aws/record/validators/format'
|
|
46
|
+
autoload :InclusionValidator, 'aws/record/validators/inclusion'
|
|
47
|
+
autoload :LengthValidator, 'aws/record/validators/length'
|
|
48
|
+
autoload :MethodValidator, 'aws/record/validators/method'
|
|
49
|
+
autoload :NumericalityValidator, 'aws/record/validators/numericality'
|
|
50
|
+
autoload :PresenceValidator, 'aws/record/validators/presence'
|
|
51
|
+
autoload :Validator, 'aws/record/validator'
|
|
26
52
|
|
|
27
53
|
# @private
|
|
28
54
|
class RecordNotFound < StandardError; end
|
|
29
|
-
|
|
55
|
+
|
|
30
56
|
# Sets a prefix to be applied to all SimpleDB domains associated with
|
|
31
57
|
# AWS::Record::Base classes.
|
|
32
58
|
#
|
|
33
|
-
#
|
|
59
|
+
# AWS::Record.domain_prefix = 'production_'
|
|
34
60
|
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
61
|
+
# class Product < AWS::Record::Base
|
|
62
|
+
# set_shard_name 'products'
|
|
63
|
+
# end
|
|
38
64
|
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
65
|
+
# p = Product.new
|
|
66
|
+
# p.shard #=> 'products'
|
|
67
|
+
# p.save # the product is persisted to the 'production-products' domain
|
|
42
68
|
#
|
|
43
|
-
# @param [String] prefix A prefix to append to all domains. This is useful
|
|
69
|
+
# @param [String] prefix A prefix to append to all domains. This is useful
|
|
44
70
|
# for grouping domains used by one application with a single prefix.
|
|
45
71
|
#
|
|
46
72
|
def self.domain_prefix= prefix
|
|
@@ -56,15 +82,15 @@ module AWS
|
|
|
56
82
|
# with {AWS::Record::HashModel} and {AWS::Record::ListModel}
|
|
57
83
|
# classes.
|
|
58
84
|
#
|
|
59
|
-
#
|
|
85
|
+
# AWS::Record.table_prefix = 'production_'
|
|
60
86
|
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
87
|
+
# class Product < AWS::Record::HashModel
|
|
88
|
+
# set_shard_name 'products'
|
|
89
|
+
# end
|
|
64
90
|
#
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
#
|
|
91
|
+
# p = Product.new
|
|
92
|
+
# p.shard #=> 'products'
|
|
93
|
+
# p.save # the product is persisted to the 'production-products' table
|
|
68
94
|
#
|
|
69
95
|
# @param [String] prefix A prefix to append to all tables. This is
|
|
70
96
|
# useful for grouping tables used by one application with a
|
|
@@ -79,7 +105,7 @@ module AWS
|
|
|
79
105
|
@table_prefix
|
|
80
106
|
end
|
|
81
107
|
|
|
82
|
-
# A utility method for casting values into an array.
|
|
108
|
+
# A utility method for casting values into an array.
|
|
83
109
|
#
|
|
84
110
|
# * nil is returned as an empty array, []
|
|
85
111
|
# * Arrays are returned unmodified
|
|
@@ -97,7 +123,7 @@ module AWS
|
|
|
97
123
|
end
|
|
98
124
|
end
|
|
99
125
|
|
|
100
|
-
# A utility method for casting values into
|
|
126
|
+
# A utility method for casting values into
|
|
101
127
|
#
|
|
102
128
|
# * Sets are returned unmodified
|
|
103
129
|
# * everything else is passed through #{as_array} and then into a new Set
|
|
@@ -14,14 +14,6 @@
|
|
|
14
14
|
require 'uuidtools'
|
|
15
15
|
require 'set'
|
|
16
16
|
|
|
17
|
-
require 'aws/record/scope'
|
|
18
|
-
require 'aws/record/naming'
|
|
19
|
-
require 'aws/record/validations'
|
|
20
|
-
require 'aws/record/dirty_tracking'
|
|
21
|
-
require 'aws/record/conversion'
|
|
22
|
-
require 'aws/record/errors'
|
|
23
|
-
require 'aws/record/exceptions'
|
|
24
|
-
|
|
25
17
|
module AWS
|
|
26
18
|
module Record
|
|
27
19
|
module AbstractBase
|
|
@@ -46,7 +38,7 @@ module AWS
|
|
|
46
38
|
#
|
|
47
39
|
# @param [Hash] attributes Attributes that should be bulk assigned
|
|
48
40
|
# to this record. You can also specify the shard (i.e. domain
|
|
49
|
-
# or table) this record should persist to via
|
|
41
|
+
# or table) this record should persist to via `:shard`).
|
|
50
42
|
#
|
|
51
43
|
# @option attributes [String] :shard The domain/table this record
|
|
52
44
|
# should persist to. If this is omitted, it will persist to the
|
|
@@ -100,7 +92,7 @@ module AWS
|
|
|
100
92
|
|
|
101
93
|
# Acts like {#update} but does not call {#save}.
|
|
102
94
|
#
|
|
103
|
-
#
|
|
95
|
+
# record.attributes = { :name => 'abc', :age => 20 }
|
|
104
96
|
#
|
|
105
97
|
# @param [Hash] attributes A hash of attributes to set on this record
|
|
106
98
|
# without calling save.
|
|
@@ -213,16 +205,16 @@ module AWS
|
|
|
213
205
|
# If you define a custom setter, you use #[]= to set the value
|
|
214
206
|
# on the record.
|
|
215
207
|
#
|
|
216
|
-
#
|
|
208
|
+
# class Book < AWS::Record::Model
|
|
217
209
|
#
|
|
218
|
-
#
|
|
210
|
+
# string_attr :name
|
|
219
211
|
#
|
|
220
|
-
#
|
|
221
|
-
#
|
|
222
|
-
#
|
|
223
|
-
#
|
|
212
|
+
# # replace the default #author= method
|
|
213
|
+
# def author= name
|
|
214
|
+
# self['author'] = name.blank? ? 'Anonymous' : name
|
|
215
|
+
# end
|
|
224
216
|
#
|
|
225
|
-
#
|
|
217
|
+
# end
|
|
226
218
|
#
|
|
227
219
|
# @param [String,Symbol] The attribute name to set a value for
|
|
228
220
|
# @param attribute_value The value to assign.
|
|
@@ -247,27 +239,27 @@ module AWS
|
|
|
247
239
|
|
|
248
240
|
# Returns the typecasted value for the named attribute.
|
|
249
241
|
#
|
|
250
|
-
#
|
|
251
|
-
#
|
|
252
|
-
#
|
|
242
|
+
# book = Book.new(:title => 'My Book')
|
|
243
|
+
# book['title'] #=> 'My Book'
|
|
244
|
+
# book.title #=> 'My Book'
|
|
253
245
|
#
|
|
254
|
-
#
|
|
246
|
+
# ### Intended Use
|
|
255
247
|
#
|
|
256
248
|
# This method's primary use is for getting/setting the value for
|
|
257
249
|
# an attribute inside a custom method:
|
|
258
250
|
#
|
|
259
|
-
#
|
|
251
|
+
# class Book < AWS::Record::Model
|
|
260
252
|
#
|
|
261
|
-
#
|
|
253
|
+
# string_attr :title
|
|
262
254
|
#
|
|
263
|
-
#
|
|
264
|
-
#
|
|
265
|
-
#
|
|
255
|
+
# def title
|
|
256
|
+
# self['title'] ? self['title'].upcase : nil
|
|
257
|
+
# end
|
|
266
258
|
#
|
|
267
|
-
#
|
|
259
|
+
# end
|
|
268
260
|
#
|
|
269
|
-
#
|
|
270
|
-
#
|
|
261
|
+
# book = Book.new(:title => 'My Book')
|
|
262
|
+
# book.title #=> 'MY BOOK'
|
|
271
263
|
#
|
|
272
264
|
# @param [String,Symbol] attribute_name The name of the attribute to fetch
|
|
273
265
|
# a value for.
|
|
@@ -527,25 +519,25 @@ module AWS
|
|
|
527
519
|
|
|
528
520
|
# Adds a scoped finder to this class.
|
|
529
521
|
#
|
|
530
|
-
#
|
|
531
|
-
#
|
|
532
|
-
#
|
|
522
|
+
# class Book < AWS::Record::Model
|
|
523
|
+
# scope :top_10, order(:popularity, :desc).limit(10)
|
|
524
|
+
# end
|
|
533
525
|
#
|
|
534
|
-
#
|
|
535
|
-
#
|
|
526
|
+
# Book.top_10.to_a
|
|
527
|
+
# #=> [#<Book...>, #<Book...>]
|
|
536
528
|
#
|
|
537
|
-
#
|
|
538
|
-
#
|
|
529
|
+
# Book.top_10.first
|
|
530
|
+
# #=> #<Book...>
|
|
539
531
|
#
|
|
540
532
|
# You can also provide a block that accepts params for the scoped
|
|
541
533
|
# finder. This block should return a scope.
|
|
542
534
|
#
|
|
543
|
-
#
|
|
544
|
-
#
|
|
545
|
-
#
|
|
535
|
+
# class Book < AWS::Record::Model
|
|
536
|
+
# scope :by_author, lambda {|name| where(:author => name) }
|
|
537
|
+
# end
|
|
546
538
|
#
|
|
547
|
-
#
|
|
548
|
-
#
|
|
539
|
+
# # top 10 books by the author 'John Doe'
|
|
540
|
+
# Book.by_author('John Doe').top_10
|
|
549
541
|
#
|
|
550
542
|
# @param [Symbol] name The name of the scope. Scope names should be
|
|
551
543
|
# method-safe and should not conflict with any other class methods.
|
|
@@ -564,17 +556,17 @@ module AWS
|
|
|
564
556
|
# The {#save} method is called on the object(s) after construction.
|
|
565
557
|
# The object(s) are returned wether or not the object(s) are valid.
|
|
566
558
|
#
|
|
567
|
-
#
|
|
568
|
-
#
|
|
569
|
-
#
|
|
559
|
+
# class Book < AWS::Record::Model
|
|
560
|
+
# string_attr :title
|
|
561
|
+
# end
|
|
570
562
|
#
|
|
571
|
-
#
|
|
572
|
-
#
|
|
573
|
-
#
|
|
563
|
+
# book = Book.create(:title => "The big book of tests")
|
|
564
|
+
# book.persisted?
|
|
565
|
+
# #=> true
|
|
574
566
|
#
|
|
575
|
-
#
|
|
576
|
-
#
|
|
577
|
-
#
|
|
567
|
+
# books = Book.create([{:title => 'abc'}, {:title => 'xyz'}])
|
|
568
|
+
# books.each(&:persisted?)
|
|
569
|
+
# #=> [true, true]
|
|
578
570
|
#
|
|
579
571
|
def create attributes = {}
|
|
580
572
|
create_impl(attributes, :create, :save)
|
|
@@ -584,17 +576,17 @@ module AWS
|
|
|
584
576
|
# The {#save!} method is called on the object(s) after construction.
|
|
585
577
|
# If the object(s) are not valid, then an error is raised.
|
|
586
578
|
#
|
|
587
|
-
#
|
|
588
|
-
#
|
|
589
|
-
#
|
|
590
|
-
#
|
|
579
|
+
# class Book < AWS::Record::Model
|
|
580
|
+
# string_attr :title
|
|
581
|
+
# validates_presence_of :title
|
|
582
|
+
# end
|
|
591
583
|
#
|
|
592
|
-
#
|
|
593
|
-
#
|
|
594
|
-
#
|
|
584
|
+
# book = Book.create!(:title => "The big book of tests")
|
|
585
|
+
# book.persisted?
|
|
586
|
+
# #=> true
|
|
595
587
|
#
|
|
596
|
-
#
|
|
597
|
-
#
|
|
588
|
+
# book = Book.create!()
|
|
589
|
+
# #=> raises AWS::Record::InvalidRecordError
|
|
598
590
|
#
|
|
599
591
|
def create! attributes = {}
|
|
600
592
|
create_impl(attributes, :create!, :save!)
|
|
@@ -657,7 +649,7 @@ module AWS
|
|
|
657
649
|
@_data[attr_name]
|
|
658
650
|
end
|
|
659
651
|
|
|
660
|
-
|
|
652
|
+
# dirty tracking methods
|
|
661
653
|
|
|
662
654
|
define_method("#{attr_name}_changed?") do
|
|
663
655
|
attribute_changed?(attr_name)
|
|
@@ -19,15 +19,15 @@ module AWS
|
|
|
19
19
|
|
|
20
20
|
# Base class for all of the AWS::Record attributes.
|
|
21
21
|
class BaseAttr
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
# @param [Symbol] name Name of this attribute. It should be a name that
|
|
24
24
|
# is safe to use as a method.
|
|
25
25
|
# @param [Hash] options
|
|
26
|
-
# @option options [String] :persist_as Defaults to the name of the
|
|
26
|
+
# @option options [String] :persist_as Defaults to the name of the
|
|
27
27
|
# attribute. You can pass a string to specify what the attribute
|
|
28
28
|
# will be named in the backend storage.
|
|
29
29
|
# @option options [Boolean] :set (false) When true this attribute can
|
|
30
|
-
# accept multiple unique values.
|
|
30
|
+
# accept multiple unique values.
|
|
31
31
|
def initialize name, options = {}
|
|
32
32
|
@name = name.to_s
|
|
33
33
|
@options = options.dup
|
|
@@ -35,62 +35,62 @@ module AWS
|
|
|
35
35
|
raise ArgumentError, "invalid option :set for #{self.class}"
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
# @return [String] The name of this attribute
|
|
40
40
|
attr_reader :name
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
# @return [Hash] Attribute options passed to the constructor.
|
|
43
43
|
attr_reader :options
|
|
44
|
-
|
|
45
|
-
# @return [Boolean] Returns true if this attribute can have
|
|
44
|
+
|
|
45
|
+
# @return [Boolean] Returns true if this attribute can have
|
|
46
46
|
# multiple values.
|
|
47
47
|
def set?
|
|
48
48
|
options[:set] ? true : false
|
|
49
49
|
end
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
# @return Returns the default value for this attribute.
|
|
52
52
|
def default_value
|
|
53
53
|
options[:default_value]
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
# @return [String] Returns the name this attribute will use
|
|
56
|
+
# @return [String] Returns the name this attribute will use
|
|
57
57
|
# in the storage backend.
|
|
58
58
|
def persist_as
|
|
59
59
|
(options[:persist_as] || @name).to_s
|
|
60
60
|
end
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
# @param [Mixed] raw_value A single value to type cast.
|
|
63
63
|
# @return [Mixed] Returns the type casted value.
|
|
64
64
|
def type_cast raw_value
|
|
65
65
|
self.class.type_cast(raw_value, options)
|
|
66
66
|
end
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
# @param [String] serialized_value The serialized string value.
|
|
69
69
|
# @return [Mixed] Returns a deserialized type-casted value.
|
|
70
70
|
def deserialize serialized_value
|
|
71
71
|
self.class.deserialize(serialized_value, options)
|
|
72
72
|
end
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
# Takes the type casted value and serializes it
|
|
75
75
|
# @param [Mixed] type_casted_value A single value to serialize.
|
|
76
76
|
# @return [Mixed] Returns the serialized value.
|
|
77
77
|
def serialize type_casted_value
|
|
78
78
|
self.class.serialize(type_casted_value, options)
|
|
79
79
|
end
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
# @param [String] serialized_value The raw value returned from AWS.
|
|
82
82
|
# @return [Mixed] Returns the type-casted deserialized value.
|
|
83
83
|
def self.deserialize serialized_value, options = {}
|
|
84
84
|
self.type_cast(serialized_value, options)
|
|
85
85
|
end
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
# @return [Boolean] Returns true if this attribute type can be used
|
|
88
|
-
# with the
|
|
88
|
+
# with the `:set => true` option. Certain attirbutes can not
|
|
89
89
|
# be represented with multiple values (like BooleanAttr).
|
|
90
90
|
def self.allow_set?
|
|
91
91
|
raise NotImplementedError
|
|
92
92
|
end
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
# @private
|
|
95
95
|
protected
|
|
96
96
|
def self.expect klass, value, &block
|
|
@@ -103,23 +103,23 @@ module AWS
|
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
class StringAttr < BaseAttr
|
|
106
|
-
|
|
107
|
-
# Returns the value cast to a string. Empty strings are returned as
|
|
106
|
+
|
|
107
|
+
# Returns the value cast to a string. Empty strings are returned as
|
|
108
108
|
# nil by default. Type casting is done by calling #to_s on the value.
|
|
109
109
|
#
|
|
110
|
-
#
|
|
111
|
-
#
|
|
110
|
+
# string_attr.type_cast(123)
|
|
111
|
+
# # => '123'
|
|
112
112
|
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
113
|
+
# string_attr.type_cast('')
|
|
114
|
+
# # => nil
|
|
115
115
|
#
|
|
116
|
-
#
|
|
117
|
-
#
|
|
116
|
+
# string_attr.type_cast('', :preserve_empty_strings => true)
|
|
117
|
+
# # => ''
|
|
118
118
|
#
|
|
119
119
|
# @param [Mixed] raw_value
|
|
120
120
|
# @param [Hash] options
|
|
121
121
|
# @option options [Boolean] :preserve_empty_strings (false) When true,
|
|
122
|
-
# empty strings are preserved and not cast to nil.
|
|
122
|
+
# empty strings are preserved and not cast to nil.
|
|
123
123
|
# @return [String,nil] The type casted value.
|
|
124
124
|
def self.type_cast raw_value, options = {}
|
|
125
125
|
case raw_value
|
|
@@ -129,7 +129,7 @@ module AWS
|
|
|
129
129
|
else raw_value.to_s
|
|
130
130
|
end
|
|
131
131
|
end
|
|
132
|
-
|
|
132
|
+
|
|
133
133
|
# Returns a serialized representation of the string value suitable for
|
|
134
134
|
# storing in SimpleDB.
|
|
135
135
|
# @param [String] string
|
|
@@ -138,16 +138,16 @@ module AWS
|
|
|
138
138
|
def self.serialize string, options = {}
|
|
139
139
|
unless string.is_a?(String)
|
|
140
140
|
msg = "expected a String value, got #{string.class}"
|
|
141
|
-
raise ArgumentError, msg
|
|
141
|
+
raise ArgumentError, msg
|
|
142
142
|
end
|
|
143
143
|
string
|
|
144
144
|
end
|
|
145
|
-
|
|
145
|
+
|
|
146
146
|
# @private
|
|
147
147
|
def self.allow_set?
|
|
148
148
|
true
|
|
149
149
|
end
|
|
150
|
-
|
|
150
|
+
|
|
151
151
|
end
|
|
152
152
|
|
|
153
153
|
class BooleanAttr < BaseAttr
|
|
@@ -165,7 +165,7 @@ module AWS
|
|
|
165
165
|
case boolean
|
|
166
166
|
when false then 0
|
|
167
167
|
when true then 1
|
|
168
|
-
else
|
|
168
|
+
else
|
|
169
169
|
msg = "expected a boolean value, got #{boolean.class}"
|
|
170
170
|
raise ArgumentError, msg
|
|
171
171
|
end
|
|
@@ -179,15 +179,15 @@ module AWS
|
|
|
179
179
|
end
|
|
180
180
|
|
|
181
181
|
class IntegerAttr < BaseAttr
|
|
182
|
-
|
|
183
|
-
# Returns value cast to an integer. Empty strings are cast to
|
|
182
|
+
|
|
183
|
+
# Returns value cast to an integer. Empty strings are cast to
|
|
184
184
|
# nil by default. Type casting is done by calling #to_i on the value.
|
|
185
185
|
#
|
|
186
|
-
#
|
|
187
|
-
#
|
|
186
|
+
# int_attribute.type_cast('123')
|
|
187
|
+
# #=> 123
|
|
188
188
|
#
|
|
189
|
-
#
|
|
190
|
-
#
|
|
189
|
+
# int_attribute.type_cast('')
|
|
190
|
+
# #=> nil
|
|
191
191
|
#
|
|
192
192
|
# @param [Mixed] raw_value The value to type cast to an integer.
|
|
193
193
|
# @return [Integer,nil] Returns the type casted integer or nil
|
|
@@ -197,17 +197,17 @@ module AWS
|
|
|
197
197
|
when '' then nil
|
|
198
198
|
when Integer then raw_value
|
|
199
199
|
else
|
|
200
|
-
raw_value.respond_to?(:to_i) ?
|
|
200
|
+
raw_value.respond_to?(:to_i) ?
|
|
201
201
|
raw_value.to_i :
|
|
202
202
|
raw_value.to_s.to_i
|
|
203
203
|
end
|
|
204
204
|
end
|
|
205
|
-
|
|
205
|
+
|
|
206
206
|
# Returns a serialized representation of the integer value suitable for
|
|
207
207
|
# storing in SimpleDB.
|
|
208
208
|
#
|
|
209
|
-
#
|
|
210
|
-
#
|
|
209
|
+
# attribute.serialize(123)
|
|
210
|
+
# #=> '123'
|
|
211
211
|
#
|
|
212
212
|
# @param [Integer] integer The number to serialize.
|
|
213
213
|
# @param [Hash] options
|
|
@@ -215,7 +215,7 @@ module AWS
|
|
|
215
215
|
def self.serialize integer, options = {}
|
|
216
216
|
expect(Integer, integer) { integer }
|
|
217
217
|
end
|
|
218
|
-
|
|
218
|
+
|
|
219
219
|
# @private
|
|
220
220
|
def self.allow_set?
|
|
221
221
|
true
|
|
@@ -224,14 +224,14 @@ module AWS
|
|
|
224
224
|
end
|
|
225
225
|
|
|
226
226
|
class FloatAttr < BaseAttr
|
|
227
|
-
|
|
227
|
+
|
|
228
228
|
def self.type_cast raw_value, options = {}
|
|
229
229
|
case raw_value
|
|
230
230
|
when nil then nil
|
|
231
231
|
when '' then nil
|
|
232
232
|
when Float then raw_value
|
|
233
233
|
else
|
|
234
|
-
raw_value.respond_to?(:to_f) ?
|
|
234
|
+
raw_value.respond_to?(:to_f) ?
|
|
235
235
|
raw_value.to_f :
|
|
236
236
|
raw_value.to_s.to_f
|
|
237
237
|
end
|
|
@@ -250,21 +250,21 @@ module AWS
|
|
|
250
250
|
|
|
251
251
|
class DateAttr < BaseAttr
|
|
252
252
|
|
|
253
|
-
# Returns value cast to a Date object. Empty strings are cast to
|
|
254
|
-
# nil. Values are cast first to strings and then passed to
|
|
253
|
+
# Returns value cast to a Date object. Empty strings are cast to
|
|
254
|
+
# nil. Values are cast first to strings and then passed to
|
|
255
255
|
# Date.parse. Integers are treated as timestamps.
|
|
256
256
|
#
|
|
257
|
-
#
|
|
258
|
-
#
|
|
257
|
+
# date_attribute.type_cast('2000-01-02T10:11:12Z')
|
|
258
|
+
# #=> #<Date: 4903091/2,0,2299161>
|
|
259
259
|
#
|
|
260
|
-
#
|
|
261
|
-
#
|
|
260
|
+
# date_attribute.type_cast(1306170146)
|
|
261
|
+
# #<Date: 4911409/2,0,2299161>
|
|
262
262
|
#
|
|
263
|
-
#
|
|
264
|
-
#
|
|
263
|
+
# date_attribute.type_cast('')
|
|
264
|
+
# #=> nil
|
|
265
265
|
#
|
|
266
|
-
#
|
|
267
|
-
#
|
|
266
|
+
# date_attribute.type_cast(nil)
|
|
267
|
+
# #=> nil
|
|
268
268
|
#
|
|
269
269
|
# @param [Mixed] raw_value The value to cast to a Date object.
|
|
270
270
|
# @param [Hash] options
|
|
@@ -274,13 +274,13 @@ module AWS
|
|
|
274
274
|
when nil then nil
|
|
275
275
|
when '' then nil
|
|
276
276
|
when Date then raw_value
|
|
277
|
-
when Integer then
|
|
277
|
+
when Integer then
|
|
278
278
|
begin
|
|
279
279
|
Date.parse(Time.at(raw_value).to_s) # assumed timestamp
|
|
280
280
|
rescue
|
|
281
281
|
nil
|
|
282
282
|
end
|
|
283
|
-
else
|
|
283
|
+
else
|
|
284
284
|
begin
|
|
285
285
|
Date.parse(raw_value.to_s) # Time, DateTime or String
|
|
286
286
|
rescue
|
|
@@ -288,11 +288,11 @@ module AWS
|
|
|
288
288
|
end
|
|
289
289
|
end
|
|
290
290
|
end
|
|
291
|
-
|
|
291
|
+
|
|
292
292
|
# Returns a Date object encoded as a string (suitable for sorting).
|
|
293
293
|
#
|
|
294
|
-
#
|
|
295
|
-
#
|
|
294
|
+
# attribute.serialize(DateTime.parse('2001-01-01'))
|
|
295
|
+
# #=> '2001-01-01'
|
|
296
296
|
#
|
|
297
297
|
# @param [Date] date The date to serialize.
|
|
298
298
|
#
|
|
@@ -307,31 +307,31 @@ module AWS
|
|
|
307
307
|
end
|
|
308
308
|
date.strftime('%Y-%m-%d')
|
|
309
309
|
end
|
|
310
|
-
|
|
310
|
+
|
|
311
311
|
# @private
|
|
312
312
|
def self.allow_set?
|
|
313
313
|
true
|
|
314
314
|
end
|
|
315
|
-
|
|
315
|
+
|
|
316
316
|
end
|
|
317
317
|
|
|
318
318
|
class DateTimeAttr < BaseAttr
|
|
319
|
-
|
|
320
|
-
# Returns value cast to a DateTime object. Empty strings are cast to
|
|
321
|
-
# nil. Values are cast first to strings and then passed to
|
|
319
|
+
|
|
320
|
+
# Returns value cast to a DateTime object. Empty strings are cast to
|
|
321
|
+
# nil. Values are cast first to strings and then passed to
|
|
322
322
|
# DateTime.parse. Integers are treated as timestamps.
|
|
323
323
|
#
|
|
324
|
-
#
|
|
325
|
-
#
|
|
324
|
+
# datetime_attribute.type_cast('2000-01-02')
|
|
325
|
+
# #=> #<DateTime: 4903091/2,0,2299161>
|
|
326
326
|
#
|
|
327
|
-
#
|
|
328
|
-
#
|
|
327
|
+
# datetime_attribute.type_cast(1306170146)
|
|
328
|
+
# #<DateTime: 106086465073/43200,-7/24,2299161>
|
|
329
329
|
#
|
|
330
|
-
#
|
|
331
|
-
#
|
|
330
|
+
# datetime_attribute.type_cast('')
|
|
331
|
+
# #=> nil
|
|
332
332
|
#
|
|
333
|
-
#
|
|
334
|
-
#
|
|
333
|
+
# datetime_attribute.type_cast(nil)
|
|
334
|
+
# #=> nil
|
|
335
335
|
#
|
|
336
336
|
# @param [Mixed] raw_value The value to cast to a DateTime object.
|
|
337
337
|
# @param [Hash] options
|
|
@@ -341,13 +341,13 @@ module AWS
|
|
|
341
341
|
when nil then nil
|
|
342
342
|
when '' then nil
|
|
343
343
|
when DateTime then raw_value
|
|
344
|
-
when Integer then
|
|
344
|
+
when Integer then
|
|
345
345
|
begin
|
|
346
346
|
DateTime.parse(Time.at(raw_value).to_s) # timestamp
|
|
347
347
|
rescue
|
|
348
348
|
nil
|
|
349
349
|
end
|
|
350
|
-
else
|
|
350
|
+
else
|
|
351
351
|
begin
|
|
352
352
|
DateTime.parse(raw_value.to_s) # Time, Date or String
|
|
353
353
|
rescue
|
|
@@ -355,11 +355,11 @@ module AWS
|
|
|
355
355
|
end
|
|
356
356
|
end
|
|
357
357
|
end
|
|
358
|
-
|
|
358
|
+
|
|
359
359
|
# Returns a DateTime object encoded as a string (suitable for sorting).
|
|
360
360
|
#
|
|
361
|
-
#
|
|
362
|
-
#
|
|
361
|
+
# attribute.serialize(DateTime.parse('2001-01-01'))
|
|
362
|
+
# #=> '2001-01-01T00:00:00:Z)
|
|
363
363
|
#
|
|
364
364
|
# @param [DateTime] datetime The datetime object to serialize.
|
|
365
365
|
# @param [Hash] options
|
|
@@ -368,16 +368,16 @@ module AWS
|
|
|
368
368
|
def self.serialize datetime, options = {}
|
|
369
369
|
unless datetime.is_a?(DateTime)
|
|
370
370
|
msg = "expected a DateTime value, got #{datetime.class}"
|
|
371
|
-
raise ArgumentError, msg
|
|
371
|
+
raise ArgumentError, msg
|
|
372
372
|
end
|
|
373
373
|
datetime.strftime('%Y-%m-%dT%H:%M:%S%Z')
|
|
374
374
|
end
|
|
375
|
-
|
|
375
|
+
|
|
376
376
|
# @private
|
|
377
377
|
def self.allow_set?
|
|
378
378
|
true
|
|
379
379
|
end
|
|
380
|
-
|
|
380
|
+
|
|
381
381
|
end
|
|
382
382
|
end
|
|
383
383
|
end
|