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,174 @@
|
|
|
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 SQS
|
|
16
|
+
|
|
17
|
+
# Represents all the {Queue} objects in your account.
|
|
18
|
+
#
|
|
19
|
+
# If you have permission to access a queue created by another
|
|
20
|
+
# account, you can also use this collection to access that queue
|
|
21
|
+
# by URL.
|
|
22
|
+
#
|
|
23
|
+
# @example Printing the URLs of all queues
|
|
24
|
+
# pp sqs.queues.map(&:url)
|
|
25
|
+
#
|
|
26
|
+
# @example Filtering queues by queue name prefix
|
|
27
|
+
# pp sqs.queues.with_prefix("production_").map(&:url)
|
|
28
|
+
#
|
|
29
|
+
# @example Accessing a queue by URL
|
|
30
|
+
# url = "http://sqs.us-east-1.amazonaws.com/123456789012/myqueue"
|
|
31
|
+
# sqs.queues[url].send_message("HELLO")
|
|
32
|
+
class QueueCollection
|
|
33
|
+
|
|
34
|
+
include Core::Collection::Simple
|
|
35
|
+
|
|
36
|
+
# @private
|
|
37
|
+
def initialize(opts = {})
|
|
38
|
+
@prefix = opts[:prefix]
|
|
39
|
+
super
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @return [String] The queue name prefix by which this
|
|
43
|
+
# collection is filtered.
|
|
44
|
+
attr_reader :prefix
|
|
45
|
+
|
|
46
|
+
# Creates a new queue.
|
|
47
|
+
#
|
|
48
|
+
# @note If you delete a queue, you must wait at least 60
|
|
49
|
+
# seconds before creating a queue with the same name.
|
|
50
|
+
#
|
|
51
|
+
# @param [String] name The name to use for the queue created.
|
|
52
|
+
# Constraints: Maximum 80 characters; alphanumeric
|
|
53
|
+
# characters, hyphens (-), and underscores (_) are allowed.
|
|
54
|
+
#
|
|
55
|
+
# The name of the queue should be unique within your account. If
|
|
56
|
+
# you provide the name of an existing queue with the same options
|
|
57
|
+
# it was created with then no error is raised and the existing
|
|
58
|
+
# queue will be returned.
|
|
59
|
+
#
|
|
60
|
+
# @param [Hash] options
|
|
61
|
+
#
|
|
62
|
+
# @option options [Integer] :visibility_timeout (30) The number of
|
|
63
|
+
# seconds a message received from a queue will be invisible to
|
|
64
|
+
# others when they ask to receive messages.
|
|
65
|
+
#
|
|
66
|
+
# @option options [Policy] :policy A policy object or policy desription
|
|
67
|
+
# (a json string).
|
|
68
|
+
#
|
|
69
|
+
# @option options [Integer] :maximum_message_size (65536) The maximum
|
|
70
|
+
# number of bytes a message can contain before Amazon SQS rejects
|
|
71
|
+
# it.
|
|
72
|
+
#
|
|
73
|
+
# @option options [Integer] :delay_seconds The time in seconds that
|
|
74
|
+
# the delivery of all messages in the queue will be delayed.
|
|
75
|
+
# This can be overriden when sending a message to the queue.
|
|
76
|
+
#
|
|
77
|
+
# @option options [Integer] :message_retention_period The number of
|
|
78
|
+
# seconds from 60 (1 minute) to 1209600 (14 days). The default
|
|
79
|
+
# is 345600 (4 days).
|
|
80
|
+
#
|
|
81
|
+
# @return [Queue] The newly created queue.
|
|
82
|
+
#
|
|
83
|
+
def create name, options = {}
|
|
84
|
+
|
|
85
|
+
# SQS removed the default prefix to the visibility timeout option
|
|
86
|
+
# in the 2011-10-01 update -- this allows us to not break existing
|
|
87
|
+
# customers.
|
|
88
|
+
if options[:default_visibility_timeout]
|
|
89
|
+
options[:visibility_timeout] =
|
|
90
|
+
options.delete(:default_visibility_timeout)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
if policy = options[:policy]
|
|
94
|
+
options[:policy] = policy.to_json unless policy.is_a?(String)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
client_opts = {}
|
|
98
|
+
client_opts[:queue_name] = name
|
|
99
|
+
unless options.empty?
|
|
100
|
+
client_opts[:attributes] = options.inject({}) do |attributes,(k,v)|
|
|
101
|
+
attributes.merge(Core::Inflection.class_name(k.to_s) => v.to_s)
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
response = client.create_queue(client_opts)
|
|
106
|
+
|
|
107
|
+
Queue.new(response[:queue_url], :config => config)
|
|
108
|
+
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @param [String] prefix The queue name prefix.
|
|
112
|
+
# @return [QueueCollection] A new collection representing only
|
|
113
|
+
# the queues whose names start with the given prefix.
|
|
114
|
+
def with_prefix(prefix)
|
|
115
|
+
self.class.new(:prefix => prefix, :config => config)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# @return [Queue] The queue with the given URL.
|
|
119
|
+
def [] url
|
|
120
|
+
Queue.new(url, :config => config)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Returns the queue with the given name. This requires making
|
|
124
|
+
# a request to SQS to get the queue url. If you know the url,
|
|
125
|
+
# you should use {#[]} instead.
|
|
126
|
+
#
|
|
127
|
+
# queue = AWS::SQS.new.queues.named('my-queue')
|
|
128
|
+
#
|
|
129
|
+
# @param (see #url_for)
|
|
130
|
+
# @option (see #url_for)
|
|
131
|
+
# @return [Queue] Returns the queue with the given name.
|
|
132
|
+
def named queue_name, options = {}
|
|
133
|
+
self[url_for(queue_name, options = {})]
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# Returns the url for the given queue.
|
|
137
|
+
#
|
|
138
|
+
# sqs.queues.url_for('my-queue')
|
|
139
|
+
# #=> "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue"
|
|
140
|
+
#
|
|
141
|
+
# @param [String] queue_name The name of the queue you need a URL for.
|
|
142
|
+
#
|
|
143
|
+
# @param [Hash] options
|
|
144
|
+
#
|
|
145
|
+
# @option options [String] :queue_owner_aws_account_id The AWS account
|
|
146
|
+
# ID of the account that created the queue. You can only get the
|
|
147
|
+
# url for queues in other accounts when the account owner has
|
|
148
|
+
# granted you permission.
|
|
149
|
+
#
|
|
150
|
+
def url_for queue_name, options = {}
|
|
151
|
+
client_opts = {}
|
|
152
|
+
client_opts[:queue_name] = queue_name
|
|
153
|
+
client.get_queue_url(client_opts.merge(options))[:queue_url]
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
protected
|
|
157
|
+
|
|
158
|
+
# @yieldparam [Queue] queue Each {Queue} object in the collection.
|
|
159
|
+
def _each_item options, &block
|
|
160
|
+
|
|
161
|
+
options[:queue_name_prefix] = prefix if prefix
|
|
162
|
+
|
|
163
|
+
resp = client.list_queues(options)
|
|
164
|
+
resp.data[:queue_urls].each do |url|
|
|
165
|
+
queue = self[url]
|
|
166
|
+
yield(queue)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
end
|
|
174
|
+
end
|
|
@@ -0,0 +1,181 @@
|
|
|
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 SQS
|
|
16
|
+
|
|
17
|
+
# Represents a message received from an Amazon SQS Queue.
|
|
18
|
+
class ReceivedMessage
|
|
19
|
+
|
|
20
|
+
include Core::Model
|
|
21
|
+
|
|
22
|
+
# @return [Queue] The queue from which this message was
|
|
23
|
+
# received.
|
|
24
|
+
attr_reader :queue
|
|
25
|
+
|
|
26
|
+
# @return [String] The ID of the message.
|
|
27
|
+
attr_reader :id
|
|
28
|
+
|
|
29
|
+
# @return [String] A string associated with this specific
|
|
30
|
+
# instance of receiving the message.
|
|
31
|
+
attr_reader :handle
|
|
32
|
+
|
|
33
|
+
# @return [String] The message's contents.
|
|
34
|
+
attr_reader :body
|
|
35
|
+
|
|
36
|
+
# @return [String] An MD5 digest of the message body.
|
|
37
|
+
attr_reader :md5
|
|
38
|
+
|
|
39
|
+
# @private
|
|
40
|
+
attr_reader :attributes
|
|
41
|
+
|
|
42
|
+
# @private
|
|
43
|
+
ATTRIBUTE_ALIASES = {
|
|
44
|
+
:sent_at => :sent_timestamp,
|
|
45
|
+
:receive_count => :approximate_receive_count,
|
|
46
|
+
:first_received_at => :approximate_first_receive_timestamp
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
# @private
|
|
50
|
+
def initialize(queue, id, handle, opts = {})
|
|
51
|
+
@queue = queue
|
|
52
|
+
@id = id
|
|
53
|
+
@handle = handle
|
|
54
|
+
@body = opts[:body]
|
|
55
|
+
@md5 = opts[:md5]
|
|
56
|
+
@attributes = opts[:attributes] || {}
|
|
57
|
+
super
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# When SNS publishes messages to SQS queues the message body is
|
|
61
|
+
# formatted as a json message and then base 64 encoded.
|
|
62
|
+
# An easy way to work with SNS messages is to call this method:
|
|
63
|
+
#
|
|
64
|
+
# sns_msg = message.as_sns_message
|
|
65
|
+
#
|
|
66
|
+
# sns_msg.topic
|
|
67
|
+
# #=> <AWS::SNS::Topic ...>
|
|
68
|
+
#
|
|
69
|
+
# sns_msg.to_h.inspect
|
|
70
|
+
# #=> { :body => '...', :topic_arn => ... }
|
|
71
|
+
#
|
|
72
|
+
# @return [ReceivedSNSMessage]
|
|
73
|
+
def as_sns_message
|
|
74
|
+
ReceivedSNSMessage.new(body, :config => config)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Deletes the message from the queue. Even if the message is
|
|
78
|
+
# locked by another reader due to the visibility timeout
|
|
79
|
+
# setting, it is still deleted from the queue. If you leave a
|
|
80
|
+
# message in the queue for more than 4 days, SQS automatically
|
|
81
|
+
# deletes it.
|
|
82
|
+
#
|
|
83
|
+
# If you use {Queue#poll} or {Queue#receive_message} in block
|
|
84
|
+
# form, the messages you receive will be deleted automatically
|
|
85
|
+
# unless an exception occurs while you are processing them.
|
|
86
|
+
# You can still use this method if you want to delete a
|
|
87
|
+
# message early and then continue processing it.
|
|
88
|
+
#
|
|
89
|
+
# @note It is possible you will receive a message even after
|
|
90
|
+
# you have deleted it. This might happen on rare occasions
|
|
91
|
+
# if one of the servers storing a copy of the message is
|
|
92
|
+
# unavailable when you request to delete the message. The
|
|
93
|
+
# copy remains on the server and might be returned to you
|
|
94
|
+
# again on a subsequent receive request. You should create
|
|
95
|
+
# your system to be idempotent so that receiving a
|
|
96
|
+
# particular message more than once is not a problem.
|
|
97
|
+
#
|
|
98
|
+
# @return [nil]
|
|
99
|
+
def delete
|
|
100
|
+
client.delete_message(
|
|
101
|
+
:queue_url => queue.url,
|
|
102
|
+
:receipt_handle => handle)
|
|
103
|
+
nil
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Changes the visibility timeout of a specified message in a
|
|
107
|
+
# queue to a new value. The maximum allowed timeout value you
|
|
108
|
+
# can set the value to is 12 hours. This means you can't
|
|
109
|
+
# extend the timeout of a message in an existing queue to more
|
|
110
|
+
# than a total visibility timeout of 12 hours. (For more
|
|
111
|
+
# information visibility timeout, see {Visibility
|
|
112
|
+
# Timeout}[http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/IntroductionArticle.html#AboutVT]
|
|
113
|
+
# in the Amazon SQS Developer Guide.)
|
|
114
|
+
#
|
|
115
|
+
# For example, let's say the timeout for the queue is 30
|
|
116
|
+
# seconds, and you receive a message. Once you're 20 seconds
|
|
117
|
+
# into the timeout for that message (i.e., you have 10 seconds
|
|
118
|
+
# left), you extend it by 60 seconds by calling this method
|
|
119
|
+
# with +timeout+ set to 60 seconds. You have then changed the
|
|
120
|
+
# remaining visibility timeout from 10 seconds to 60 seconds.
|
|
121
|
+
#
|
|
122
|
+
# @note If you attempt to set the timeout to an amount more
|
|
123
|
+
# than the maximum time left, Amazon SQS returns an
|
|
124
|
+
# error. It will not automatically recalculate and increase
|
|
125
|
+
# the timeout to the maximum time remaining.
|
|
126
|
+
#
|
|
127
|
+
# @note Unlike with a queue, when you change the visibility
|
|
128
|
+
# timeout for a specific message, that timeout value is
|
|
129
|
+
# applied immediately but is not saved in memory for that
|
|
130
|
+
# message. If you don't delete a message after it is
|
|
131
|
+
# received, the visibility timeout for the message the next
|
|
132
|
+
# time it is received reverts to the original timeout value,
|
|
133
|
+
# not the value you set with this method.
|
|
134
|
+
#
|
|
135
|
+
# @return Returns the timeout argument as passed.
|
|
136
|
+
#
|
|
137
|
+
def visibility_timeout=(timeout)
|
|
138
|
+
client.change_message_visibility(
|
|
139
|
+
:queue_url => queue.url,
|
|
140
|
+
:receipt_handle => handle,
|
|
141
|
+
:visibility_timeout => timeout
|
|
142
|
+
)
|
|
143
|
+
timeout
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# @return [String] The AWS account number (or the IP address,
|
|
147
|
+
# if anonymous access is allowed) of the sender.
|
|
148
|
+
def sender_id
|
|
149
|
+
attributes["SenderId"]
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @return [Time] The time when the message was sent.
|
|
153
|
+
def sent_timestamp
|
|
154
|
+
@sent_at ||=
|
|
155
|
+
(timestamp = attributes["SentTimestamp"] and
|
|
156
|
+
Time.at(timestamp.to_i / 1000.0)) || nil
|
|
157
|
+
rescue RangeError => e
|
|
158
|
+
p [timestamp, timestamp.to_i]
|
|
159
|
+
end
|
|
160
|
+
alias_method :sent_at, :sent_timestamp
|
|
161
|
+
|
|
162
|
+
# @return [Integer] The number of times a message has been
|
|
163
|
+
# received but not deleted.
|
|
164
|
+
def approximate_receive_count
|
|
165
|
+
(count = attributes["ApproximateReceiveCount"] and
|
|
166
|
+
count.to_i) or nil
|
|
167
|
+
end
|
|
168
|
+
alias_method :receive_count, :approximate_receive_count
|
|
169
|
+
|
|
170
|
+
# @return [Time] The time when the message was first received.
|
|
171
|
+
def approximate_first_receive_timestamp
|
|
172
|
+
@received_at ||=
|
|
173
|
+
(timestamp = attributes["ApproximateFirstReceiveTimestamp"] and
|
|
174
|
+
Time.at(timestamp.to_i / 1000.0)) || nil
|
|
175
|
+
end
|
|
176
|
+
alias_method :first_received_at, :approximate_first_receive_timestamp
|
|
177
|
+
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
end
|
|
181
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
require 'time'
|
|
15
|
+
require 'base64'
|
|
16
|
+
|
|
17
|
+
module AWS
|
|
18
|
+
class SQS
|
|
19
|
+
|
|
20
|
+
# Represents message published from an {SNS::Topic} to an {SQS::Queue}.
|
|
21
|
+
class ReceivedSNSMessage
|
|
22
|
+
|
|
23
|
+
include Core::Model
|
|
24
|
+
|
|
25
|
+
# @param [String] body The SQS message body
|
|
26
|
+
# from a message published by SNS.
|
|
27
|
+
# @param [Hash] options
|
|
28
|
+
def initialize body, options = {}
|
|
29
|
+
@body = body
|
|
30
|
+
super
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @return [String] Returns the JSON hash (as a string) as was
|
|
34
|
+
# published by SNS. See {#body} to get the decoded message
|
|
35
|
+
# or {#to_h} to get the decoded JSON hash as a ruby hash.
|
|
36
|
+
def raw_message
|
|
37
|
+
@body
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return[String] Returns the decoded message as was published.
|
|
41
|
+
def body
|
|
42
|
+
to_h[:body]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @return [String] Returns the ARN for the topic that published this
|
|
46
|
+
# message.
|
|
47
|
+
def topic_arn
|
|
48
|
+
to_h[:topic_arn]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# @return [SNS::Topic] Returns the topic that published this message.
|
|
52
|
+
def topic
|
|
53
|
+
SNS::Topic.new(topic_arn, :config => config)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @return [String] Returns the message type.
|
|
57
|
+
def message_type
|
|
58
|
+
to_h[:message_type]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @return [String] Returns the calculated signature for the message.
|
|
62
|
+
def signature
|
|
63
|
+
to_h[:signature]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# @return [String] Returns the signature version.
|
|
67
|
+
def signature_version
|
|
68
|
+
to_h[:signature_version]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# @return [Time] Returns the time the message was published at by SNS.
|
|
72
|
+
# by SNS.
|
|
73
|
+
def published_at
|
|
74
|
+
to_h[:published_at]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @return [String] Returns the unique id of the SNS message.
|
|
78
|
+
def message_id
|
|
79
|
+
to_h[:message_id]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# @return [String] Returns the url for the signing cert.
|
|
83
|
+
def signing_cert_url
|
|
84
|
+
to_h[:signing_cert_url]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# @return [String] Returns the url you can request to unsubscribe message
|
|
88
|
+
# from this queue.
|
|
89
|
+
def unsubscribe_url
|
|
90
|
+
to_h[:unsubscribe_url]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# @return [Hash] Returns the decoded message as a hash.
|
|
94
|
+
def to_h
|
|
95
|
+
data = JSON.parse(@body)
|
|
96
|
+
{
|
|
97
|
+
:body => data['Message'],
|
|
98
|
+
:topic_arn => data['TopicArn'],
|
|
99
|
+
:message_type => data['Type'],
|
|
100
|
+
:signature => data['Signature'],
|
|
101
|
+
:signature_version => data['SignatureVersion'],
|
|
102
|
+
:published_at => Time.parse(data['Timestamp']),
|
|
103
|
+
:message_id => data['MessageId'],
|
|
104
|
+
:signing_cert_url => data['SigningCertURL'],
|
|
105
|
+
:unsubscribe_url => data['UnsubscribeURL'],
|
|
106
|
+
}
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# @return [Hash] Returns the decoded message body as a hash.
|
|
110
|
+
def body_message_as_h
|
|
111
|
+
@body_message_as_h ||= JSON.parse(to_h[:body])
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|