aws-sdk-euca 1.8.5
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.
- data/.yardopts +5 -0
- data/LICENSE.txt +12 -0
- data/README.rdoc +189 -0
- data/ca-bundle.crt +3895 -0
- data/lib/aws-sdk-euca.rb +79 -0
- data/lib/aws-sdk.rb +79 -0
- data/lib/aws.rb +14 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +825 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +322 -0
- data/lib/aws/api_config/CloudFront-2012-05-05.yml +2102 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
- data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1160 -0
- data/lib/aws/api_config/EC2-2013-02-01.yml +4368 -0
- data/lib/aws/api_config/ELB-2012-06-01.yml +597 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +370 -0
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
- data/lib/aws/api_config/ElastiCache-2012-11-15.yml +979 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +618 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1222 -0
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +1463 -0
- data/lib/aws/api_config/RDS-2012-09-17.yml +1861 -0
- data/lib/aws/api_config/RDS-2013-02-12.yml +2377 -0
- data/lib/aws/api_config/Redshift-2012-12-01.yml +1149 -0
- data/lib/aws/api_config/Route53-2012-02-29.yml +380 -0
- data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +249 -0
- data/lib/aws/api_config/SQS-2012-11-05.yml +317 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +81 -0
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2358 -0
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
- data/lib/aws/auto_scaling.rb +164 -0
- data/lib/aws/auto_scaling/activity.rb +102 -0
- data/lib/aws/auto_scaling/activity_collection.rb +82 -0
- data/lib/aws/auto_scaling/client.rb +521 -0
- data/lib/aws/auto_scaling/config.rb +18 -0
- data/lib/aws/auto_scaling/errors.rb +22 -0
- data/lib/aws/auto_scaling/group.rb +420 -0
- data/lib/aws/auto_scaling/group_collection.rb +96 -0
- data/lib/aws/auto_scaling/group_options.rb +146 -0
- data/lib/aws/auto_scaling/instance.rb +192 -0
- data/lib/aws/auto_scaling/instance_collection.rb +63 -0
- data/lib/aws/auto_scaling/launch_configuration.rb +158 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +154 -0
- data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
- data/lib/aws/auto_scaling/request.rb +29 -0
- data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
- data/lib/aws/auto_scaling/scaling_policy_options.rb +64 -0
- data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
- data/lib/aws/auto_scaling/tag.rb +59 -0
- data/lib/aws/auto_scaling/tag_collection.rb +112 -0
- data/lib/aws/cloud_formation.rb +272 -0
- data/lib/aws/cloud_formation/client.rb +369 -0
- data/lib/aws/cloud_formation/config.rb +18 -0
- data/lib/aws/cloud_formation/errors.rb +22 -0
- data/lib/aws/cloud_formation/request.rb +29 -0
- data/lib/aws/cloud_formation/stack.rb +255 -0
- data/lib/aws/cloud_formation/stack_collection.rb +209 -0
- data/lib/aws/cloud_formation/stack_event.rb +75 -0
- data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
- data/lib/aws/cloud_formation/stack_options.rb +72 -0
- data/lib/aws/cloud_formation/stack_output.rb +53 -0
- data/lib/aws/cloud_formation/stack_resource.rb +117 -0
- data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
- data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
- data/lib/aws/cloud_front.rb +73 -0
- data/lib/aws/cloud_front/client.rb +1307 -0
- data/lib/aws/cloud_front/config.rb +18 -0
- data/lib/aws/cloud_front/errors.rb +22 -0
- data/lib/aws/cloud_front/request.rb +44 -0
- data/lib/aws/cloud_search.rb +74 -0
- data/lib/aws/cloud_search/client.rb +558 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_search/request.rb +23 -0
- data/lib/aws/cloud_watch.rb +119 -0
- data/lib/aws/cloud_watch/alarm.rb +272 -0
- data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
- data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
- data/lib/aws/cloud_watch/client.rb +247 -0
- data/lib/aws/cloud_watch/config.rb +18 -0
- data/lib/aws/cloud_watch/errors.rb +22 -0
- data/lib/aws/cloud_watch/metric.rb +135 -0
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
- data/lib/aws/cloud_watch/metric_collection.rb +131 -0
- data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
- data/lib/aws/cloud_watch/request.rb +23 -0
- data/lib/aws/core.rb +587 -0
- data/lib/aws/core/async_handle.rb +90 -0
- data/lib/aws/core/autoloader.rb +64 -0
- data/lib/aws/core/cacheable.rb +78 -0
- data/lib/aws/core/client.rb +691 -0
- data/lib/aws/core/collection.rb +267 -0
- data/lib/aws/core/collection/simple.rb +82 -0
- data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
- data/lib/aws/core/collection/with_next_token.rb +97 -0
- data/lib/aws/core/configuration.rb +546 -0
- data/lib/aws/core/credential_providers.rb +461 -0
- data/lib/aws/core/data.rb +247 -0
- data/lib/aws/core/http/curb_handler.rb +155 -0
- data/lib/aws/core/http/handler.rb +89 -0
- data/lib/aws/core/http/net_http_handler.rb +128 -0
- data/lib/aws/core/http/request.rb +263 -0
- data/lib/aws/core/http/response.rb +81 -0
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +56 -0
- data/lib/aws/core/json_client.rb +47 -0
- data/lib/aws/core/json_parser.rb +76 -0
- data/lib/aws/core/json_request_builder.rb +35 -0
- data/lib/aws/core/json_response_parser.rb +79 -0
- data/lib/aws/core/lazy_error_classes.rb +90 -0
- data/lib/aws/core/log_formatter.rb +462 -0
- data/lib/aws/core/managed_file.rb +32 -0
- data/lib/aws/core/meta_utils.rb +45 -0
- data/lib/aws/core/model.rb +57 -0
- data/lib/aws/core/naming.rb +30 -0
- data/lib/aws/core/option_grammar.rb +735 -0
- data/lib/aws/core/options/json_serializer.rb +82 -0
- data/lib/aws/core/options/validator.rb +155 -0
- data/lib/aws/core/options/xml_serializer.rb +118 -0
- data/lib/aws/core/page_result.rb +75 -0
- data/lib/aws/core/policy.rb +916 -0
- data/lib/aws/core/query_client.rb +41 -0
- data/lib/aws/core/query_error_parser.rb +24 -0
- data/lib/aws/core/query_request_builder.rb +47 -0
- data/lib/aws/core/query_response_parser.rb +35 -0
- data/lib/aws/core/resource.rb +413 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +208 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/rest_error_parser.rb +24 -0
- data/lib/aws/core/rest_json_client.rb +40 -0
- data/lib/aws/core/rest_request_builder.rb +146 -0
- data/lib/aws/core/rest_response_parser.rb +66 -0
- data/lib/aws/core/rest_xml_client.rb +47 -0
- data/lib/aws/core/service_interface.rb +61 -0
- data/lib/aws/core/signature/version_2.rb +56 -0
- data/lib/aws/core/signature/version_3.rb +77 -0
- data/lib/aws/core/signature/version_3_https.rb +54 -0
- data/lib/aws/core/signature/version_4.rb +135 -0
- data/lib/aws/core/signer.rb +46 -0
- data/lib/aws/core/uri_escape.rb +44 -0
- data/lib/aws/core/xml/frame.rb +244 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +307 -0
- data/lib/aws/core/xml/parser.rb +70 -0
- data/lib/aws/core/xml/root_frame.rb +65 -0
- data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
- data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
- data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/data_pipeline.rb +73 -0
- data/lib/aws/data_pipeline/client.rb +339 -0
- data/lib/aws/data_pipeline/config.rb +18 -0
- data/lib/aws/data_pipeline/errors.rb +20 -0
- data/lib/aws/data_pipeline/request.rb +26 -0
- data/lib/aws/dynamo_db.rb +206 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +461 -0
- data/lib/aws/dynamo_db/batch_get.rb +213 -0
- data/lib/aws/dynamo_db/batch_write.rb +252 -0
- data/lib/aws/dynamo_db/binary.rb +35 -0
- data/lib/aws/dynamo_db/client.rb +904 -0
- data/lib/aws/dynamo_db/config.rb +24 -0
- data/lib/aws/dynamo_db/errors.rb +20 -0
- data/lib/aws/dynamo_db/expectations.rb +40 -0
- data/lib/aws/dynamo_db/item.rb +133 -0
- data/lib/aws/dynamo_db/item_collection.rb +852 -0
- data/lib/aws/dynamo_db/item_data.rb +31 -0
- data/lib/aws/dynamo_db/keys.rb +41 -0
- data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
- data/lib/aws/dynamo_db/request.rb +26 -0
- data/lib/aws/dynamo_db/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +491 -0
- data/lib/aws/dynamo_db/table_collection.rb +165 -0
- data/lib/aws/dynamo_db/types.rb +111 -0
- data/lib/aws/ec2.rb +440 -0
- data/lib/aws/ec2/attachment.rb +140 -0
- data/lib/aws/ec2/attachment_collection.rb +54 -0
- data/lib/aws/ec2/availability_zone.rb +86 -0
- data/lib/aws/ec2/availability_zone_collection.rb +43 -0
- data/lib/aws/ec2/block_device_mappings.rb +53 -0
- data/lib/aws/ec2/client.rb +3621 -0
- data/lib/aws/ec2/collection.rb +36 -0
- data/lib/aws/ec2/config.rb +18 -0
- data/lib/aws/ec2/config_transform.rb +63 -0
- data/lib/aws/ec2/customer_gateway.rb +90 -0
- data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
- data/lib/aws/ec2/dhcp_options.rb +106 -0
- data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
- data/lib/aws/ec2/elastic_ip.rb +208 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
- data/lib/aws/ec2/errors.rb +32 -0
- data/lib/aws/ec2/export_task.rb +120 -0
- data/lib/aws/ec2/export_task_collection.rb +67 -0
- data/lib/aws/ec2/filtered_collection.rb +89 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +264 -0
- data/lib/aws/ec2/image_collection.rb +228 -0
- data/lib/aws/ec2/instance.rb +796 -0
- data/lib/aws/ec2/instance_collection.rb +372 -0
- data/lib/aws/ec2/internet_gateway.rb +122 -0
- data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
- data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
- data/lib/aws/ec2/key_pair.rb +82 -0
- data/lib/aws/ec2/key_pair_collection.rb +99 -0
- data/lib/aws/ec2/network_acl.rb +256 -0
- data/lib/aws/ec2/network_acl/association.rb +56 -0
- data/lib/aws/ec2/network_acl/entry.rb +147 -0
- data/lib/aws/ec2/network_acl_collection.rb +64 -0
- data/lib/aws/ec2/network_interface.rb +228 -0
- data/lib/aws/ec2/network_interface/attachment.rb +100 -0
- data/lib/aws/ec2/network_interface_collection.rb +103 -0
- data/lib/aws/ec2/permission_collection.rb +174 -0
- data/lib/aws/ec2/region.rb +106 -0
- data/lib/aws/ec2/region_collection.rb +51 -0
- data/lib/aws/ec2/request.rb +21 -0
- data/lib/aws/ec2/reserved_instances.rb +56 -0
- data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
- data/lib/aws/ec2/resource.rb +161 -0
- data/lib/aws/ec2/resource_tag_collection.rb +211 -0
- data/lib/aws/ec2/route_table.rb +205 -0
- data/lib/aws/ec2/route_table/association.rb +119 -0
- data/lib/aws/ec2/route_table/route.rb +119 -0
- data/lib/aws/ec2/route_table_collection.rb +72 -0
- data/lib/aws/ec2/security_group.rb +484 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
- data/lib/aws/ec2/security_group_collection.rb +135 -0
- data/lib/aws/ec2/snapshot.rb +143 -0
- data/lib/aws/ec2/snapshot_collection.rb +132 -0
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +115 -0
- data/lib/aws/ec2/tag.rb +81 -0
- data/lib/aws/ec2/tag_collection.rb +107 -0
- data/lib/aws/ec2/tagged_collection.rb +53 -0
- data/lib/aws/ec2/tagged_item.rb +85 -0
- data/lib/aws/ec2/volume.rb +174 -0
- data/lib/aws/ec2/volume_collection.rb +101 -0
- data/lib/aws/ec2/vpc.rb +166 -0
- data/lib/aws/ec2/vpc_collection.rb +70 -0
- data/lib/aws/ec2/vpn_connection.rb +99 -0
- data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
- data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
- data/lib/aws/ec2/vpn_gateway.rb +123 -0
- data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
- data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
- data/lib/aws/elastic_beanstalk.rb +50 -0
- data/lib/aws/elastic_beanstalk/client.rb +867 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_beanstalk/request.rb +29 -0
- data/lib/aws/elastic_transcoder.rb +30 -0
- data/lib/aws/elastic_transcoder/client.rb +672 -0
- data/lib/aws/elastic_transcoder/config.rb +18 -0
- data/lib/aws/elastic_transcoder/errors.rb +23 -0
- data/lib/aws/elastic_transcoder/request.rb +30 -0
- data/lib/aws/elasticache.rb +50 -0
- data/lib/aws/elasticache/client.rb +920 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elasticache/request.rb +23 -0
- data/lib/aws/elb.rb +67 -0
- data/lib/aws/elb/availability_zone_collection.rb +138 -0
- data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
- data/lib/aws/elb/client.rb +500 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +173 -0
- data/lib/aws/elb/listener.rb +190 -0
- data/lib/aws/elb/listener_collection.rb +113 -0
- data/lib/aws/elb/listener_opts.rb +45 -0
- data/lib/aws/elb/load_balancer.rb +281 -0
- data/lib/aws/elb/load_balancer_collection.rb +134 -0
- data/lib/aws/elb/load_balancer_policy.rb +93 -0
- data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
- data/lib/aws/elb/request.rb +29 -0
- data/lib/aws/emr.rb +86 -0
- data/lib/aws/emr/client.rb +330 -0
- data/lib/aws/emr/config.rb +18 -0
- data/lib/aws/emr/errors.rb +22 -0
- data/lib/aws/emr/instance_group.rb +138 -0
- data/lib/aws/emr/instance_group_collection.rb +82 -0
- data/lib/aws/emr/job_flow.rb +306 -0
- data/lib/aws/emr/job_flow_collection.rb +185 -0
- data/lib/aws/emr/request.rb +23 -0
- data/lib/aws/errors.rb +162 -0
- data/lib/aws/glacier.rb +80 -0
- data/lib/aws/glacier/archive.rb +56 -0
- data/lib/aws/glacier/archive_collection.rb +146 -0
- data/lib/aws/glacier/client.rb +286 -0
- data/lib/aws/glacier/config.rb +19 -0
- data/lib/aws/glacier/errors.rb +22 -0
- data/lib/aws/glacier/request.rb +34 -0
- data/lib/aws/glacier/resource.rb +30 -0
- data/lib/aws/glacier/vault.rb +145 -0
- data/lib/aws/glacier/vault_collection.rb +75 -0
- data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
- data/lib/aws/iam.rb +420 -0
- data/lib/aws/iam/access_key.rb +180 -0
- data/lib/aws/iam/access_key_collection.rb +128 -0
- data/lib/aws/iam/account_alias_collection.rb +79 -0
- data/lib/aws/iam/client.rb +1092 -0
- data/lib/aws/iam/collection.rb +83 -0
- data/lib/aws/iam/config.rb +18 -0
- data/lib/aws/iam/errors.rb +22 -0
- data/lib/aws/iam/group.rb +111 -0
- data/lib/aws/iam/group_collection.rb +132 -0
- data/lib/aws/iam/group_policy_collection.rb +47 -0
- data/lib/aws/iam/group_user_collection.rb +84 -0
- data/lib/aws/iam/login_profile.rb +99 -0
- data/lib/aws/iam/mfa_device.rb +52 -0
- data/lib/aws/iam/mfa_device_collection.rb +127 -0
- data/lib/aws/iam/policy.rb +46 -0
- data/lib/aws/iam/policy_collection.rb +188 -0
- data/lib/aws/iam/request.rb +29 -0
- data/lib/aws/iam/resource.rb +62 -0
- data/lib/aws/iam/server_certificate.rb +141 -0
- data/lib/aws/iam/server_certificate_collection.rb +138 -0
- data/lib/aws/iam/signing_certificate.rb +169 -0
- data/lib/aws/iam/signing_certificate_collection.rb +131 -0
- data/lib/aws/iam/user.rb +205 -0
- data/lib/aws/iam/user_collection.rb +133 -0
- data/lib/aws/iam/user_group_collection.rb +98 -0
- data/lib/aws/iam/user_policy.rb +90 -0
- data/lib/aws/iam/user_policy_collection.rb +45 -0
- data/lib/aws/iam/virtual_mfa_device.rb +139 -0
- data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
- data/lib/aws/import_export.rb +73 -0
- data/lib/aws/import_export/client.rb +109 -0
- data/lib/aws/import_export/config.rb +19 -0
- data/lib/aws/import_export/errors.rb +22 -0
- data/lib/aws/import_export/request.rb +23 -0
- data/lib/aws/ops_works.rb +30 -0
- data/lib/aws/ops_works/client.rb +713 -0
- data/lib/aws/ops_works/config.rb +18 -0
- data/lib/aws/ops_works/errors.rb +20 -0
- data/lib/aws/ops_works/request.rb +27 -0
- data/lib/aws/rails.rb +195 -0
- data/lib/aws/rds.rb +71 -0
- data/lib/aws/rds/client.rb +2228 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +205 -0
- data/lib/aws/rds/db_instance_collection.rb +75 -0
- data/lib/aws/rds/db_snapshot.rb +163 -0
- data/lib/aws/rds/db_snapshot_collection.rb +89 -0
- data/lib/aws/rds/errors.rb +22 -0
- data/lib/aws/rds/request.rb +23 -0
- data/lib/aws/record.rb +116 -0
- data/lib/aws/record/abstract_base.rb +701 -0
- data/lib/aws/record/attributes.rb +384 -0
- data/lib/aws/record/conversion.rb +38 -0
- data/lib/aws/record/dirty_tracking.rb +285 -0
- data/lib/aws/record/errors.rb +143 -0
- data/lib/aws/record/exceptions.rb +48 -0
- data/lib/aws/record/hash_model.rb +161 -0
- data/lib/aws/record/hash_model/attributes.rb +197 -0
- data/lib/aws/record/hash_model/finder_methods.rb +172 -0
- data/lib/aws/record/hash_model/scope.rb +108 -0
- data/lib/aws/record/model.rb +427 -0
- data/lib/aws/record/model/attributes.rb +379 -0
- data/lib/aws/record/model/finder_methods.rb +232 -0
- data/lib/aws/record/model/scope.rb +213 -0
- data/lib/aws/record/naming.rb +31 -0
- data/lib/aws/record/scope.rb +199 -0
- data/lib/aws/record/validations.rb +712 -0
- data/lib/aws/record/validator.rb +246 -0
- data/lib/aws/record/validators/acceptance.rb +51 -0
- data/lib/aws/record/validators/block.rb +38 -0
- data/lib/aws/record/validators/confirmation.rb +43 -0
- data/lib/aws/record/validators/count.rb +108 -0
- data/lib/aws/record/validators/exclusion.rb +43 -0
- data/lib/aws/record/validators/format.rb +57 -0
- data/lib/aws/record/validators/inclusion.rb +56 -0
- data/lib/aws/record/validators/length.rb +107 -0
- data/lib/aws/record/validators/method.rb +33 -0
- data/lib/aws/record/validators/numericality.rb +138 -0
- data/lib/aws/record/validators/presence.rb +45 -0
- data/lib/aws/redshift.rb +52 -0
- data/lib/aws/redshift/client.rb +1291 -0
- data/lib/aws/redshift/config.rb +18 -0
- data/lib/aws/redshift/errors.rb +22 -0
- data/lib/aws/redshift/request.rb +29 -0
- data/lib/aws/route_53.rb +87 -0
- data/lib/aws/route_53/change_batch.rb +159 -0
- data/lib/aws/route_53/change_info.rb +72 -0
- data/lib/aws/route_53/client.rb +387 -0
- data/lib/aws/route_53/config.rb +18 -0
- data/lib/aws/route_53/errors.rb +22 -0
- data/lib/aws/route_53/hosted_zone.rb +111 -0
- data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
- data/lib/aws/route_53/request.rb +23 -0
- data/lib/aws/route_53/resource_record_set.rb +237 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +155 -0
- data/lib/aws/s3/access_control_list.rb +257 -0
- data/lib/aws/s3/acl_object.rb +264 -0
- data/lib/aws/s3/acl_options.rb +204 -0
- data/lib/aws/s3/bucket.rb +742 -0
- data/lib/aws/s3/bucket_collection.rb +160 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +458 -0
- data/lib/aws/s3/bucket_tag_collection.rb +109 -0
- data/lib/aws/s3/bucket_version_collection.rb +77 -0
- data/lib/aws/s3/cipher_io.rb +119 -0
- data/lib/aws/s3/client.rb +1700 -0
- data/lib/aws/s3/client/xml.rb +231 -0
- data/lib/aws/s3/config.rb +36 -0
- data/lib/aws/s3/cors_rule.rb +106 -0
- data/lib/aws/s3/cors_rule_collection.rb +192 -0
- data/lib/aws/s3/data_options.rb +185 -0
- data/lib/aws/s3/encryption_utils.rb +139 -0
- data/lib/aws/s3/errors.rb +94 -0
- data/lib/aws/s3/multipart_upload.rb +320 -0
- data/lib/aws/s3/multipart_upload_collection.rb +68 -0
- data/lib/aws/s3/object_collection.rb +355 -0
- data/lib/aws/s3/object_metadata.rb +96 -0
- data/lib/aws/s3/object_upload_collection.rb +77 -0
- data/lib/aws/s3/object_version.rb +148 -0
- data/lib/aws/s3/object_version_collection.rb +89 -0
- data/lib/aws/s3/paginated_collection.rb +75 -0
- data/lib/aws/s3/policy.rb +74 -0
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
- data/lib/aws/s3/prefixed_collection.rb +81 -0
- data/lib/aws/s3/presigned_post.rb +555 -0
- data/lib/aws/s3/request.rb +201 -0
- data/lib/aws/s3/s3_object.rb +1690 -0
- data/lib/aws/s3/tree.rb +118 -0
- data/lib/aws/s3/tree/branch_node.rb +68 -0
- data/lib/aws/s3/tree/child_collection.rb +104 -0
- data/lib/aws/s3/tree/leaf_node.rb +94 -0
- data/lib/aws/s3/tree/node.rb +22 -0
- data/lib/aws/s3/tree/parent.rb +87 -0
- data/lib/aws/s3/uploaded_part.rb +80 -0
- data/lib/aws/s3/uploaded_part_collection.rb +84 -0
- data/lib/aws/s3/website_configuration.rb +102 -0
- data/lib/aws/simple_db.rb +219 -0
- data/lib/aws/simple_db/attribute.rb +154 -0
- data/lib/aws/simple_db/attribute_collection.rb +231 -0
- data/lib/aws/simple_db/client.rb +287 -0
- data/lib/aws/simple_db/config.rb +20 -0
- data/lib/aws/simple_db/consistent_read_option.rb +42 -0
- data/lib/aws/simple_db/delete_attributes.rb +62 -0
- data/lib/aws/simple_db/domain.rb +121 -0
- data/lib/aws/simple_db/domain_collection.rb +86 -0
- data/lib/aws/simple_db/domain_metadata.rb +110 -0
- data/lib/aws/simple_db/errors.rb +55 -0
- data/lib/aws/simple_db/expect_condition_option.rb +45 -0
- data/lib/aws/simple_db/item.rb +93 -0
- data/lib/aws/simple_db/item_collection.rb +649 -0
- data/lib/aws/simple_db/item_data.rb +73 -0
- data/lib/aws/simple_db/put_attributes.rb +60 -0
- data/lib/aws/simple_db/request.rb +23 -0
- data/lib/aws/simple_email_service.rb +428 -0
- data/lib/aws/simple_email_service/client.rb +276 -0
- data/lib/aws/simple_email_service/config.rb +19 -0
- data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
- data/lib/aws/simple_email_service/errors.rb +22 -0
- data/lib/aws/simple_email_service/identity.rb +209 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/simple_email_service/quotas.rb +64 -0
- data/lib/aws/simple_email_service/request.rb +27 -0
- data/lib/aws/simple_workflow.rb +228 -0
- data/lib/aws/simple_workflow/activity_task.rb +173 -0
- data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
- data/lib/aws/simple_workflow/activity_type.rb +131 -0
- data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
- data/lib/aws/simple_workflow/client.rb +1204 -0
- data/lib/aws/simple_workflow/config.rb +18 -0
- data/lib/aws/simple_workflow/count.rb +49 -0
- data/lib/aws/simple_workflow/decision_task.rb +603 -0
- data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
- data/lib/aws/simple_workflow/domain.rb +122 -0
- data/lib/aws/simple_workflow/domain_collection.rb +169 -0
- data/lib/aws/simple_workflow/errors.rb +20 -0
- data/lib/aws/simple_workflow/history_event.rb +276 -0
- data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
- data/lib/aws/simple_workflow/option_formatters.rb +82 -0
- data/lib/aws/simple_workflow/request.rb +33 -0
- data/lib/aws/simple_workflow/resource.rb +94 -0
- data/lib/aws/simple_workflow/type.rb +89 -0
- data/lib/aws/simple_workflow/type_collection.rb +140 -0
- data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
- data/lib/aws/simple_workflow/workflow_type.rb +177 -0
- data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
- data/lib/aws/sns.rb +76 -0
- data/lib/aws/sns/client.rb +266 -0
- data/lib/aws/sns/config.rb +18 -0
- data/lib/aws/sns/errors.rb +22 -0
- data/lib/aws/sns/has_delivery_policy.rb +68 -0
- data/lib/aws/sns/policy.rb +47 -0
- data/lib/aws/sns/request.rb +23 -0
- data/lib/aws/sns/subscription.rb +144 -0
- data/lib/aws/sns/subscription_collection.rb +78 -0
- data/lib/aws/sns/topic.rb +403 -0
- data/lib/aws/sns/topic_collection.rb +62 -0
- data/lib/aws/sns/topic_subscription_collection.rb +54 -0
- data/lib/aws/sqs.rb +81 -0
- data/lib/aws/sqs/client.rb +258 -0
- data/lib/aws/sqs/config.rb +18 -0
- data/lib/aws/sqs/errors.rb +101 -0
- data/lib/aws/sqs/policy.rb +48 -0
- data/lib/aws/sqs/queue.rb +764 -0
- data/lib/aws/sqs/queue_collection.rb +174 -0
- data/lib/aws/sqs/received_message.rb +181 -0
- data/lib/aws/sqs/received_sns_message.rb +116 -0
- data/lib/aws/sqs/request.rb +67 -0
- data/lib/aws/storage_gateway.rb +73 -0
- data/lib/aws/storage_gateway/client.rb +472 -0
- data/lib/aws/storage_gateway/config.rb +18 -0
- data/lib/aws/storage_gateway/errors.rb +22 -0
- data/lib/aws/storage_gateway/request.rb +28 -0
- data/lib/aws/sts.rb +163 -0
- data/lib/aws/sts/client.rb +157 -0
- data/lib/aws/sts/config.rb +18 -0
- data/lib/aws/sts/errors.rb +22 -0
- data/lib/aws/sts/federated_session.rb +56 -0
- data/lib/aws/sts/policy.rb +30 -0
- data/lib/aws/sts/request.rb +29 -0
- data/lib/aws/sts/session.rb +48 -0
- data/lib/aws/version.rb +18 -0
- data/lib/net/http/connection_pool.rb +226 -0
- data/lib/net/http/connection_pool/connection.rb +189 -0
- data/lib/net/http/connection_pool/session.rb +126 -0
- data/rails/init.rb +15 -0
- metadata +632 -0
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
class SimpleDB
|
|
16
|
+
|
|
17
|
+
# Represents a single named item attribute in SimpleDB.
|
|
18
|
+
class Attribute
|
|
19
|
+
|
|
20
|
+
include Core::Model
|
|
21
|
+
include Enumerable
|
|
22
|
+
include ConsistentReadOption
|
|
23
|
+
include PutAttributes
|
|
24
|
+
include DeleteAttributes
|
|
25
|
+
|
|
26
|
+
# @private
|
|
27
|
+
def initialize item, name, options = {}
|
|
28
|
+
@item = item
|
|
29
|
+
@name = name
|
|
30
|
+
super
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @return [Item] The item this attribute belongs to.
|
|
34
|
+
attr_reader :item
|
|
35
|
+
|
|
36
|
+
# @return [String] The name of this attribute.
|
|
37
|
+
attr_reader :name
|
|
38
|
+
|
|
39
|
+
# Sets all values for this attribute, replacing current values.
|
|
40
|
+
#
|
|
41
|
+
# @example Setting a list of values
|
|
42
|
+
# attributes['colors'].set 'red', 'blue', 'green'
|
|
43
|
+
#
|
|
44
|
+
# @example Setting an array of values
|
|
45
|
+
# attributes['colors'].set ['red', 'blue']
|
|
46
|
+
#
|
|
47
|
+
# @param [String] values A list of attribute values to set.
|
|
48
|
+
# @return [nil]
|
|
49
|
+
def set *values
|
|
50
|
+
put(values, true)
|
|
51
|
+
nil
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Appends values to this attribute. Duplicate values are ignored
|
|
55
|
+
# by SimpleDB.
|
|
56
|
+
#
|
|
57
|
+
# @example Adding a list of values
|
|
58
|
+
#
|
|
59
|
+
# attributes['colors'].add 'red', 'blue', 'green'
|
|
60
|
+
#
|
|
61
|
+
# @example Adding an array of values
|
|
62
|
+
#
|
|
63
|
+
# attributes['colors'].add ['red', 'blue']
|
|
64
|
+
#
|
|
65
|
+
# @param [String] values A list of attribute values to add.
|
|
66
|
+
# @return [nil]
|
|
67
|
+
def add *values
|
|
68
|
+
put(values, false)
|
|
69
|
+
nil
|
|
70
|
+
end
|
|
71
|
+
alias_method :<<, :add
|
|
72
|
+
|
|
73
|
+
# Deletes this attribute or specific values from this attribute.
|
|
74
|
+
#
|
|
75
|
+
# @example Delete the attribute and all of its values
|
|
76
|
+
#
|
|
77
|
+
# item.attributes['color'].delete
|
|
78
|
+
#
|
|
79
|
+
# @example Delete specific attribute values
|
|
80
|
+
#
|
|
81
|
+
# item.attributes['color'].delete('red', 'blue')
|
|
82
|
+
#
|
|
83
|
+
# @param values One ore more values to remove from this attribute.
|
|
84
|
+
# If values is empty, then all attribute values are deleted
|
|
85
|
+
# (which deletes this attribute).
|
|
86
|
+
# @return [nil]
|
|
87
|
+
def delete *values
|
|
88
|
+
expect_opts = values.pop if values.last.kind_of?(Hash)
|
|
89
|
+
|
|
90
|
+
if values.empty?
|
|
91
|
+
delete_named_attributes(name, expect_opts || {})
|
|
92
|
+
else
|
|
93
|
+
delete_attribute_values(Hash[[[name, values]]].
|
|
94
|
+
merge(expect_opts || {}))
|
|
95
|
+
end
|
|
96
|
+
nil
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Yields once for each value on this attribute.
|
|
100
|
+
#
|
|
101
|
+
# @yield [attribute_value] Yields once for each domain in the account.
|
|
102
|
+
# @yieldparam [String] attribute_value
|
|
103
|
+
# @param [Hash] options
|
|
104
|
+
# @option options [Boolean] :consistent_read (false) A consistent read
|
|
105
|
+
# returns values that reflects all writes that received a successful
|
|
106
|
+
# response prior to the read.
|
|
107
|
+
# @return [nil]
|
|
108
|
+
def each options = {}, &block
|
|
109
|
+
|
|
110
|
+
resp = client.get_attributes(
|
|
111
|
+
:domain_name => item.domain.name,
|
|
112
|
+
:item_name => item.name,
|
|
113
|
+
:attribute_names => [name],
|
|
114
|
+
:consistent_read => consistent_read(options))
|
|
115
|
+
|
|
116
|
+
resp.attributes.each do |attribute|
|
|
117
|
+
yield(attribute.value)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
nil
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Returns all values for this attribute as an array of strings.
|
|
125
|
+
#
|
|
126
|
+
# @example
|
|
127
|
+
# item.attributes['ratings'].values
|
|
128
|
+
# #=> ['5', '3', '4']
|
|
129
|
+
#
|
|
130
|
+
# @param [Hash] options
|
|
131
|
+
# @option options [Boolean] :consistent_read (false) A consistent read
|
|
132
|
+
# returns values that reflects all writes that received a successful
|
|
133
|
+
# response prior to the read.
|
|
134
|
+
# @return [Array<String>] An array of attribute values
|
|
135
|
+
def values options = {}
|
|
136
|
+
values = []
|
|
137
|
+
self.each(options) do |value|
|
|
138
|
+
values << value
|
|
139
|
+
end
|
|
140
|
+
values
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# @private
|
|
144
|
+
protected
|
|
145
|
+
def put values, replace
|
|
146
|
+
expect_opts = values.pop if values.last.kind_of?(Hash)
|
|
147
|
+
do_put(attribute_hashes(Hash[[[name, values]]],
|
|
148
|
+
replace),
|
|
149
|
+
expect_opts || {})
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
@@ -0,0 +1,231 @@
|
|
|
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
|
+
class SimpleDB
|
|
16
|
+
class AttributeCollection
|
|
17
|
+
|
|
18
|
+
include Core::Model
|
|
19
|
+
include Enumerable
|
|
20
|
+
include ConsistentReadOption
|
|
21
|
+
include PutAttributes
|
|
22
|
+
include DeleteAttributes
|
|
23
|
+
|
|
24
|
+
# @param [Item] item The item to create an attribute collection for.
|
|
25
|
+
# @return [AttributeCollection]
|
|
26
|
+
def initialize item, options = {}
|
|
27
|
+
@item = item
|
|
28
|
+
super
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @return [Item] The item this collection belongs to.
|
|
32
|
+
attr_reader :item
|
|
33
|
+
|
|
34
|
+
# Returns an Attribute with the given name.
|
|
35
|
+
#
|
|
36
|
+
# @note This does not make a request to SimpleDB.
|
|
37
|
+
#
|
|
38
|
+
# You can ask for any attribute by name. The attribute may or may not
|
|
39
|
+
# actually exist in SimpleDB.
|
|
40
|
+
#
|
|
41
|
+
# @example Get an attribute by symbol or string name
|
|
42
|
+
# colors = item.attributes[:colors]
|
|
43
|
+
# colors = item.attributes['colors']
|
|
44
|
+
# @param [String, Symbol] attribute_name name of the attribute to get.
|
|
45
|
+
# @return [Item] An item with the given name.
|
|
46
|
+
def [] attribute_name
|
|
47
|
+
Attribute.new(item, attribute_name.to_s)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Sets the values for a given attribute.
|
|
51
|
+
#
|
|
52
|
+
# @example Replace all of the values for the named attribute.
|
|
53
|
+
# item.attributes[:color] = 'red', 'blue'
|
|
54
|
+
# @return This method returns the values passed to it.
|
|
55
|
+
def []= attribute_name, *values
|
|
56
|
+
self[attribute_name].set(*values)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Yields all attribute values with their names.
|
|
60
|
+
#
|
|
61
|
+
# @example Getting all values for an item
|
|
62
|
+
#
|
|
63
|
+
# item.attributes.each_value do |name, value|
|
|
64
|
+
# puts "#{name}: #{value}"
|
|
65
|
+
# end
|
|
66
|
+
#
|
|
67
|
+
# @yield [attribute_name, attribute_value] Yields once for every
|
|
68
|
+
# attribute value on the item.
|
|
69
|
+
# @yieldparam [String] attribute_name
|
|
70
|
+
# @yieldparam [String] attribute_value
|
|
71
|
+
# @param [Hash] options
|
|
72
|
+
# @option options [Boolean] :consistent_read (false) Causes this
|
|
73
|
+
# method to yield the most current attributes for this item.
|
|
74
|
+
# @return [nil]
|
|
75
|
+
def each_value options = {}, &block
|
|
76
|
+
|
|
77
|
+
list = client.get_attributes(
|
|
78
|
+
:domain_name => item.domain.name,
|
|
79
|
+
:item_name => item.name,
|
|
80
|
+
:consistent_read => consistent_read(options))
|
|
81
|
+
|
|
82
|
+
list.attributes.each do |attribute|
|
|
83
|
+
attribute_name = attribute.name
|
|
84
|
+
attribute_value = attribute.value
|
|
85
|
+
yield(attribute_name, attribute_value)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
nil
|
|
89
|
+
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Yields all attribute for this item.
|
|
93
|
+
#
|
|
94
|
+
# @example Getting all attributes for an item
|
|
95
|
+
#
|
|
96
|
+
# item.attributes.each do |attribute|
|
|
97
|
+
# puts attribute.name
|
|
98
|
+
# end
|
|
99
|
+
#
|
|
100
|
+
# @yield [attribute] Yields once for every attribute
|
|
101
|
+
# on the item. Yields each attribute only one time, even it
|
|
102
|
+
# has multiple values.
|
|
103
|
+
# @yieldparam [Attribute] attribute
|
|
104
|
+
# @param [Hash] options
|
|
105
|
+
# @option options [Boolean] :consistent_read (false) Causes this
|
|
106
|
+
# method to yield the most current attributes for this item.
|
|
107
|
+
# @return [nil]
|
|
108
|
+
def each options = {}, &block
|
|
109
|
+
yielded = {}
|
|
110
|
+
each_value(options) do |attribute_name, attribute_value|
|
|
111
|
+
unless yielded[attribute_name]
|
|
112
|
+
attribute = self[attribute_name]
|
|
113
|
+
yield(attribute)
|
|
114
|
+
yielded[attribute_name] = true
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
nil
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Replaces attributes for the {#item}.
|
|
121
|
+
#
|
|
122
|
+
# The +attributes_hash+ should have attribute names as keys. The
|
|
123
|
+
# hash values should be either strings or arrays of strings.
|
|
124
|
+
#
|
|
125
|
+
# Attributes not named in this hash are left alone. Attributes named
|
|
126
|
+
# in this hash are replaced.
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
#
|
|
130
|
+
# item.attributes.set(
|
|
131
|
+
# 'colors' => ['red', 'blue'],
|
|
132
|
+
# 'category' => 'clearance')
|
|
133
|
+
#
|
|
134
|
+
# @param [Hash] attributes
|
|
135
|
+
# @return [nil]
|
|
136
|
+
def replace attributes
|
|
137
|
+
do_put(attribute_hashes(attributes, true), attributes)
|
|
138
|
+
end
|
|
139
|
+
alias_method :set, :replace
|
|
140
|
+
|
|
141
|
+
# Adds values to attributes on the {#item}.
|
|
142
|
+
#
|
|
143
|
+
# The +attributes_hash+ should have attribute names as keys. The
|
|
144
|
+
# hash values should be either strings or arrays of strings.
|
|
145
|
+
#
|
|
146
|
+
# @example
|
|
147
|
+
#
|
|
148
|
+
# item.attributes.add(
|
|
149
|
+
# 'colors' => ['red', 'blue'],
|
|
150
|
+
# 'category' => 'clearance')
|
|
151
|
+
#
|
|
152
|
+
# @param[Hash] attribute_hash
|
|
153
|
+
# @return [nil]
|
|
154
|
+
def add attributes
|
|
155
|
+
do_put(attribute_hashes(attributes, false), attributes)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Perform a mixed update of added and replace attributes.
|
|
159
|
+
#
|
|
160
|
+
# item.attributes.put(
|
|
161
|
+
# :add => { 'colors' => %w(green blue), 'tags' => 'cool' }
|
|
162
|
+
# :replace => { 'quantity' => 5 }
|
|
163
|
+
# )
|
|
164
|
+
#
|
|
165
|
+
# @param [Hash] options
|
|
166
|
+
# @option options [Hash] :add A hash of attribute names and values to
|
|
167
|
+
# append to this item.
|
|
168
|
+
# @option options [Hash] :replace A hash of attribute names and values to
|
|
169
|
+
# add to this item. If there are currently attributes of the same
|
|
170
|
+
# name they will be replaced (not appended to).
|
|
171
|
+
# @option options [Hash] :replace
|
|
172
|
+
# @return [nil]
|
|
173
|
+
def put options = {}
|
|
174
|
+
add = options[:add] || {}
|
|
175
|
+
replace = options[:replace] || {}
|
|
176
|
+
attributes = attribute_hashes(add, false)
|
|
177
|
+
attributes += attribute_hashes(replace, true)
|
|
178
|
+
do_put(attributes, options)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Returns a hash of all attributes (names and values).
|
|
182
|
+
# The attribute names are strings and the values are
|
|
183
|
+
# arrays of strings.
|
|
184
|
+
#
|
|
185
|
+
# @example
|
|
186
|
+
# item.attributes.to_h
|
|
187
|
+
# #=> { 'colors' => ['red','blue'], 'size' => ['large'] }
|
|
188
|
+
#
|
|
189
|
+
# @param [Hash] options
|
|
190
|
+
# @option options [Boolean] :consistent_read (false) Causes this
|
|
191
|
+
# method to return the most current attributes values.
|
|
192
|
+
# @return [Hash]
|
|
193
|
+
def to_h options = {}
|
|
194
|
+
hash = {}
|
|
195
|
+
each_value(options) do |attribute_name,attribute_value|
|
|
196
|
+
hash[attribute_name] ||= []
|
|
197
|
+
hash[attribute_name] << attribute_value
|
|
198
|
+
end
|
|
199
|
+
hash
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# Delete one or more attributes from {#item}.
|
|
203
|
+
#
|
|
204
|
+
# @example Delete a list of attributes by name (accepts a list or array)
|
|
205
|
+
# item.attributes.delete 'size', 'color'
|
|
206
|
+
# item.attributes.delete %w(size color)
|
|
207
|
+
#
|
|
208
|
+
# @example Delete a specific list of attribute values
|
|
209
|
+
# item.attributes.delete(:color => 'red', :tags => %w(special limited))
|
|
210
|
+
#
|
|
211
|
+
# @overload delete(attributes)
|
|
212
|
+
# @param [Hash] attributes A hash of attribute names and values to
|
|
213
|
+
# delete.
|
|
214
|
+
# @return [nil]
|
|
215
|
+
#
|
|
216
|
+
# @overload delete(*attribute_names)
|
|
217
|
+
# @param [String] A list of attribute names to delete.
|
|
218
|
+
# @return [nil]
|
|
219
|
+
#
|
|
220
|
+
def delete *args
|
|
221
|
+
if args.size == 1 and args.first.kind_of?(Hash)
|
|
222
|
+
delete_attribute_values(args.first)
|
|
223
|
+
else
|
|
224
|
+
delete_named_attributes(*args)
|
|
225
|
+
end
|
|
226
|
+
nil
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
end
|
|
@@ -0,0 +1,287 @@
|
|
|
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
|
+
class SimpleDB
|
|
16
|
+
|
|
17
|
+
# Client class for Amazon SimpleDB.
|
|
18
|
+
class Client < Core::QueryClient
|
|
19
|
+
|
|
20
|
+
# @private
|
|
21
|
+
REGION_US_E1 = 'sdb.amazonaws.com'
|
|
22
|
+
|
|
23
|
+
# @private
|
|
24
|
+
REGION_US_W1 = 'sdb.us-west-1.amazonaws.com'
|
|
25
|
+
|
|
26
|
+
# @private
|
|
27
|
+
REGION_EU_W1 = 'sdb.eu-west-1.amazonaws.com'
|
|
28
|
+
|
|
29
|
+
# @private
|
|
30
|
+
REGION_APAC_SE1 = 'sdb.ap-southeast-1.amazonaws.com'
|
|
31
|
+
|
|
32
|
+
# @private
|
|
33
|
+
CACHEABLE_REQUESTS = Set[
|
|
34
|
+
:domain_metadata,
|
|
35
|
+
:get_attributes,
|
|
36
|
+
:list_domains,
|
|
37
|
+
:select,
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
# @param [String] name
|
|
41
|
+
# @return [Boolean] Returns true if the given name is a valid
|
|
42
|
+
# Amazon SimpleDB domain name.
|
|
43
|
+
# @private
|
|
44
|
+
def valid_domain_name? name
|
|
45
|
+
self.class.valid_domain_name?(name)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @param [String] name
|
|
49
|
+
# @return [Boolean] Returns true if the given name is a valid
|
|
50
|
+
# Amazon SimpleDB domain name.
|
|
51
|
+
def self.valid_domain_name? name
|
|
52
|
+
name.to_s =~ /^[a-z_\-\.]{3,255}$/i ? true : false
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# client methods #
|
|
56
|
+
|
|
57
|
+
# @!method batch_delete_attributes(options = {})
|
|
58
|
+
# Calls the BatchDeleteAttributes API operation.
|
|
59
|
+
# @param [Hash] options
|
|
60
|
+
# * +:domain_name+ - *required* - (String) The name of the domain in
|
|
61
|
+
# which the attributes are being deleted.
|
|
62
|
+
# * +:items+ - *required* - (Array<Hash>) A list of items on which to
|
|
63
|
+
# perform the operation.
|
|
64
|
+
# * +:name+ - *required* - (String)
|
|
65
|
+
# * +:attributes+ - (Array<Hash>)
|
|
66
|
+
# * +:name+ - *required* - (String) The name of the attribute.
|
|
67
|
+
# * +:value+ - *required* - (String) The value of the attribute.
|
|
68
|
+
# @return [Core::Response]
|
|
69
|
+
# The #data method of the response object returns
|
|
70
|
+
# a hash with the following structure:
|
|
71
|
+
# * +:response_metadata+ - (Hash)
|
|
72
|
+
# * +:box_usage+ - (Numeric)
|
|
73
|
+
# * +:response_id+ - (String)
|
|
74
|
+
|
|
75
|
+
# @!method batch_put_attributes(options = {})
|
|
76
|
+
# Calls the BatchPutAttributes API operation.
|
|
77
|
+
# @param [Hash] options
|
|
78
|
+
# * +:domain_name+ - *required* - (String) The name of the domain in
|
|
79
|
+
# which the attributes are being stored.
|
|
80
|
+
# * +:items+ - *required* - (Array<Hash>) A list of items on which to
|
|
81
|
+
# perform the operation.
|
|
82
|
+
# * +:name+ - *required* - (String) The name of the replaceable item.
|
|
83
|
+
# * +:attributes+ - *required* - (Array<Hash>) The list of attributes
|
|
84
|
+
# for a replaceable item.
|
|
85
|
+
# * +:name+ - *required* - (String) The name of the replaceable
|
|
86
|
+
# attribute.
|
|
87
|
+
# * +:value+ - *required* - (String) The value of the replaceable
|
|
88
|
+
# attribute.
|
|
89
|
+
# * +:replace+ - (Boolean) A flag specifying whether or not to
|
|
90
|
+
# replace the attribute/value pair or to add a new
|
|
91
|
+
# attribute/value pair. The default setting is +false+ .
|
|
92
|
+
# @return [Core::Response]
|
|
93
|
+
# The #data method of the response object returns
|
|
94
|
+
# a hash with the following structure:
|
|
95
|
+
# * +:response_metadata+ - (Hash)
|
|
96
|
+
# * +:box_usage+ - (Numeric)
|
|
97
|
+
# * +:response_id+ - (String)
|
|
98
|
+
|
|
99
|
+
# @!method create_domain(options = {})
|
|
100
|
+
# Calls the CreateDomain API operation.
|
|
101
|
+
# @param [Hash] options
|
|
102
|
+
# * +:domain_name+ - *required* - (String) The name of the domain to
|
|
103
|
+
# create. The name can range between 3 and 255 characters and can
|
|
104
|
+
# contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'.
|
|
105
|
+
# @return [Core::Response]
|
|
106
|
+
# The #data method of the response object returns
|
|
107
|
+
# a hash with the following structure:
|
|
108
|
+
# * +:response_metadata+ - (Hash)
|
|
109
|
+
# * +:box_usage+ - (Numeric)
|
|
110
|
+
# * +:response_id+ - (String)
|
|
111
|
+
|
|
112
|
+
# @!method delete_attributes(options = {})
|
|
113
|
+
# Calls the DeleteAttributes API operation.
|
|
114
|
+
# @param [Hash] options
|
|
115
|
+
# * +:domain_name+ - *required* - (String) The name of the domain in
|
|
116
|
+
# which to perform the operation.
|
|
117
|
+
# * +:item_name+ - *required* - (String) The name of the item. Similar
|
|
118
|
+
# to rows on a spreadsheet, items represent individual objects that
|
|
119
|
+
# contain one or more value-attribute pairs.
|
|
120
|
+
# * +:attributes+ - (Array<Hash>) A list of Attributes. Similar to
|
|
121
|
+
# columns on a spreadsheet, attributes represent categories of data
|
|
122
|
+
# that can be assigned to items.
|
|
123
|
+
# * +:name+ - *required* - (String) The name of the attribute.
|
|
124
|
+
# * +:value+ - (String) The value of the attribute.
|
|
125
|
+
# * +:expected+ - (Hash) The update condition which, if specified,
|
|
126
|
+
# determines whether the specified attributes will be deleted or not.
|
|
127
|
+
# The update condition must be satisfied in order for this request to
|
|
128
|
+
# be processed and the attributes to be deleted.
|
|
129
|
+
# * +:name+ - (String) The name of the attribute involved in the
|
|
130
|
+
# condition.
|
|
131
|
+
# * +:value+ - (String) The value of an attribute. This value can
|
|
132
|
+
# only be specified when the Exists parameter is equal to +true+ .
|
|
133
|
+
# * +:exists+ - (Boolean) A value specifying whether or not the
|
|
134
|
+
# specified attribute must exist with the specified value in order
|
|
135
|
+
# for the update condition to be satisfied. Specify +true+ if the
|
|
136
|
+
# attribute must exist for the update condition to be satisfied.
|
|
137
|
+
# Specify +false+ if the attribute should not exist in order for
|
|
138
|
+
# the update condition to be satisfied.
|
|
139
|
+
# @return [Core::Response]
|
|
140
|
+
# The #data method of the response object returns
|
|
141
|
+
# a hash with the following structure:
|
|
142
|
+
# * +:response_metadata+ - (Hash)
|
|
143
|
+
# * +:box_usage+ - (Numeric)
|
|
144
|
+
# * +:response_id+ - (String)
|
|
145
|
+
|
|
146
|
+
# @!method delete_domain(options = {})
|
|
147
|
+
# Calls the DeleteDomain API operation.
|
|
148
|
+
# @param [Hash] options
|
|
149
|
+
# * +:domain_name+ - *required* - (String) The name of the domain to
|
|
150
|
+
# delete.
|
|
151
|
+
# @return [Core::Response]
|
|
152
|
+
# The #data method of the response object returns
|
|
153
|
+
# a hash with the following structure:
|
|
154
|
+
# * +:response_metadata+ - (Hash)
|
|
155
|
+
# * +:box_usage+ - (Numeric)
|
|
156
|
+
# * +:response_id+ - (String)
|
|
157
|
+
|
|
158
|
+
# @!method domain_metadata(options = {})
|
|
159
|
+
# Calls the DomainMetadata API operation.
|
|
160
|
+
# @param [Hash] options
|
|
161
|
+
# * +:domain_name+ - *required* - (String) The name of the domain for
|
|
162
|
+
# which to display the metadata of.
|
|
163
|
+
# @return [Core::Response]
|
|
164
|
+
# The #data method of the response object returns
|
|
165
|
+
# a hash with the following structure:
|
|
166
|
+
# * +:item_count+ - (Integer)
|
|
167
|
+
# * +:item_names_size_bytes+ - (Integer)
|
|
168
|
+
# * +:attribute_name_count+ - (Integer)
|
|
169
|
+
# * +:attribute_names_size_bytes+ - (Integer)
|
|
170
|
+
# * +:attribute_value_count+ - (Integer)
|
|
171
|
+
# * +:attribute_values_size_bytes+ - (Integer)
|
|
172
|
+
# * +:timestamp+ - (Integer)
|
|
173
|
+
# * +:response_metadata+ - (Hash)
|
|
174
|
+
# * +:box_usage+ - (Numeric)
|
|
175
|
+
# * +:response_id+ - (String)
|
|
176
|
+
|
|
177
|
+
# @!method get_attributes(options = {})
|
|
178
|
+
# Calls the GetAttributes API operation.
|
|
179
|
+
# @param [Hash] options
|
|
180
|
+
# * +:domain_name+ - *required* - (String) The name of the domain in
|
|
181
|
+
# which to perform the operation.
|
|
182
|
+
# * +:item_name+ - *required* - (String) The name of the item.
|
|
183
|
+
# * +:attribute_names+ - (Array<String>) The names of the attributes.
|
|
184
|
+
# * +:consistent_read+ - (Boolean) Determines whether or not strong
|
|
185
|
+
# consistency should be enforced when data is read from SimpleDB. If
|
|
186
|
+
# +true+ , any data previously written to SimpleDB will be returned.
|
|
187
|
+
# Otherwise, results will be consistent eventually, and the client
|
|
188
|
+
# may not see data that was written immediately before your read.
|
|
189
|
+
# @return [Core::Response]
|
|
190
|
+
# The #data method of the response object returns
|
|
191
|
+
# a hash with the following structure:
|
|
192
|
+
# * +:attributes+ - (Array<Hash>)
|
|
193
|
+
# * +:name+ - (String)
|
|
194
|
+
# * +:alternate_name_encoding+ - (String)
|
|
195
|
+
# * +:value+ - (String)
|
|
196
|
+
# * +:alternate_value_encoding+ - (String)
|
|
197
|
+
# * +:response_metadata+ - (Hash)
|
|
198
|
+
# * +:box_usage+ - (Numeric)
|
|
199
|
+
# * +:response_id+ - (String)
|
|
200
|
+
|
|
201
|
+
# @!method list_domains(options = {})
|
|
202
|
+
# Calls the ListDomains API operation.
|
|
203
|
+
# @param [Hash] options
|
|
204
|
+
# * +:max_number_of_domains+ - (Integer) The maximum number of domain
|
|
205
|
+
# names you want returned. The range is 1 to 100. The default setting
|
|
206
|
+
# is 100.
|
|
207
|
+
# * +:next_token+ - (String) A string informing Amazon SimpleDB where
|
|
208
|
+
# to start the next list of domain names.
|
|
209
|
+
# @return [Core::Response]
|
|
210
|
+
# The #data method of the response object returns
|
|
211
|
+
# a hash with the following structure:
|
|
212
|
+
# * +:domain_names+ - (Array<String>)
|
|
213
|
+
# * +:next_token+ - (String)
|
|
214
|
+
# * +:response_metadata+ - (Hash)
|
|
215
|
+
# * +:box_usage+ - (Numeric)
|
|
216
|
+
# * +:response_id+ - (String)
|
|
217
|
+
|
|
218
|
+
# @!method put_attributes(options = {})
|
|
219
|
+
# Calls the PutAttributes API operation.
|
|
220
|
+
# @param [Hash] options
|
|
221
|
+
# * +:domain_name+ - *required* - (String) The name of the domain in
|
|
222
|
+
# which to perform the operation.
|
|
223
|
+
# * +:item_name+ - *required* - (String) The name of the item.
|
|
224
|
+
# * +:attributes+ - *required* - (Array<Hash>) The list of attributes.
|
|
225
|
+
# * +:name+ - *required* - (String) The name of the replaceable
|
|
226
|
+
# attribute.
|
|
227
|
+
# * +:value+ - *required* - (String) The value of the replaceable
|
|
228
|
+
# attribute.
|
|
229
|
+
# * +:replace+ - (Boolean) A flag specifying whether or not to
|
|
230
|
+
# replace the attribute/value pair or to add a new attribute/value
|
|
231
|
+
# pair. The default setting is +false+ .
|
|
232
|
+
# * +:expected+ - (Hash) The update condition which, if specified,
|
|
233
|
+
# determines whether the specified attributes will be updated or not.
|
|
234
|
+
# The update condition must be satisfied in order for this request to
|
|
235
|
+
# be processed and the attributes to be updated.
|
|
236
|
+
# * +:name+ - (String) The name of the attribute involved in the
|
|
237
|
+
# condition.
|
|
238
|
+
# * +:value+ - (String) The value of an attribute. This value can
|
|
239
|
+
# only be specified when the Exists parameter is equal to +true+ .
|
|
240
|
+
# * +:exists+ - (Boolean) A value specifying whether or not the
|
|
241
|
+
# specified attribute must exist with the specified value in order
|
|
242
|
+
# for the update condition to be satisfied. Specify +true+ if the
|
|
243
|
+
# attribute must exist for the update condition to be satisfied.
|
|
244
|
+
# Specify +false+ if the attribute should not exist in order for
|
|
245
|
+
# the update condition to be satisfied.
|
|
246
|
+
# @return [Core::Response]
|
|
247
|
+
# The #data method of the response object returns
|
|
248
|
+
# a hash with the following structure:
|
|
249
|
+
# * +:response_metadata+ - (Hash)
|
|
250
|
+
# * +:box_usage+ - (Numeric)
|
|
251
|
+
# * +:response_id+ - (String)
|
|
252
|
+
|
|
253
|
+
# @!method select(options = {})
|
|
254
|
+
# Calls the Select API operation.
|
|
255
|
+
# @param [Hash] options
|
|
256
|
+
# * +:select_expression+ - *required* - (String) The expression used to
|
|
257
|
+
# query the domain.
|
|
258
|
+
# * +:next_token+ - (String) A string informing Amazon SimpleDB where
|
|
259
|
+
# to start the next list of ItemNames.
|
|
260
|
+
# * +:consistent_read+ - (Boolean) Determines whether or not strong
|
|
261
|
+
# consistency should be enforced when data is read from SimpleDB. If
|
|
262
|
+
# +true+ , any data previously written to SimpleDB will be returned.
|
|
263
|
+
# Otherwise, results will be consistent eventually, and the client
|
|
264
|
+
# may not see data that was written immediately before your read.
|
|
265
|
+
# @return [Core::Response]
|
|
266
|
+
# The #data method of the response object returns
|
|
267
|
+
# a hash with the following structure:
|
|
268
|
+
# * +:items+ - (Array<Hash>)
|
|
269
|
+
# * +:name+ - (String)
|
|
270
|
+
# * +:alternate_name_encoding+ - (String)
|
|
271
|
+
# * +:attributes+ - (Array<Hash>)
|
|
272
|
+
# * +:name+ - (String)
|
|
273
|
+
# * +:alternate_name_encoding+ - (String)
|
|
274
|
+
# * +:value+ - (String)
|
|
275
|
+
# * +:alternate_value_encoding+ - (String)
|
|
276
|
+
# * +:next_token+ - (String)
|
|
277
|
+
# * +:response_metadata+ - (Hash)
|
|
278
|
+
# * +:box_usage+ - (Numeric)
|
|
279
|
+
# * +:response_id+ - (String)
|
|
280
|
+
|
|
281
|
+
# end client methods #
|
|
282
|
+
|
|
283
|
+
define_client_methods('2009-04-15')
|
|
284
|
+
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
end
|