aws-sdk 1.8.0 → 1.8.1
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/LICENSE.txt +1 -1
- data/lib/aws-sdk.rb +3 -1
- data/lib/aws.rb +1 -1
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +31 -2
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +16 -8
- data/lib/aws/api_config/CloudFront-2012-05-05.yml +1 -1
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +1 -1
- data/lib/aws/api_config/CloudWatch-2010-08-01.yml +1 -1
- data/lib/aws/api_config/DataPipeline-2012-10-29.yml +1 -1
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1 -1
- data/lib/aws/api_config/{EC2-2012-07-20.yml → EC2-2012-12-01.yml} +26 -2
- data/lib/aws/api_config/ELB-2012-06-01.yml +1 -1
- data/lib/aws/api_config/EMR-2009-03-31.yml +1 -1
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +1 -1
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +1 -1
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +7 -11
- data/lib/aws/api_config/IAM-2010-05-08.yml +1 -1
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +1 -1
- data/lib/aws/api_config/{RDS-2012-07-31.yml → RDS-2012-09-17.yml} +247 -7
- data/lib/aws/api_config/Route53-2012-02-29.yml +1 -1
- data/lib/aws/api_config/SNS-2010-03-31.yml +1 -1
- data/lib/aws/api_config/SQS-2012-11-05.yml +1 -1
- data/lib/aws/api_config/STS-2011-06-15.yml +1 -1
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +1 -1
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +1 -1
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +1 -1
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +1 -1
- data/lib/aws/auto_scaling.rb +1 -1
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +1 -1
- data/lib/aws/auto_scaling/client.rb +19 -6
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/errors.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +2 -2
- data/lib/aws/auto_scaling/group_collection.rb +1 -1
- data/lib/aws/auto_scaling/group_options.rb +1 -1
- data/lib/aws/auto_scaling/instance.rb +1 -1
- data/lib/aws/auto_scaling/instance_collection.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/request.rb +1 -1
- data/lib/aws/auto_scaling/scaling_policy.rb +1 -1
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
- data/lib/aws/auto_scaling/scaling_policy_options.rb +1 -1
- data/lib/aws/auto_scaling/scheduled_action.rb +1 -1
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +1 -1
- data/lib/aws/auto_scaling/tag.rb +1 -1
- data/lib/aws/auto_scaling/tag_collection.rb +1 -1
- data/lib/aws/cloud_formation.rb +1 -1
- data/lib/aws/cloud_formation/client.rb +154 -52
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/errors.rb +1 -1
- data/lib/aws/cloud_formation/request.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +1 -2
- data/lib/aws/cloud_formation/stack_collection.rb +7 -4
- data/lib/aws/cloud_formation/stack_event.rb +1 -1
- data/lib/aws/cloud_formation/stack_event_collection.rb +1 -1
- data/lib/aws/cloud_formation/stack_options.rb +1 -1
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +1 -1
- data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
- data/lib/aws/cloud_front.rb +2 -2
- data/lib/aws/cloud_front/client.rb +5 -5
- data/lib/aws/cloud_front/config.rb +1 -1
- data/lib/aws/cloud_front/errors.rb +1 -1
- data/lib/aws/cloud_front/request.rb +1 -1
- data/lib/aws/cloud_search.rb +42 -1
- data/lib/aws/cloud_search/client.rb +5 -5
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_search/errors.rb +1 -1
- data/lib/aws/cloud_search/request.rb +1 -1
- data/lib/aws/cloud_watch.rb +43 -1
- data/lib/aws/cloud_watch/alarm.rb +1 -1
- data/lib/aws/cloud_watch/alarm_collection.rb +1 -1
- data/lib/aws/cloud_watch/alarm_history_item.rb +1 -1
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +1 -1
- data/lib/aws/cloud_watch/client.rb +5 -5
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/errors.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +1 -1
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +1 -1
- data/lib/aws/cloud_watch/metric_collection.rb +1 -1
- data/lib/aws/cloud_watch/metric_statistics.rb +1 -1
- data/lib/aws/cloud_watch/request.rb +1 -1
- data/lib/aws/core.rb +6 -10
- data/lib/aws/core/async_handle.rb +1 -1
- data/lib/aws/core/autoloader.rb +1 -1
- data/lib/aws/core/cacheable.rb +1 -1
- data/lib/aws/core/client.rb +2 -2
- data/lib/aws/core/collection.rb +1 -1
- data/lib/aws/core/collection/simple.rb +1 -1
- data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
- data/lib/aws/core/collection/with_next_token.rb +1 -1
- data/lib/aws/core/configuration.rb +5 -2
- data/lib/aws/core/credential_providers.rb +23 -4
- data/lib/aws/core/data.rb +1 -1
- data/lib/aws/core/http/curb_handler.rb +1 -1
- data/lib/aws/core/http/handler.rb +1 -1
- data/lib/aws/core/http/net_http_handler.rb +19 -14
- data/lib/aws/core/http/request.rb +1 -1
- data/lib/aws/core/http/response.rb +7 -4
- data/lib/aws/core/indifferent_hash.rb +1 -1
- data/lib/aws/core/inflection.rb +1 -1
- data/lib/aws/core/json_client.rb +1 -1
- data/lib/aws/core/json_parser.rb +1 -1
- data/lib/aws/core/json_request_builder.rb +1 -1
- data/lib/aws/core/json_response_parser.rb +1 -1
- data/lib/aws/core/lazy_error_classes.rb +1 -1
- data/lib/aws/core/log_formatter.rb +1 -1
- data/lib/aws/core/managed_file.rb +1 -1
- data/lib/aws/core/meta_utils.rb +1 -1
- data/lib/aws/core/model.rb +1 -1
- data/lib/aws/core/naming.rb +1 -1
- data/lib/aws/core/option_grammar.rb +1 -1
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +1 -1
- data/lib/aws/core/options/xml_serializer.rb +2 -2
- data/lib/aws/core/page_result.rb +1 -1
- data/lib/aws/core/policy.rb +1 -1
- data/lib/aws/core/query_client.rb +1 -1
- data/lib/aws/core/query_error_parser.rb +1 -1
- data/lib/aws/core/query_request_builder.rb +1 -1
- data/lib/aws/core/query_response_parser.rb +1 -1
- data/lib/aws/core/resource.rb +1 -1
- data/lib/aws/core/resource_cache.rb +1 -1
- data/lib/aws/core/response.rb +1 -1
- data/lib/aws/core/response_cache.rb +1 -1
- data/lib/aws/core/rest_error_parser.rb +1 -1
- data/lib/aws/core/rest_json_client.rb +1 -1
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/rest_response_parser.rb +13 -4
- data/lib/aws/core/rest_xml_client.rb +1 -1
- data/lib/aws/core/service_interface.rb +1 -1
- data/lib/aws/core/signature/version_2.rb +1 -1
- data/lib/aws/core/signature/version_3.rb +1 -1
- data/lib/aws/core/signature/version_3_https.rb +1 -1
- data/lib/aws/core/signature/version_4.rb +1 -1
- data/lib/aws/core/signer.rb +1 -1
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +1 -1
- data/lib/aws/core/xml/parser.rb +1 -1
- data/lib/aws/core/xml/root_frame.rb +1 -1
- data/lib/aws/core/xml/sax_handlers/libxml.rb +1 -1
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +1 -1
- data/lib/aws/core/xml/sax_handlers/ox.rb +1 -1
- data/lib/aws/core/xml/sax_handlers/rexml.rb +1 -1
- data/lib/aws/core/xml/stub.rb +1 -1
- data/lib/aws/data_pipeline.rb +42 -1
- data/lib/aws/data_pipeline/client.rb +91 -144
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/data_pipeline/errors.rb +1 -1
- data/lib/aws/data_pipeline/request.rb +1 -1
- data/lib/aws/dynamo_db.rb +1 -1
- data/lib/aws/dynamo_db/attribute_collection.rb +1 -1
- data/lib/aws/dynamo_db/batch_get.rb +1 -1
- data/lib/aws/dynamo_db/batch_write.rb +1 -1
- data/lib/aws/dynamo_db/binary.rb +1 -1
- data/lib/aws/dynamo_db/client.rb +5 -5
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/errors.rb +1 -1
- data/lib/aws/dynamo_db/expectations.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +1 -1
- data/lib/aws/dynamo_db/item_collection.rb +11 -11
- data/lib/aws/dynamo_db/item_data.rb +1 -1
- data/lib/aws/dynamo_db/keys.rb +1 -1
- data/lib/aws/dynamo_db/primary_key_element.rb +1 -1
- data/lib/aws/dynamo_db/request.rb +1 -1
- data/lib/aws/dynamo_db/resource.rb +1 -1
- data/lib/aws/dynamo_db/table.rb +1 -1
- data/lib/aws/dynamo_db/table_collection.rb +1 -1
- data/lib/aws/dynamo_db/types.rb +1 -1
- data/lib/aws/ec2.rb +1 -1
- data/lib/aws/ec2/attachment.rb +1 -1
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +1 -1
- data/lib/aws/ec2/availability_zone_collection.rb +1 -1
- data/lib/aws/ec2/block_device_mappings.rb +1 -1
- data/lib/aws/ec2/client.rb +26 -5
- data/lib/aws/ec2/collection.rb +1 -1
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/config_transform.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +1 -1
- data/lib/aws/ec2/customer_gateway_collection.rb +1 -1
- data/lib/aws/ec2/dhcp_options.rb +1 -1
- data/lib/aws/ec2/dhcp_options_collection.rb +1 -1
- data/lib/aws/ec2/elastic_ip.rb +1 -1
- data/lib/aws/ec2/elastic_ip_collection.rb +1 -1
- data/lib/aws/ec2/errors.rb +1 -1
- data/lib/aws/ec2/export_task.rb +1 -1
- data/lib/aws/ec2/export_task_collection.rb +1 -1
- data/lib/aws/ec2/filtered_collection.rb +1 -1
- data/lib/aws/ec2/has_permissions.rb +1 -1
- data/lib/aws/ec2/image.rb +1 -1
- data/lib/aws/ec2/image_collection.rb +1 -1
- data/lib/aws/ec2/instance.rb +1 -1
- data/lib/aws/ec2/instance_collection.rb +2 -2
- data/lib/aws/ec2/internet_gateway.rb +1 -1
- data/lib/aws/ec2/internet_gateway/attachment.rb +1 -1
- data/lib/aws/ec2/internet_gateway_collection.rb +1 -1
- data/lib/aws/ec2/key_pair.rb +1 -1
- data/lib/aws/ec2/key_pair_collection.rb +1 -1
- data/lib/aws/ec2/network_acl.rb +1 -1
- data/lib/aws/ec2/network_acl/association.rb +1 -1
- data/lib/aws/ec2/network_acl/entry.rb +1 -1
- data/lib/aws/ec2/network_acl_collection.rb +1 -1
- data/lib/aws/ec2/network_interface.rb +1 -1
- data/lib/aws/ec2/network_interface/attachment.rb +1 -1
- data/lib/aws/ec2/network_interface_collection.rb +1 -1
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +27 -19
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/request.rb +1 -1
- data/lib/aws/ec2/reserved_instances.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_offering.rb +1 -1
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +1 -1
- data/lib/aws/ec2/resource.rb +1 -1
- data/lib/aws/ec2/resource_tag_collection.rb +1 -1
- data/lib/aws/ec2/route_table.rb +1 -1
- data/lib/aws/ec2/route_table/association.rb +1 -1
- data/lib/aws/ec2/route_table/route.rb +7 -1
- data/lib/aws/ec2/route_table_collection.rb +1 -1
- data/lib/aws/ec2/security_group.rb +15 -5
- data/lib/aws/ec2/security_group/ip_permission.rb +6 -2
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +1 -1
- data/lib/aws/ec2/security_group_collection.rb +1 -1
- data/lib/aws/ec2/snapshot.rb +1 -1
- data/lib/aws/ec2/snapshot_collection.rb +1 -1
- data/lib/aws/ec2/subnet.rb +1 -1
- data/lib/aws/ec2/subnet_collection.rb +1 -1
- data/lib/aws/ec2/tag.rb +1 -1
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +1 -1
- data/lib/aws/ec2/tagged_item.rb +1 -1
- data/lib/aws/ec2/volume.rb +1 -1
- data/lib/aws/ec2/volume_collection.rb +1 -1
- data/lib/aws/ec2/vpc.rb +1 -1
- data/lib/aws/ec2/vpc_collection.rb +1 -1
- data/lib/aws/ec2/vpn_connection.rb +1 -1
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +1 -1
- data/lib/aws/ec2/vpn_gateway.rb +1 -1
- data/lib/aws/ec2/vpn_gateway/attachment.rb +1 -1
- data/lib/aws/ec2/vpn_gateway_collection.rb +1 -1
- data/lib/aws/elastic_beanstalk.rb +1 -1
- data/lib/aws/elastic_beanstalk/client.rb +5 -5
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_beanstalk/errors.rb +1 -1
- data/lib/aws/elastic_beanstalk/request.rb +1 -1
- 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 +1 -1
- data/lib/aws/elasticache/client.rb +5 -6
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elasticache/errors.rb +1 -1
- data/lib/aws/elasticache/request.rb +1 -1
- data/lib/aws/elb.rb +1 -1
- data/lib/aws/elb/availability_zone_collection.rb +1 -1
- data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
- data/lib/aws/elb/client.rb +5 -5
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +1 -1
- data/lib/aws/elb/listener.rb +1 -1
- data/lib/aws/elb/listener_collection.rb +1 -1
- data/lib/aws/elb/listener_opts.rb +1 -1
- data/lib/aws/elb/load_balancer.rb +1 -1
- data/lib/aws/elb/load_balancer_collection.rb +1 -1
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +1 -1
- data/lib/aws/elb/request.rb +8 -2
- data/lib/aws/emr.rb +1 -1
- data/lib/aws/emr/client.rb +5 -5
- data/lib/aws/emr/config.rb +1 -1
- data/lib/aws/emr/errors.rb +1 -1
- data/lib/aws/emr/instance_group.rb +1 -1
- data/lib/aws/emr/instance_group_collection.rb +1 -1
- data/lib/aws/emr/job_flow.rb +1 -1
- data/lib/aws/emr/job_flow_collection.rb +1 -1
- data/lib/aws/emr/request.rb +1 -1
- data/lib/aws/errors.rb +1 -1
- data/lib/aws/glacier.rb +29 -1
- data/lib/aws/glacier/archive.rb +3 -1
- data/lib/aws/glacier/archive_collection.rb +19 -14
- data/lib/aws/glacier/client.rb +5 -5
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/errors.rb +1 -1
- data/lib/aws/glacier/request.rb +1 -1
- data/lib/aws/glacier/resource.rb +1 -1
- data/lib/aws/glacier/vault.rb +10 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/glacier/vault_notification_configuration.rb +3 -1
- data/lib/aws/iam.rb +1 -1
- data/lib/aws/iam/access_key.rb +1 -1
- data/lib/aws/iam/access_key_collection.rb +1 -1
- data/lib/aws/iam/account_alias_collection.rb +1 -1
- data/lib/aws/iam/client.rb +5 -5
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +1 -1
- data/lib/aws/iam/errors.rb +1 -1
- data/lib/aws/iam/group.rb +1 -1
- data/lib/aws/iam/group_collection.rb +1 -1
- data/lib/aws/iam/group_policy_collection.rb +1 -1
- data/lib/aws/iam/group_user_collection.rb +1 -1
- data/lib/aws/iam/login_profile.rb +1 -1
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +1 -1
- data/lib/aws/iam/policy.rb +1 -1
- data/lib/aws/iam/policy_collection.rb +1 -1
- data/lib/aws/iam/request.rb +1 -1
- data/lib/aws/iam/resource.rb +5 -14
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +1 -1
- data/lib/aws/iam/signing_certificate.rb +1 -1
- data/lib/aws/iam/signing_certificate_collection.rb +1 -1
- data/lib/aws/iam/user.rb +1 -1
- data/lib/aws/iam/user_collection.rb +1 -1
- data/lib/aws/iam/user_group_collection.rb +1 -1
- data/lib/aws/iam/user_policy.rb +1 -1
- data/lib/aws/iam/user_policy_collection.rb +1 -1
- data/lib/aws/iam/virtual_mfa_device.rb +1 -1
- data/lib/aws/iam/virtual_mfa_device_collection.rb +1 -1
- data/lib/aws/import_export.rb +1 -1
- data/lib/aws/import_export/client.rb +5 -5
- data/lib/aws/import_export/config.rb +1 -1
- data/lib/aws/import_export/errors.rb +1 -1
- data/lib/aws/import_export/request.rb +1 -1
- data/lib/aws/rails.rb +1 -1
- data/lib/aws/rds.rb +1 -1
- data/lib/aws/rds/client.rb +193 -7
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +5 -1
- data/lib/aws/rds/db_instance_collection.rb +1 -1
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/rds/db_snapshot_collection.rb +1 -1
- data/lib/aws/rds/errors.rb +1 -1
- data/lib/aws/rds/request.rb +1 -1
- data/lib/aws/record.rb +1 -1
- data/lib/aws/record/abstract_base.rb +119 -63
- data/lib/aws/record/attributes.rb +1 -1
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +1 -1
- data/lib/aws/record/errors.rb +1 -1
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +1 -1
- data/lib/aws/record/hash_model/attributes.rb +1 -1
- data/lib/aws/record/hash_model/finder_methods.rb +1 -1
- data/lib/aws/record/hash_model/scope.rb +1 -1
- data/lib/aws/record/model.rb +1 -1
- data/lib/aws/record/model/attributes.rb +1 -1
- data/lib/aws/record/model/finder_methods.rb +1 -1
- data/lib/aws/record/model/scope.rb +1 -1
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +2 -2
- data/lib/aws/record/validations.rb +21 -3
- data/lib/aws/record/validator.rb +11 -2
- data/lib/aws/record/validators/acceptance.rb +2 -2
- data/lib/aws/record/validators/block.rb +2 -2
- data/lib/aws/record/validators/confirmation.rb +1 -1
- data/lib/aws/record/validators/count.rb +1 -1
- data/lib/aws/record/validators/exclusion.rb +2 -2
- data/lib/aws/record/validators/format.rb +2 -2
- data/lib/aws/record/validators/inclusion.rb +2 -2
- data/lib/aws/record/validators/length.rb +2 -2
- data/lib/aws/record/validators/method.rb +1 -1
- data/lib/aws/record/validators/numericality.rb +2 -2
- data/lib/aws/record/validators/presence.rb +2 -2
- data/lib/aws/route_53.rb +17 -3
- 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 +5 -5
- data/lib/aws/route_53/config.rb +1 -1
- data/lib/aws/route_53/errors.rb +1 -1
- 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 +1 -1
- data/lib/aws/route_53/resource_record_set.rb +212 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +3 -2
- data/lib/aws/s3/access_control_list.rb +1 -1
- data/lib/aws/s3/acl_object.rb +1 -1
- data/lib/aws/s3/acl_options.rb +1 -1
- data/lib/aws/s3/bucket.rb +114 -1
- data/lib/aws/s3/bucket_collection.rb +1 -1
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +1 -1
- data/lib/aws/s3/bucket_tag_collection.rb +1 -1
- data/lib/aws/s3/bucket_version_collection.rb +1 -1
- data/lib/aws/s3/cipher_io.rb +1 -1
- data/lib/aws/s3/client.rb +148 -98
- data/lib/aws/s3/client/xml.rb +10 -1
- data/lib/aws/s3/config.rb +1 -1
- data/lib/aws/s3/cors_rule.rb +1 -1
- data/lib/aws/s3/cors_rule_collection.rb +1 -1
- data/lib/aws/s3/data_options.rb +1 -1
- data/lib/aws/s3/encryption_utils.rb +1 -1
- data/lib/aws/s3/errors.rb +1 -1
- data/lib/aws/s3/multipart_upload.rb +1 -1
- data/lib/aws/s3/multipart_upload_collection.rb +1 -1
- data/lib/aws/s3/object_collection.rb +1 -1
- data/lib/aws/s3/object_metadata.rb +1 -1
- data/lib/aws/s3/object_upload_collection.rb +1 -1
- data/lib/aws/s3/object_version.rb +1 -1
- data/lib/aws/s3/object_version_collection.rb +1 -1
- data/lib/aws/s3/paginated_collection.rb +1 -1
- data/lib/aws/s3/policy.rb +1 -1
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
- data/lib/aws/s3/prefixed_collection.rb +1 -1
- data/lib/aws/s3/presigned_post.rb +1 -1
- data/lib/aws/s3/request.rb +4 -2
- data/lib/aws/s3/s3_object.rb +77 -83
- data/lib/aws/s3/tree.rb +1 -1
- data/lib/aws/s3/tree/branch_node.rb +1 -1
- data/lib/aws/s3/tree/child_collection.rb +1 -1
- data/lib/aws/s3/tree/leaf_node.rb +1 -1
- data/lib/aws/s3/tree/node.rb +1 -1
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/uploaded_part.rb +1 -1
- data/lib/aws/s3/uploaded_part_collection.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +60 -0
- data/lib/aws/simple_db.rb +1 -1
- data/lib/aws/simple_db/attribute.rb +1 -1
- data/lib/aws/simple_db/attribute_collection.rb +1 -1
- data/lib/aws/simple_db/client.rb +5 -5
- data/lib/aws/simple_db/config.rb +1 -1
- data/lib/aws/simple_db/consistent_read_option.rb +1 -1
- data/lib/aws/simple_db/delete_attributes.rb +1 -1
- data/lib/aws/simple_db/domain.rb +1 -1
- data/lib/aws/simple_db/domain_collection.rb +1 -1
- data/lib/aws/simple_db/domain_metadata.rb +1 -1
- data/lib/aws/simple_db/errors.rb +1 -1
- data/lib/aws/simple_db/expect_condition_option.rb +1 -1
- data/lib/aws/simple_db/item.rb +1 -1
- data/lib/aws/simple_db/item_collection.rb +1 -1
- data/lib/aws/simple_db/item_data.rb +1 -1
- data/lib/aws/simple_db/put_attributes.rb +1 -1
- data/lib/aws/simple_db/request.rb +1 -1
- data/lib/aws/simple_email_service.rb +1 -1
- data/lib/aws/simple_email_service/client.rb +5 -5
- data/lib/aws/simple_email_service/config.rb +1 -1
- data/lib/aws/simple_email_service/email_address_collection.rb +1 -1
- data/lib/aws/simple_email_service/errors.rb +1 -1
- data/lib/aws/simple_email_service/identity.rb +1 -1
- data/lib/aws/simple_email_service/identity_collection.rb +1 -1
- data/lib/aws/simple_email_service/quotas.rb +1 -1
- data/lib/aws/simple_email_service/request.rb +1 -1
- data/lib/aws/simple_workflow.rb +1 -1
- data/lib/aws/simple_workflow/activity_task.rb +1 -1
- data/lib/aws/simple_workflow/activity_task_collection.rb +1 -1
- data/lib/aws/simple_workflow/activity_type.rb +1 -1
- data/lib/aws/simple_workflow/activity_type_collection.rb +1 -1
- data/lib/aws/simple_workflow/client.rb +5 -5
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +1 -1
- data/lib/aws/simple_workflow/decision_task.rb +4 -2
- data/lib/aws/simple_workflow/decision_task_collection.rb +1 -1
- data/lib/aws/simple_workflow/domain.rb +1 -1
- data/lib/aws/simple_workflow/domain_collection.rb +1 -1
- data/lib/aws/simple_workflow/errors.rb +1 -1
- data/lib/aws/simple_workflow/history_event.rb +1 -1
- data/lib/aws/simple_workflow/history_event_collection.rb +1 -1
- data/lib/aws/simple_workflow/option_formatters.rb +1 -1
- data/lib/aws/simple_workflow/request.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +1 -1
- data/lib/aws/simple_workflow/type.rb +1 -1
- data/lib/aws/simple_workflow/type_collection.rb +1 -1
- data/lib/aws/simple_workflow/workflow_execution.rb +1 -1
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +1 -1
- data/lib/aws/simple_workflow/workflow_type.rb +1 -1
- data/lib/aws/simple_workflow/workflow_type_collection.rb +1 -1
- data/lib/aws/sns.rb +1 -1
- data/lib/aws/sns/client.rb +5 -5
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/errors.rb +1 -1
- data/lib/aws/sns/has_delivery_policy.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/request.rb +1 -1
- data/lib/aws/sns/subscription.rb +1 -1
- data/lib/aws/sns/subscription_collection.rb +1 -1
- data/lib/aws/sns/topic.rb +1 -1
- data/lib/aws/sns/topic_collection.rb +1 -1
- data/lib/aws/sns/topic_subscription_collection.rb +1 -1
- data/lib/aws/sqs.rb +1 -1
- data/lib/aws/sqs/client.rb +5 -5
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +1 -1
- data/lib/aws/sqs/policy.rb +1 -1
- data/lib/aws/sqs/queue.rb +2 -2
- data/lib/aws/sqs/queue_collection.rb +1 -1
- data/lib/aws/sqs/received_message.rb +1 -1
- data/lib/aws/sqs/received_sns_message.rb +6 -2
- data/lib/aws/sqs/request.rb +1 -1
- data/lib/aws/storage_gateway.rb +1 -1
- data/lib/aws/storage_gateway/client.rb +5 -5
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/storage_gateway/errors.rb +1 -1
- data/lib/aws/storage_gateway/request.rb +1 -1
- data/lib/aws/sts.rb +1 -1
- data/lib/aws/sts/client.rb +5 -5
- data/lib/aws/sts/config.rb +1 -1
- data/lib/aws/sts/errors.rb +1 -1
- data/lib/aws/sts/federated_session.rb +1 -1
- data/lib/aws/sts/policy.rb +1 -1
- data/lib/aws/sts/request.rb +1 -1
- data/lib/aws/sts/session.rb +1 -1
- data/lib/aws/version.rb +2 -2
- data/lib/net/http/connection_pool.rb +1 -1
- data/lib/net/http/connection_pool/connection.rb +1 -1
- data/lib/net/http/connection_pool/session.rb +1 -1
- data/rails/init.rb +1 -1
- metadata +18 -6
- data/lib/aws/core/http/httparty_handler.rb +0 -115
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
|
|
16
|
+
module AWS
|
|
17
|
+
class Route53
|
|
18
|
+
|
|
19
|
+
# = Create new resource record set
|
|
20
|
+
#
|
|
21
|
+
# rrsets = AWS::Route53::HostedZone.new(hosted_zone_id).rrsets
|
|
22
|
+
# rrset = rrsets.create('foo.example.com.', 'A', :ttl => 300, :resource_records => [{:value => '127.0.0.1'}])
|
|
23
|
+
#
|
|
24
|
+
# = Find existing resource record set
|
|
25
|
+
#
|
|
26
|
+
# rrsets = AWS::Route53::HostedZone.new(hosted_zone_id).rrsets
|
|
27
|
+
# rrset = rrsets['foo.example.com.', 'A']
|
|
28
|
+
#
|
|
29
|
+
class ResourceRecordSetCollection
|
|
30
|
+
|
|
31
|
+
include Core::Collection::WithLimitAndNextToken
|
|
32
|
+
|
|
33
|
+
# @private
|
|
34
|
+
def initialize hosted_zone_id, options = {}
|
|
35
|
+
@hosted_zone_id = hosted_zone_id
|
|
36
|
+
@filters = options[:filters] || {}
|
|
37
|
+
super
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [String]
|
|
41
|
+
attr_reader :hosted_zone_id
|
|
42
|
+
|
|
43
|
+
# Find resource record set by its name, type and identifier.
|
|
44
|
+
# @param [String] name
|
|
45
|
+
# @param [String] type
|
|
46
|
+
# @param [String] set_identifier
|
|
47
|
+
# @return [ResourceRecordSet]
|
|
48
|
+
def [] name, type, set_identifier = nil
|
|
49
|
+
ResourceRecordSet.new(name, type, :set_identifier => set_identifier, :hosted_zone_id => hosted_zone_id, :config => config)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Create new resource record set.
|
|
53
|
+
# @param [String] name
|
|
54
|
+
# @param [String] type
|
|
55
|
+
# @param [Hash] options
|
|
56
|
+
# @return [ResourceRecordSet]
|
|
57
|
+
def create name, type, options = {}
|
|
58
|
+
batch = ChangeBatch.new(hosted_zone_id, :comment => options[:comment], :config => config)
|
|
59
|
+
batch << CreateRequest.new(name, type, options)
|
|
60
|
+
|
|
61
|
+
change_info = batch.call()
|
|
62
|
+
if change_info
|
|
63
|
+
ResourceRecordSet.new(name,
|
|
64
|
+
type,
|
|
65
|
+
:set_identifier => options[:set_identifier],
|
|
66
|
+
:change_info => change_info,
|
|
67
|
+
:hosted_zone_id => hosted_zone_id,
|
|
68
|
+
:config => config)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
private
|
|
73
|
+
|
|
74
|
+
def _each_item next_token, limit, options = {}, &block
|
|
75
|
+
|
|
76
|
+
options = @filters.merge(options)
|
|
77
|
+
|
|
78
|
+
options[:start_record_name] = next_token[:next_record_name] if next_token and next_token[:next_record_name]
|
|
79
|
+
options[:start_record_type] = next_token[:next_record_type] if next_token and next_token[:next_record_type]
|
|
80
|
+
options[:start_record_identifier] = next_token[:next_record_identifier] if next_token and next_token[:next_record_identifier]
|
|
81
|
+
options[:maxitems] = limit if limit
|
|
82
|
+
|
|
83
|
+
options[:hosted_zone_id] = hosted_zone_id
|
|
84
|
+
|
|
85
|
+
resp = client.list_resource_record_sets(options)
|
|
86
|
+
resp.data[:resource_record_sets].each do |details|
|
|
87
|
+
rrset = ResourceRecordSet.new_from(
|
|
88
|
+
:list_resource_record_sets,
|
|
89
|
+
details,
|
|
90
|
+
details[:name],
|
|
91
|
+
details[:type],
|
|
92
|
+
:set_identifier => details[:set_identifier],
|
|
93
|
+
:hosted_zone_id => hosted_zone_id, :config => config)
|
|
94
|
+
|
|
95
|
+
yield(rrset)
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
if resp.data[:is_truncated]
|
|
100
|
+
{
|
|
101
|
+
:next_record_name => resp.data[:next_record_name],
|
|
102
|
+
:next_record_type => resp.data[:next_record_type],
|
|
103
|
+
:next_record_identifier => resp.data[:next_record_identifier],
|
|
104
|
+
}
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
data/lib/aws/s3.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -98,7 +98,7 @@ module AWS
|
|
|
98
98
|
# end
|
|
99
99
|
#
|
|
100
100
|
# # enumerate at most 20 objects with the given prefix
|
|
101
|
-
# bucket.objects.with_prefix('photos/').each(:limit => 20)
|
|
101
|
+
# bucket.objects.with_prefix('photos/').each(:limit => 20) do |photo|
|
|
102
102
|
# puts photo.key
|
|
103
103
|
# end
|
|
104
104
|
#
|
|
@@ -140,6 +140,7 @@ module AWS
|
|
|
140
140
|
autoload :Tree, 'tree'
|
|
141
141
|
autoload :UploadedPart, 'uploaded_part'
|
|
142
142
|
autoload :UploadedPartCollection, 'uploaded_part_collection'
|
|
143
|
+
autoload :WebsiteConfiguration, 'website_configuration'
|
|
143
144
|
end
|
|
144
145
|
|
|
145
146
|
include Core::ServiceInterface
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
data/lib/aws/s3/acl_object.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
data/lib/aws/s3/acl_options.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
data/lib/aws/s3/bucket.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -68,6 +68,33 @@ module AWS
|
|
|
68
68
|
# See {ObjectCollection} and {S3Object} for more information on working
|
|
69
69
|
# with objects.
|
|
70
70
|
#
|
|
71
|
+
# = Website Configuration
|
|
72
|
+
#
|
|
73
|
+
# It is easy to enable website hosting for a bucket.
|
|
74
|
+
#
|
|
75
|
+
# bucket.configure_website
|
|
76
|
+
#
|
|
77
|
+
# You can specify the index and error documents by passing a block.
|
|
78
|
+
# If your bucket is already configured as a website, the current
|
|
79
|
+
# configuration will be yielded. If you bucket it not currently
|
|
80
|
+
# configured as a website, a new configuration will be yielded
|
|
81
|
+
# with default values.
|
|
82
|
+
#
|
|
83
|
+
# bucket.configure_website do |cfg|
|
|
84
|
+
# cfg.index_document_suffix = 'index.html'
|
|
85
|
+
# cfg.error_document_key = 'error.html'
|
|
86
|
+
# end
|
|
87
|
+
#
|
|
88
|
+
# You can disable website hosting two ways:
|
|
89
|
+
#
|
|
90
|
+
# bucket.remove_website_configuration
|
|
91
|
+
# bucket.website_configuration = nil
|
|
92
|
+
#
|
|
93
|
+
# You can use {#website_configuration=} to copy a website configuration
|
|
94
|
+
# from one bucket to another.
|
|
95
|
+
#
|
|
96
|
+
# bucket.website_configuration = other_bucket.website_configuration
|
|
97
|
+
#
|
|
71
98
|
# = Bucket Policies and ACLs
|
|
72
99
|
#
|
|
73
100
|
# You can control access to your bucket and its contents a number
|
|
@@ -231,6 +258,92 @@ module AWS
|
|
|
231
258
|
client.get_bucket_location(:bucket_name => name).location_constraint
|
|
232
259
|
end
|
|
233
260
|
|
|
261
|
+
# Configure the current bucket as a website.
|
|
262
|
+
#
|
|
263
|
+
# bucket.configure_website
|
|
264
|
+
#
|
|
265
|
+
# If you pass a block, the website configuration object
|
|
266
|
+
# will be yielded. You can modify it before it is saved.
|
|
267
|
+
#
|
|
268
|
+
# bucket.configure_website do |cfg|
|
|
269
|
+
# cfg.index_document_suffix = 'index.html'
|
|
270
|
+
# cfg.error_document_key = 'error.html'
|
|
271
|
+
# end
|
|
272
|
+
#
|
|
273
|
+
# If the bucket already has a website configuration, it will be loaded
|
|
274
|
+
# and yielded. This makes it possible to modify an existing
|
|
275
|
+
# configuration.
|
|
276
|
+
#
|
|
277
|
+
# # only rename the error document
|
|
278
|
+
# bucket.configure_website do |cfg|
|
|
279
|
+
# cfg.error_document_key = 'oops.html'
|
|
280
|
+
# end
|
|
281
|
+
#
|
|
282
|
+
# @yieldparam [WebsiteConfiguration] website_config
|
|
283
|
+
# @return [WebsiteConfiguration]
|
|
284
|
+
# @see #website_configuration
|
|
285
|
+
# @see #website_configuration=
|
|
286
|
+
# @see #remove_website_configuration
|
|
287
|
+
# @see #website?
|
|
288
|
+
def configure_website &block
|
|
289
|
+
website_config = self.website_configuration
|
|
290
|
+
website_config ||= WebsiteConfiguration.new
|
|
291
|
+
yield(website_config) if block_given?
|
|
292
|
+
self.website_configuration = website_config
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
# Returns the bucket website configuration. Returns +nil+ if the bucket
|
|
296
|
+
# is not configured as a website.
|
|
297
|
+
# @return [WebsiteConfiguration,nil]
|
|
298
|
+
# @see #configure_website
|
|
299
|
+
# @see #website_configuration=
|
|
300
|
+
# @see #remove_website_configuration
|
|
301
|
+
# @see #website?
|
|
302
|
+
def website_configuration
|
|
303
|
+
resp = client.get_bucket_website(:bucket_name => name)
|
|
304
|
+
WebsiteConfiguration.new(resp.data)
|
|
305
|
+
rescue Errors::NoSuchWebsiteConfiguration
|
|
306
|
+
nil
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
# Sets the website configuration. Deletes the configuration if
|
|
310
|
+
# +nil+ is passed.
|
|
311
|
+
# @param [WebsiteConfiguration,nil] website_configuration
|
|
312
|
+
# @see #configure_website
|
|
313
|
+
# @see #website_configuration
|
|
314
|
+
# @see #remove_website_configuration
|
|
315
|
+
# @see #website?
|
|
316
|
+
def website_configuration= website_configuration
|
|
317
|
+
if website_configuration
|
|
318
|
+
client_opts = website_configuration.to_hash
|
|
319
|
+
client_opts[:bucket_name] = name
|
|
320
|
+
client.put_bucket_website(client_opts)
|
|
321
|
+
else
|
|
322
|
+
remove_website_configuration
|
|
323
|
+
end
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
# @return [nil] Deletes the bucket website configuration.
|
|
327
|
+
# @see #configure_website
|
|
328
|
+
# @see #website_configuration
|
|
329
|
+
# @see #website_configuration=
|
|
330
|
+
# @see #website?
|
|
331
|
+
def remove_website_configuration
|
|
332
|
+
client.delete_bucket_website(:bucket_name => name)
|
|
333
|
+
@website_configuration = false
|
|
334
|
+
nil
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
# @return [Boolean] Returns +true+ if this bucket is configured as
|
|
338
|
+
# a website.
|
|
339
|
+
# @see #configure_website
|
|
340
|
+
# @see #website_configuration
|
|
341
|
+
# @see #website_configuration=
|
|
342
|
+
# @see #remove_website_configuration
|
|
343
|
+
def website?
|
|
344
|
+
!!website_configuration
|
|
345
|
+
end
|
|
346
|
+
|
|
234
347
|
# Returns the tags for this bucket.
|
|
235
348
|
#
|
|
236
349
|
# tags = bucket.tags
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
data/lib/aws/s3/cipher_io.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
data/lib/aws/s3/client.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2011-
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
4
|
# may not use this file except in compliance with the License. A copy of
|
|
@@ -37,6 +37,7 @@ module AWS
|
|
|
37
37
|
EMPTY_BODY_ERRORS = {
|
|
38
38
|
304 => Errors::NotModified,
|
|
39
39
|
403 => Errors::Forbidden,
|
|
40
|
+
400 => Errors::BadRequest,
|
|
40
41
|
404 => Errors::NoSuchKey,
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -152,6 +153,58 @@ module AWS
|
|
|
152
153
|
end
|
|
153
154
|
alias_method :put_bucket, :create_bucket
|
|
154
155
|
|
|
156
|
+
# @overload put_bucket_website(options = {})
|
|
157
|
+
# @param [Hash] options
|
|
158
|
+
# @option options [required,String] :bucket_name
|
|
159
|
+
# @option options [required,Hash] :index_document
|
|
160
|
+
# * +:suffix+ - (*required*, String) - A suffix that is appended to
|
|
161
|
+
# a request that is for a directory on the website endpoint
|
|
162
|
+
# (e.g. if the suffix is index.html and you make a request to
|
|
163
|
+
# samplebucket/images/ the data that is returned will be for
|
|
164
|
+
# the object with the key name images/index.html).
|
|
165
|
+
# The suffix must not be empty and must not include a
|
|
166
|
+
# slash character.
|
|
167
|
+
# @option options [Hash] :error_document
|
|
168
|
+
# * +:key+ - (*required*, String) - The object key name to use
|
|
169
|
+
# when a 4XX class error occurs.
|
|
170
|
+
# @return [Core::Response]
|
|
171
|
+
bucket_method(:put_bucket_website, :put, 'website') do
|
|
172
|
+
|
|
173
|
+
configure_request do |req, options|
|
|
174
|
+
validate_bucket_name!(options[:bucket_name])
|
|
175
|
+
req.body = Nokogiri::XML::Builder.new do |xml|
|
|
176
|
+
xml.WebsiteConfiguration(:xmlns => XMLNS) do
|
|
177
|
+
xml.IndexDocument do
|
|
178
|
+
xml.Suffix(options[:index_document][:suffix])
|
|
179
|
+
end
|
|
180
|
+
if options[:error_document]
|
|
181
|
+
xml.ErrorDocument do
|
|
182
|
+
xml.Key(options[:error_document][:key])
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end.doc.root.to_xml
|
|
187
|
+
super(req, options)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# @overload get_bucket_website(options = {})
|
|
193
|
+
# @param [Hash] options
|
|
194
|
+
# @option options [required,String] :bucket_name
|
|
195
|
+
# @return [Core::Response]
|
|
196
|
+
# * +:index_document+ - (Hash)
|
|
197
|
+
# * +:suffix+ - (String)
|
|
198
|
+
# * +:error_document+ - (Hash)
|
|
199
|
+
# * +:key+ - (String)
|
|
200
|
+
bucket_method(:get_bucket_website, :get, 'website', XML::GetBucketWebsite)
|
|
201
|
+
|
|
202
|
+
# @overload delete_bucket_website(options = {})
|
|
203
|
+
# @param [Hash] options
|
|
204
|
+
# @option options [required,String] :bucket_name
|
|
205
|
+
# @return [Core::Response]
|
|
206
|
+
bucket_method(:delete_bucket_website, :delete, 'website')
|
|
207
|
+
|
|
155
208
|
# Deletes an empty bucket.
|
|
156
209
|
# @overload delete_bucket(options = {})
|
|
157
210
|
# @param [Hash] options
|
|
@@ -734,6 +787,9 @@ module AWS
|
|
|
734
787
|
# is made to determine the content length of strings, files,
|
|
735
788
|
# tempfiles, io objects, and any object that responds
|
|
736
789
|
# to +#length+ or +#size+.
|
|
790
|
+
# @option options [String] :website_redirect_location If the bucket is
|
|
791
|
+
# configured as a website, redirects requests for this object to
|
|
792
|
+
# another object in the same bucket or to an external URL.
|
|
737
793
|
# @option options [Hash] :metadata
|
|
738
794
|
# A hash of metadata to be included with the
|
|
739
795
|
# object. These will be sent to S3 as headers prefixed with
|
|
@@ -761,7 +817,8 @@ module AWS
|
|
|
761
817
|
# The base64 encoded content md5 of the +:data+.
|
|
762
818
|
# @option options [String] :content_type
|
|
763
819
|
# Specifies the content type.
|
|
764
|
-
# @option options [String] :expires
|
|
820
|
+
# @option options [String] :expires The date and time at which the
|
|
821
|
+
# object is no longer cacheable.
|
|
765
822
|
# @option options [String] :acl A canned ACL (e.g. 'private',
|
|
766
823
|
# 'public-read', etc). See the S3 API documentation for
|
|
767
824
|
# a complete list of valid values.
|
|
@@ -773,6 +830,7 @@ module AWS
|
|
|
773
830
|
# @return [Core::Response]
|
|
774
831
|
#
|
|
775
832
|
object_method(:put_object, :put, :header_options => {
|
|
833
|
+
:website_redirect_location => 'x-amz-website-redirect-location',
|
|
776
834
|
:acl => 'x-amz-acl',
|
|
777
835
|
:grant_read => 'x-amz-grant-read',
|
|
778
836
|
:grant_write => 'x-amz-grant-write',
|
|
@@ -784,7 +842,7 @@ module AWS
|
|
|
784
842
|
:content_disposition => 'Content-Disposition',
|
|
785
843
|
:content_encoding => 'Content-Encoding',
|
|
786
844
|
:content_type => 'Content-Type',
|
|
787
|
-
:expires => 'Expires'
|
|
845
|
+
:expires => 'Expires',
|
|
788
846
|
}) do
|
|
789
847
|
|
|
790
848
|
configure_request do |request, options|
|
|
@@ -800,19 +858,8 @@ module AWS
|
|
|
800
858
|
|
|
801
859
|
end
|
|
802
860
|
|
|
803
|
-
process_response do |
|
|
804
|
-
|
|
805
|
-
response.data[:version_id] =
|
|
806
|
-
response.http_response.header('x-amz-version-id')
|
|
807
|
-
|
|
808
|
-
response.data[:etag] = response.http_response.header('ETag')
|
|
809
|
-
|
|
810
|
-
if time = response.http_response.header('Last-Modified')
|
|
811
|
-
response.data[:last_modified] = Time.parse(time)
|
|
812
|
-
end
|
|
813
|
-
|
|
814
|
-
add_sse_to_response(response)
|
|
815
|
-
|
|
861
|
+
process_response do |resp|
|
|
862
|
+
extract_object_headers(resp)
|
|
816
863
|
end
|
|
817
864
|
|
|
818
865
|
simulate_response do |response|
|
|
@@ -884,10 +931,10 @@ module AWS
|
|
|
884
931
|
end
|
|
885
932
|
|
|
886
933
|
process_response do |resp|
|
|
934
|
+
extract_object_headers(resp)
|
|
887
935
|
resp.data[:data] = resp.http_response.body
|
|
888
|
-
resp.data[:version_id] = resp.http_response.header('x-amz-version-id')
|
|
889
|
-
add_sse_to_response(resp)
|
|
890
936
|
end
|
|
937
|
+
|
|
891
938
|
end
|
|
892
939
|
|
|
893
940
|
# @overload head_object(options = {})
|
|
@@ -906,58 +953,9 @@ module AWS
|
|
|
906
953
|
end
|
|
907
954
|
|
|
908
955
|
process_response do |resp|
|
|
909
|
-
|
|
910
|
-
# create a hash of user-supplied metadata
|
|
911
|
-
meta = {}
|
|
912
|
-
resp.http_response.headers.each_pair do |name,value|
|
|
913
|
-
if name =~ /^x-amz-meta-(.+)$/i
|
|
914
|
-
meta[$1] = [value].flatten.join
|
|
915
|
-
end
|
|
916
|
-
end
|
|
917
|
-
meta
|
|
918
|
-
resp.data[:meta] = meta
|
|
919
|
-
|
|
920
|
-
if expiry = resp.http_response.headers['x-amz-expiration']
|
|
921
|
-
expiry.first =~ /^expiry-date="(.+)", rule-id="(.+)"$/
|
|
922
|
-
exp_date = DateTime.parse($1)
|
|
923
|
-
exp_rule_id = $2
|
|
924
|
-
else
|
|
925
|
-
exp_date = nil
|
|
926
|
-
exp_rule_id = nil
|
|
927
|
-
end
|
|
928
|
-
|
|
929
|
-
if restore = resp.http_response.headers['x-amz-restore']
|
|
930
|
-
restore.first =~ /ongoing-request="(.+?)", expiry-date="(.+?)"/
|
|
931
|
-
restoring = $1 == "true"
|
|
932
|
-
restore_date = DateTime.parse($2)
|
|
933
|
-
else
|
|
934
|
-
restoring = false
|
|
935
|
-
restore_date = nil
|
|
936
|
-
end
|
|
937
|
-
|
|
938
|
-
resp.data[:expiration_date] = exp_date
|
|
939
|
-
resp.data[:expiration_rule_id] = exp_rule_id
|
|
940
|
-
resp.data[:restore_in_progress] = restoring
|
|
941
|
-
resp.data[:restore_expiration_date] = restore_date
|
|
942
|
-
|
|
943
|
-
{
|
|
944
|
-
'x-amz-version-id' => :version_id,
|
|
945
|
-
'content-type' => :content_type,
|
|
946
|
-
'etag' => :etag,
|
|
947
|
-
}.each_pair do |header,method|
|
|
948
|
-
resp.data[method] = resp.http_response.header(header)
|
|
949
|
-
end
|
|
950
|
-
|
|
951
|
-
if time = resp.http_response.header('Last-Modified')
|
|
952
|
-
resp.data[:last_modified] = Time.parse(time)
|
|
953
|
-
end
|
|
954
|
-
|
|
955
|
-
resp.data[:content_length] =
|
|
956
|
-
resp.http_response.header('content-length').to_i
|
|
957
|
-
|
|
958
|
-
add_sse_to_response(resp)
|
|
959
|
-
|
|
956
|
+
extract_object_headers(resp)
|
|
960
957
|
end
|
|
958
|
+
|
|
961
959
|
end
|
|
962
960
|
|
|
963
961
|
# @overload delete_object(options = {})
|
|
@@ -1039,6 +1037,9 @@ module AWS
|
|
|
1039
1037
|
# @param [Hash] options
|
|
1040
1038
|
# @option options [required,String] :bucket_name
|
|
1041
1039
|
# @option options [required,String] :key
|
|
1040
|
+
# @option options [String] :website_redirect_location If the bucket is
|
|
1041
|
+
# configured as a website, redirects requests for this object to
|
|
1042
|
+
# another object in the same bucket or to an external URL.
|
|
1042
1043
|
# @option options [Hash] :metadata
|
|
1043
1044
|
# @option options [Symbol] :acl
|
|
1044
1045
|
# @option options [String] :cache_control
|
|
@@ -1052,7 +1053,8 @@ module AWS
|
|
|
1052
1053
|
# @option options [Symbol,String] :server_side_encryption (nil) The
|
|
1053
1054
|
# algorithm used to encrypt the object on the server side
|
|
1054
1055
|
# (e.g. :aes256).
|
|
1055
|
-
# @option options [String] :expires
|
|
1056
|
+
# @option options [String] :expires The date and time at which the
|
|
1057
|
+
# object is no longer cacheable.
|
|
1056
1058
|
# @option options [String] :acl A canned ACL (e.g. 'private',
|
|
1057
1059
|
# 'public-read', etc). See the S3 API documentation for
|
|
1058
1060
|
# a complete list of valid values.
|
|
@@ -1065,6 +1067,7 @@ module AWS
|
|
|
1065
1067
|
object_method(:initiate_multipart_upload, :post, 'uploads',
|
|
1066
1068
|
XML::InitiateMultipartUpload,
|
|
1067
1069
|
:header_options => {
|
|
1070
|
+
:website_redirect_location => 'x-amz-website-redirect-location',
|
|
1068
1071
|
:acl => 'x-amz-acl',
|
|
1069
1072
|
:grant_read => 'x-amz-grant-read',
|
|
1070
1073
|
:grant_write => 'x-amz-grant-write',
|
|
@@ -1075,7 +1078,7 @@ module AWS
|
|
|
1075
1078
|
:content_disposition => 'Content-Disposition',
|
|
1076
1079
|
:content_encoding => 'Content-Encoding',
|
|
1077
1080
|
:content_type => 'Content-Type',
|
|
1078
|
-
:expires => 'Expires'
|
|
1081
|
+
:expires => 'Expires',
|
|
1079
1082
|
}) do
|
|
1080
1083
|
|
|
1081
1084
|
configure_request do |req, options|
|
|
@@ -1085,8 +1088,8 @@ module AWS
|
|
|
1085
1088
|
super(req, options)
|
|
1086
1089
|
end
|
|
1087
1090
|
|
|
1088
|
-
process_response do |
|
|
1089
|
-
|
|
1091
|
+
process_response do |resp|
|
|
1092
|
+
extract_object_headers(resp)
|
|
1090
1093
|
end
|
|
1091
1094
|
|
|
1092
1095
|
end
|
|
@@ -1178,12 +1181,8 @@ module AWS
|
|
|
1178
1181
|
|
|
1179
1182
|
end
|
|
1180
1183
|
|
|
1181
|
-
process_response do |
|
|
1182
|
-
|
|
1183
|
-
if time = response.http_response.header('Last-Modified')
|
|
1184
|
-
response.data[:last_modified] = Time.parse(time)
|
|
1185
|
-
end
|
|
1186
|
-
add_sse_to_response(response)
|
|
1184
|
+
process_response do |resp|
|
|
1185
|
+
extract_object_headers(resp)
|
|
1187
1186
|
end
|
|
1188
1187
|
|
|
1189
1188
|
simulate_response do |response|
|
|
@@ -1215,15 +1214,14 @@ module AWS
|
|
|
1215
1214
|
"<CompleteMultipartUpload>#{parts_xml}</CompleteMultipartUpload>"
|
|
1216
1215
|
end
|
|
1217
1216
|
|
|
1218
|
-
process_response do |
|
|
1219
|
-
|
|
1220
|
-
response.data[:version_id] =
|
|
1221
|
-
response.http_response.header('x-amz-version-id')
|
|
1217
|
+
process_response do |resp|
|
|
1218
|
+
extract_object_headers(resp)
|
|
1222
1219
|
end
|
|
1223
1220
|
|
|
1224
1221
|
simulate_response do |response|
|
|
1225
1222
|
response.data[:version_id] = nil
|
|
1226
1223
|
end
|
|
1224
|
+
|
|
1227
1225
|
end
|
|
1228
1226
|
|
|
1229
1227
|
# @overload abort_multipart_upload(options = {})
|
|
@@ -1267,6 +1265,9 @@ module AWS
|
|
|
1267
1265
|
# to copy a object into.
|
|
1268
1266
|
# @option options [required, String] :key Where (object key) in the
|
|
1269
1267
|
# bucket the object should be copied to.
|
|
1268
|
+
# @option options [String] :website_redirect_location If the bucket is
|
|
1269
|
+
# configured as a website, redirects requests for this object to
|
|
1270
|
+
# another object in the same bucket or to an external URL.
|
|
1270
1271
|
# @option options [required, String] :copy_source The source
|
|
1271
1272
|
# bucket name and key, joined by a forward slash ('/').
|
|
1272
1273
|
# This string must be URL-encoded. Additionally, you must
|
|
@@ -1281,6 +1282,8 @@ module AWS
|
|
|
1281
1282
|
# Controls whether Reduced Redundancy Storage is enabled for
|
|
1282
1283
|
# the object. Valid values are 'STANDARD' and
|
|
1283
1284
|
# 'REDUCED_REDUNDANCY'.
|
|
1285
|
+
# @option options [String] :expires The date and time at which the
|
|
1286
|
+
# object is no longer cacheable.
|
|
1284
1287
|
# @option options [String] :grant_read
|
|
1285
1288
|
# @option options [String] :grant_write
|
|
1286
1289
|
# @option options [String] :grant_read_acp
|
|
@@ -1288,6 +1291,7 @@ module AWS
|
|
|
1288
1291
|
# @option options [String] :grant_full_control
|
|
1289
1292
|
# @return [Core::Response]
|
|
1290
1293
|
object_method(:copy_object, :put, :header_options => {
|
|
1294
|
+
:website_redirect_location => 'x-amz-website-redirect-location',
|
|
1291
1295
|
:acl => 'x-amz-acl',
|
|
1292
1296
|
:grant_read => 'x-amz-grant-read',
|
|
1293
1297
|
:grant_write => 'x-amz-grant-write',
|
|
@@ -1299,6 +1303,7 @@ module AWS
|
|
|
1299
1303
|
:metadata_directive => 'x-amz-metadata-directive',
|
|
1300
1304
|
:content_type => 'Content-Type',
|
|
1301
1305
|
:content_disposition => 'Content-Disposition',
|
|
1306
|
+
:expires => 'Expires',
|
|
1302
1307
|
}) do
|
|
1303
1308
|
|
|
1304
1309
|
configure_request do |req, options|
|
|
@@ -1318,14 +1323,8 @@ module AWS
|
|
|
1318
1323
|
end
|
|
1319
1324
|
end
|
|
1320
1325
|
|
|
1321
|
-
process_response do |
|
|
1322
|
-
|
|
1323
|
-
response.http_response.header('x-amz-version-id')
|
|
1324
|
-
response.data[:etag] = response.http_response.header('ETag')
|
|
1325
|
-
if time = response.http_response.header('Last-Modified')
|
|
1326
|
-
response.data[:last_modified] = Time.parse(time)
|
|
1327
|
-
end
|
|
1328
|
-
add_sse_to_response(response)
|
|
1326
|
+
process_response do |resp|
|
|
1327
|
+
extract_object_headers(resp)
|
|
1329
1328
|
end
|
|
1330
1329
|
|
|
1331
1330
|
end
|
|
@@ -1372,13 +1371,6 @@ module AWS
|
|
|
1372
1371
|
req
|
|
1373
1372
|
end
|
|
1374
1373
|
|
|
1375
|
-
def add_sse_to_response response
|
|
1376
|
-
if sse = response.http_response.header('x-amz-server-side-encryption')
|
|
1377
|
-
sse = sse.downcase.to_sym
|
|
1378
|
-
end
|
|
1379
|
-
response.data[:server_side_encryption] = sse
|
|
1380
|
-
end
|
|
1381
|
-
|
|
1382
1374
|
# Previously the access control policy could be specified via :acl
|
|
1383
1375
|
# as a string or an object that responds to #to_xml. The prefered
|
|
1384
1376
|
# method now is to pass :access_control_policy an xml document.
|
|
@@ -1407,6 +1399,64 @@ module AWS
|
|
|
1407
1399
|
Base64.encode64(Digest::MD5.digest(str)).strip
|
|
1408
1400
|
end
|
|
1409
1401
|
|
|
1402
|
+
def extract_object_headers resp
|
|
1403
|
+
meta = {}
|
|
1404
|
+
resp.http_response.headers.each_pair do |name,value|
|
|
1405
|
+
if name =~ /^x-amz-meta-(.+)$/i
|
|
1406
|
+
meta[$1] = [value].flatten.join
|
|
1407
|
+
end
|
|
1408
|
+
end
|
|
1409
|
+
resp.data[:meta] = meta
|
|
1410
|
+
|
|
1411
|
+
if expiry = resp.http_response.headers['x-amz-expiration']
|
|
1412
|
+
expiry.first =~ /^expiry-date="(.+)", rule-id="(.+)"$/
|
|
1413
|
+
exp_date = DateTime.parse($1)
|
|
1414
|
+
exp_rule_id = $2
|
|
1415
|
+
else
|
|
1416
|
+
exp_date = nil
|
|
1417
|
+
exp_rule_id = nil
|
|
1418
|
+
end
|
|
1419
|
+
resp.data[:expiration_date] = exp_date if exp_date
|
|
1420
|
+
resp.data[:expiration_rule_id] = exp_rule_id if exp_rule_id
|
|
1421
|
+
|
|
1422
|
+
restoring = false
|
|
1423
|
+
restore_date = nil
|
|
1424
|
+
|
|
1425
|
+
if restore = resp.http_response.headers['x-amz-restore']
|
|
1426
|
+
if restore.first =~ /ongoing-request="(.+?)", expiry-date="(.+?)"/
|
|
1427
|
+
restoring = $1 == "true"
|
|
1428
|
+
restore_date = DateTime.parse($2)
|
|
1429
|
+
elsif restore.first =~ /ongoing-request="(.+?)"/
|
|
1430
|
+
restoring = $1 == "true"
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
resp.data[:restore_in_progress] = restoring
|
|
1434
|
+
resp.data[:restore_expiration_date] = restore_date if restore_date
|
|
1435
|
+
|
|
1436
|
+
{
|
|
1437
|
+
'x-amz-version-id' => :version_id,
|
|
1438
|
+
'content-type' => :content_type,
|
|
1439
|
+
'etag' => :etag,
|
|
1440
|
+
'x-amz-website-redirect-location' => :website_redirect_location,
|
|
1441
|
+
}.each_pair do |header,method|
|
|
1442
|
+
if value = resp.http_response.header(header)
|
|
1443
|
+
resp.data[method] = value
|
|
1444
|
+
end
|
|
1445
|
+
end
|
|
1446
|
+
|
|
1447
|
+
if time = resp.http_response.header('Last-Modified')
|
|
1448
|
+
resp.data[:last_modified] = Time.parse(time)
|
|
1449
|
+
end
|
|
1450
|
+
|
|
1451
|
+
if length = resp.http_response.header('content-length')
|
|
1452
|
+
resp.data[:content_length] = length.to_i
|
|
1453
|
+
end
|
|
1454
|
+
|
|
1455
|
+
if sse = resp.http_response.header('x-amz-server-side-encryption')
|
|
1456
|
+
resp.data[:server_side_encryption] = sse.downcase.to_sym
|
|
1457
|
+
end
|
|
1458
|
+
end
|
|
1459
|
+
|
|
1410
1460
|
module Validators
|
|
1411
1461
|
|
|
1412
1462
|
# @return [Boolean] Returns true if the given bucket name is valid.
|