aws_sdk 3.1.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/lib/aws-sdk.rb +14 -0
- data/lib/aws.rb +49 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +791 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +303 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +540 -0
- data/lib/aws/api_config/EC2-2011-12-15.yml +3638 -0
- data/lib/aws/api_config/EC2-2012-04-01.yml +3739 -0
- data/lib/aws/api_config/ELB-2011-08-15.yml +512 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1221 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +248 -0
- data/lib/aws/api_config/SQS-2011-10-01.yml +314 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +54 -0
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +305 -0
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +231 -0
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +721 -0
- data/lib/aws/auto_scaling.rb +162 -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 +765 -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 +150 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +144 -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 +23 -0
- data/lib/aws/auto_scaling/scaling_policy.rb +125 -0
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
- data/lib/aws/auto_scaling/scaling_policy_options.rb +61 -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 +270 -0
- data/lib/aws/cloud_formation/client.rb +339 -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 +256 -0
- data/lib/aws/cloud_formation/stack_collection.rb +206 -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 +72 -0
- data/lib/aws/cloud_formation/stack_summary.rb +71 -0
- data/lib/aws/cloud_formation/stack_summary_collection.rb +127 -0
- data/lib/aws/core.rb +474 -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 +541 -0
- data/lib/aws/core/client/query_json.rb +110 -0
- data/lib/aws/core/client/query_xml.rb +122 -0
- data/lib/aws/core/collection.rb +234 -0
- data/lib/aws/core/collection/limitable.rb +99 -0
- data/lib/aws/core/collection/simple.rb +90 -0
- data/lib/aws/core/configuration.rb +445 -0
- data/lib/aws/core/data.rb +242 -0
- data/lib/aws/core/default_signer.rb +67 -0
- data/lib/aws/core/http/curb_handler.rb +136 -0
- data/lib/aws/core/http/handler.rb +77 -0
- data/lib/aws/core/http/httparty_handler.rb +114 -0
- data/lib/aws/core/http/net_http_handler.rb +85 -0
- data/lib/aws/core/http/request.rb +250 -0
- data/lib/aws/core/http/response.rb +74 -0
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +47 -0
- data/lib/aws/core/lazy_error_classes.rb +90 -0
- data/lib/aws/core/log_formatter.rb +454 -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 +700 -0
- data/lib/aws/core/page_result.rb +73 -0
- data/lib/aws/core/policy.rb +916 -0
- data/lib/aws/core/resource.rb +408 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +202 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/service_interface.rb +61 -0
- data/lib/aws/core/session_signer.rb +90 -0
- data/lib/aws/core/signature/version_2.rb +42 -0
- data/lib/aws/core/signature/version_3.rb +73 -0
- data/lib/aws/core/signature/version_3_http.rb +72 -0
- data/lib/aws/core/signature/version_4.rb +138 -0
- data/lib/aws/core/uri_escape.rb +42 -0
- data/lib/aws/core/xml/frame.rb +242 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +299 -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/dynamo_db.rb +213 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +460 -0
- data/lib/aws/dynamo_db/batch_get.rb +206 -0
- data/lib/aws/dynamo_db/batch_write.rb +251 -0
- data/lib/aws/dynamo_db/client.rb +888 -0
- data/lib/aws/dynamo_db/config.rb +20 -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 +130 -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 +47 -0
- data/lib/aws/dynamo_db/request.rb +28 -0
- data/lib/aws/dynamo_db/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +489 -0
- data/lib/aws/dynamo_db/table_collection.rb +165 -0
- data/lib/aws/dynamo_db/types.rb +86 -0
- data/lib/aws/ec2.rb +431 -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 +87 -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 +4121 -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 +157 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
- data/lib/aws/ec2/errors.rb +32 -0
- data/lib/aws/ec2/filtered_collection.rb +90 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +254 -0
- data/lib/aws/ec2/image_collection.rb +228 -0
- data/lib/aws/ec2/instance.rb +669 -0
- data/lib/aws/ec2/instance_collection.rb +346 -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 +97 -0
- data/lib/aws/ec2/region_collection.rb +51 -0
- data/lib/aws/ec2/request.rb +22 -0
- data/lib/aws/ec2/reserved_instances.rb +53 -0
- data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +58 -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 +113 -0
- data/lib/aws/ec2/route_table_collection.rb +72 -0
- data/lib/aws/ec2/security_group.rb +458 -0
- data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +63 -0
- data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +61 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +128 -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 +131 -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 +170 -0
- data/lib/aws/ec2/volume_collection.rb +97 -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/elb.rb +65 -0
- data/lib/aws/elb/availability_zone_collection.rb +138 -0
- data/lib/aws/elb/backend_server_policy_collection.rb +140 -0
- data/lib/aws/elb/client.rb +539 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +174 -0
- data/lib/aws/elb/listener.rb +189 -0
- data/lib/aws/elb/listener_collection.rb +119 -0
- data/lib/aws/elb/listener_opts.rb +45 -0
- data/lib/aws/elb/load_balancer.rb +253 -0
- data/lib/aws/elb/load_balancer_collection.rb +113 -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 +23 -0
- data/lib/aws/errors.rb +122 -0
- data/lib/aws/iam.rb +418 -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 +1609 -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 +71 -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/rails.rb +195 -0
- data/lib/aws/record.rb +116 -0
- data/lib/aws/record/abstract_base.rb +645 -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 +182 -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 +694 -0
- data/lib/aws/record/validator.rb +237 -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/s3.rb +135 -0
- data/lib/aws/s3/access_control_list.rb +250 -0
- data/lib/aws/s3/acl_object.rb +264 -0
- data/lib/aws/s3/bucket.rb +393 -0
- data/lib/aws/s3/bucket_collection.rb +143 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +360 -0
- data/lib/aws/s3/bucket_version_collection.rb +77 -0
- data/lib/aws/s3/client.rb +1184 -0
- data/lib/aws/s3/client/xml.rb +177 -0
- data/lib/aws/s3/config.rb +26 -0
- data/lib/aws/s3/data_options.rb +100 -0
- data/lib/aws/s3/errors.rb +81 -0
- data/lib/aws/s3/multipart_upload.rb +317 -0
- data/lib/aws/s3/multipart_upload_collection.rb +68 -0
- data/lib/aws/s3/object_collection.rb +337 -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 +143 -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 +553 -0
- data/lib/aws/s3/request.rb +201 -0
- data/lib/aws/s3/s3_object.rb +1037 -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/simple_db.rb +217 -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 +349 -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 +113 -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 +426 -0
- data/lib/aws/simple_email_service/client.rb +286 -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 +91 -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 +29 -0
- data/lib/aws/simple_workflow.rb +226 -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 +1434 -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 +601 -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 +36 -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 +74 -0
- data/lib/aws/sns/client.rb +371 -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 +80 -0
- data/lib/aws/sns/topic.rb +403 -0
- data/lib/aws/sns/topic_collection.rb +67 -0
- data/lib/aws/sns/topic_subscription_collection.rb +55 -0
- data/lib/aws/sqs.rb +79 -0
- data/lib/aws/sqs/client.rb +360 -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 +725 -0
- data/lib/aws/sqs/queue_collection.rb +170 -0
- data/lib/aws/sqs/received_message.rb +181 -0
- data/lib/aws/sqs/received_sns_message.rb +112 -0
- data/lib/aws/sqs/request.rb +43 -0
- data/lib/aws/sts.rb +152 -0
- data/lib/aws/sts/client.rb +105 -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/net/http/connection_pool.rb +210 -0
- data/lib/net/http/connection_pool/connection.rb +132 -0
- data/lib/net/http/connection_pool/session.rb +93 -0
- data/lib/user.rb +49 -0
- metadata +433 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Copyright 2011-2012 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
|
+
AWS::Core::Configuration.module_eval do
|
|
15
|
+
|
|
16
|
+
add_service 'SimpleDB', 'simple_db', 'sdb.amazonaws.com'
|
|
17
|
+
|
|
18
|
+
add_option :simple_db_consistent_reads, false, :boolean => true
|
|
19
|
+
|
|
20
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Copyright 2011-2012 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
|
+
# @private
|
|
18
|
+
module ConsistentReadOption
|
|
19
|
+
|
|
20
|
+
# Determines if SimpleDB should be read consistently or not.
|
|
21
|
+
#
|
|
22
|
+
# Precedence is given to:
|
|
23
|
+
#
|
|
24
|
+
# * +:consistent_read+ option
|
|
25
|
+
# * SimpleDB.consistent_reads block value
|
|
26
|
+
# * AWS.config.simple_db_consistent_reads?
|
|
27
|
+
#
|
|
28
|
+
# @return [Boolean] Returns true if a read should be made consistently
|
|
29
|
+
# to SimpleDB.
|
|
30
|
+
def consistent_read options
|
|
31
|
+
if options.has_key?(:consistent_read)
|
|
32
|
+
options[:consistent_read] ? true : false
|
|
33
|
+
elsif SimpleDB.send(:in_consistent_reads_block?)
|
|
34
|
+
SimpleDB.send(:consistent_reads_state)
|
|
35
|
+
else
|
|
36
|
+
config.simple_db_consistent_reads?
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Copyright 2011-2012 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
|
+
# @private
|
|
18
|
+
module DeleteAttributes
|
|
19
|
+
|
|
20
|
+
include ExpectConditionOption
|
|
21
|
+
|
|
22
|
+
# @private
|
|
23
|
+
protected
|
|
24
|
+
def delete_named_attributes *attribute_names
|
|
25
|
+
expect_opts = attribute_names.pop if attribute_names.last.kind_of?(Hash)
|
|
26
|
+
attributes = attribute_names.flatten.collect{|n| { :name => n.to_s } }
|
|
27
|
+
opts = {
|
|
28
|
+
:domain_name => item.domain.name,
|
|
29
|
+
:item_name => item.name,
|
|
30
|
+
:attributes => attributes,
|
|
31
|
+
:expected => expect_condition_opts(expect_opts || {})
|
|
32
|
+
}
|
|
33
|
+
opts.delete(:expected) if opts[:expected].empty?
|
|
34
|
+
client.delete_attributes(opts) unless attributes.empty?
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# @private
|
|
38
|
+
protected
|
|
39
|
+
def delete_attribute_values(attributes)
|
|
40
|
+
opts = {
|
|
41
|
+
:domain_name => item.domain.name,
|
|
42
|
+
:item_name => item.name,
|
|
43
|
+
:attributes => [],
|
|
44
|
+
:expected => expect_condition_opts(attributes)
|
|
45
|
+
}
|
|
46
|
+
attributes.each do |name, values|
|
|
47
|
+
if name != :"if" && name != :"unless"
|
|
48
|
+
[values].flatten.each do |value|
|
|
49
|
+
attribute_value = { :name => name.to_s }
|
|
50
|
+
attribute_value[:value] = value unless value == :all
|
|
51
|
+
opts[:attributes] << attribute_value
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
opts.delete(:expected) if opts[:expected].empty?
|
|
56
|
+
client.delete_attributes(opts)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Copyright 2011-2012 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 domain in SimpleDB.
|
|
18
|
+
#
|
|
19
|
+
# Domains, like database tables, must exist before you can write to one.
|
|
20
|
+
#
|
|
21
|
+
# @example Creating a domain
|
|
22
|
+
# domain = SimpleDB.new.domains.create('mydomain')
|
|
23
|
+
#
|
|
24
|
+
# @example Getting a domain
|
|
25
|
+
# domain = SimpleDB.new.domains['mydomain']
|
|
26
|
+
#
|
|
27
|
+
# @see DomainCollection
|
|
28
|
+
#
|
|
29
|
+
class Domain
|
|
30
|
+
|
|
31
|
+
# @private
|
|
32
|
+
class NonEmptyDeleteError < StandardError; end
|
|
33
|
+
|
|
34
|
+
include Core::Model
|
|
35
|
+
|
|
36
|
+
# @param [String] name The name of a SimpleDB domain to reference.
|
|
37
|
+
def initialize(name, options = {})
|
|
38
|
+
super(options)
|
|
39
|
+
@name = name
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Returns the name for this domain.
|
|
43
|
+
#
|
|
44
|
+
# @return [String] The name of this domain.
|
|
45
|
+
attr_reader :name
|
|
46
|
+
|
|
47
|
+
# Returns true if the domain has no items, false otherwise.
|
|
48
|
+
#
|
|
49
|
+
# @return [Boolean] Returns true if the domain has no items.
|
|
50
|
+
def empty?
|
|
51
|
+
metadata.item_count == 0
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Deletes the (empty) domain.
|
|
55
|
+
#
|
|
56
|
+
# @note If you need to delete a domain with items, call {#delete!}
|
|
57
|
+
# @raise [NonEmptyDeleteError] Raises if the domain is not empty.
|
|
58
|
+
# @return [nil]
|
|
59
|
+
def delete
|
|
60
|
+
unless empty?
|
|
61
|
+
raise NonEmptyDeleteError, "delete called without :force " +
|
|
62
|
+
"on a non-empty domain"
|
|
63
|
+
end
|
|
64
|
+
client.delete_domain(:domain_name => name)
|
|
65
|
+
nil
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Deletes the domain and all of its items.
|
|
69
|
+
#
|
|
70
|
+
# @return [nil]
|
|
71
|
+
def delete!
|
|
72
|
+
client.delete_domain(:domain_name => name)
|
|
73
|
+
nil
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Returns true if this domain exists, false otherwise.
|
|
77
|
+
#
|
|
78
|
+
# @return [Boolean] Returns true if the domain exists.
|
|
79
|
+
def exists?
|
|
80
|
+
begin
|
|
81
|
+
client.domain_metadata(:domain_name => name)
|
|
82
|
+
true
|
|
83
|
+
rescue Errors::NoSuchDomain
|
|
84
|
+
false
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Returns a metadata object that can provide information about
|
|
89
|
+
# this domain.
|
|
90
|
+
#
|
|
91
|
+
# @return [DomainMetadata]
|
|
92
|
+
def metadata
|
|
93
|
+
DomainMetadata.new(self)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Returns a collection that represents all of the items in this domain.
|
|
97
|
+
#
|
|
98
|
+
# @return [ItemCollection]
|
|
99
|
+
def items
|
|
100
|
+
ItemCollection.new(self)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @return [Boolean] Returns true if the domains are the same.
|
|
104
|
+
def == other
|
|
105
|
+
other.is_a?(Domain) and
|
|
106
|
+
other.name == name and
|
|
107
|
+
other.config.simple_db_endpoint == config.simple_db_endpoint
|
|
108
|
+
end
|
|
109
|
+
alias_method :eql?, :==
|
|
110
|
+
|
|
111
|
+
# An irb-friendly string representation of this object.
|
|
112
|
+
#
|
|
113
|
+
# @return [String]
|
|
114
|
+
# @private
|
|
115
|
+
def inspect
|
|
116
|
+
"#<#{self.class}:#{name}>"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Copyright 2011-2012 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
|
+
# An Enumerable collection representing all your domains in SimpleDB.
|
|
18
|
+
#
|
|
19
|
+
# Use a DomainCollection to create, get and list domains.
|
|
20
|
+
#
|
|
21
|
+
# @example Creating a domain in SimpleDB
|
|
22
|
+
#
|
|
23
|
+
# sdb = SimpleDB.new
|
|
24
|
+
# domain = sdb.domains.create('mydomain')
|
|
25
|
+
#
|
|
26
|
+
# @example Getting a domain with indifferent access
|
|
27
|
+
#
|
|
28
|
+
# domain = sdb.domains[:mydomain]
|
|
29
|
+
# domain = sdb.domains['mydomain']
|
|
30
|
+
#
|
|
31
|
+
# @example Enumerating domains
|
|
32
|
+
#
|
|
33
|
+
# sdb.domains.each do |domain|
|
|
34
|
+
# puts domain.name
|
|
35
|
+
# end
|
|
36
|
+
#
|
|
37
|
+
class DomainCollection
|
|
38
|
+
|
|
39
|
+
include Core::Model
|
|
40
|
+
include Enumerable
|
|
41
|
+
|
|
42
|
+
# Creates a domain in SimpleDB and returns a domain object.
|
|
43
|
+
#
|
|
44
|
+
# @note This operation might take 10 or more seconds to complete.
|
|
45
|
+
# @note Creating a domain in SimpleDB is an idempotent operation;
|
|
46
|
+
# running it multiple times using the same domain name will not
|
|
47
|
+
# result in an error.
|
|
48
|
+
# @note You can create up to 100 domains per account.
|
|
49
|
+
# @param [String] domain_name
|
|
50
|
+
# @return [Domain] Returns a new domain with the given name.
|
|
51
|
+
def create(domain_name)
|
|
52
|
+
client.create_domain(:domain_name => domain_name)
|
|
53
|
+
domain_named(domain_name)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Returns a domain object with the given name.
|
|
57
|
+
#
|
|
58
|
+
# @note This does not attempt to create the domain if it does not
|
|
59
|
+
# already exist in SimpleDB. Use {#create} to add a domain to SDB.
|
|
60
|
+
#
|
|
61
|
+
# @param [String] domain_name The name of the domain to return.
|
|
62
|
+
# @return [Domain] Returns the domain with the given name.
|
|
63
|
+
def [] domain_name
|
|
64
|
+
domain_named(domain_name)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @note Normally your account has a limit of 100 SimpleDB domains. You can {request more here}[http://aws.amazon.com/contact-us/simpledb-limit-request/]
|
|
68
|
+
# @yield [domain] Yields once for every domain in your account.
|
|
69
|
+
# @yieldparam [Domain] domain
|
|
70
|
+
# @param [Hash] options
|
|
71
|
+
# @option options [Integer] :limit (nil) The maximum number of
|
|
72
|
+
# domains to yield.
|
|
73
|
+
# @option options [Integer] :batch_size (100) The number of domains to
|
|
74
|
+
# fetch each request to SimpleDB. Maximum is 100.
|
|
75
|
+
# @return [nil]
|
|
76
|
+
def each options = {}, &block
|
|
77
|
+
|
|
78
|
+
total_limit = options[:limit]
|
|
79
|
+
batch_size = options[:batch_size] || 100
|
|
80
|
+
received = 0
|
|
81
|
+
next_token = nil
|
|
82
|
+
|
|
83
|
+
begin
|
|
84
|
+
|
|
85
|
+
limit = total_limit ?
|
|
86
|
+
[total_limit - received, batch_size].min :
|
|
87
|
+
batch_size
|
|
88
|
+
|
|
89
|
+
list_options = { :max_number_of_domains => limit }
|
|
90
|
+
list_options[:next_token] = next_token if next_token
|
|
91
|
+
list = client.list_domains(list_options)
|
|
92
|
+
|
|
93
|
+
next_token = list[:next_token]
|
|
94
|
+
received += list[:domain_names].size
|
|
95
|
+
|
|
96
|
+
list[:domain_names].each do |name|
|
|
97
|
+
yield(domain_named(name))
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end while next_token and (total_limit.nil? or received < total_limit)
|
|
101
|
+
nil
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# @return [Domain] Returns a domain with the given name.
|
|
105
|
+
# @private
|
|
106
|
+
protected
|
|
107
|
+
def domain_named name
|
|
108
|
+
Domain.new(name.to_s, :config => config)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Copyright 2011-2012 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
|
+
# SimpleDB can report on the amount of data stored in a domain,
|
|
18
|
+
# the number of items, etc.
|
|
19
|
+
#
|
|
20
|
+
# @example
|
|
21
|
+
#
|
|
22
|
+
# sdb = SimpleDB.new
|
|
23
|
+
# sdb.domains['mydomain'].metadata.to_h
|
|
24
|
+
#
|
|
25
|
+
# # the hash returned above might look like:
|
|
26
|
+
# {
|
|
27
|
+
# :timestamp => 1300841880,
|
|
28
|
+
# :attribute_names_size_bytes => 12,
|
|
29
|
+
# :item_count => 1,
|
|
30
|
+
# :attribute_value_count => 6,
|
|
31
|
+
# :attribute_values_size_bytes => 25,
|
|
32
|
+
# :item_names_size_bytes => 3,
|
|
33
|
+
# :attribute_name_count => 3
|
|
34
|
+
# }
|
|
35
|
+
#
|
|
36
|
+
class DomainMetadata
|
|
37
|
+
|
|
38
|
+
include Core::Model
|
|
39
|
+
|
|
40
|
+
# @private
|
|
41
|
+
ATTRIBUTES = [
|
|
42
|
+
:item_count,
|
|
43
|
+
:item_names_size_bytes,
|
|
44
|
+
:attribute_name_count,
|
|
45
|
+
:attribute_names_size_bytes,
|
|
46
|
+
:attribute_value_count,
|
|
47
|
+
:attribute_values_size_bytes,
|
|
48
|
+
:timestamp,
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
# @param [Domain] domain The domain to fetch metadata for.
|
|
52
|
+
# @return [DomainMetadata]
|
|
53
|
+
def initialize domain, options = {}
|
|
54
|
+
@domain = domain
|
|
55
|
+
super
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# @return [Domain] The domain this metadata is describing.
|
|
59
|
+
attr_reader :domain
|
|
60
|
+
|
|
61
|
+
# @return [Integer] The number of all items in the {#domain}.
|
|
62
|
+
def item_count
|
|
63
|
+
self.to_h[:item_count]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# @return [Integer] The total size of all item names in the {#domain},
|
|
67
|
+
# in bytes.
|
|
68
|
+
def item_names_size_bytes
|
|
69
|
+
self.to_h[:item_names_size_bytes]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @return [Integer] The number of unique attribute names in the
|
|
73
|
+
# {#domain}.
|
|
74
|
+
def attribute_name_count
|
|
75
|
+
self.to_h[:attribute_name_count]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @return [Integer] The total size of all unique attribute names,
|
|
79
|
+
# in bytes.
|
|
80
|
+
def attribute_names_size_bytes
|
|
81
|
+
self.to_h[:attribute_names_size_bytes]
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# @return [Integer] The number of all attribute name/value pairs in
|
|
85
|
+
# the {#domain}.
|
|
86
|
+
def attribute_value_count
|
|
87
|
+
self.to_h[:attribute_value_count]
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# @return [Integer] The total size of all attribute values, in bytes.
|
|
91
|
+
def attribute_values_size_bytes
|
|
92
|
+
self.to_h[:attribute_values_size_bytes]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# @return [Integer] The data and time when metadata was calculated
|
|
96
|
+
# in Epoch (UNIX) time.
|
|
97
|
+
def timestamp
|
|
98
|
+
self.to_h[:timestamp]
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# @return [Hash] A hash of all of the metadata attributes for
|
|
102
|
+
# this {#domain}.
|
|
103
|
+
def to_h
|
|
104
|
+
meta = client.domain_metadata(:domain_name => domain.name)
|
|
105
|
+
ATTRIBUTES.inject({}) {|h,attr| h[attr] = meta.send(attr); h }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|