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
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
|