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,231 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class S3
|
|
16
|
+
class Client < Core::Client
|
|
17
|
+
|
|
18
|
+
# @private
|
|
19
|
+
module XML
|
|
20
|
+
|
|
21
|
+
BaseGrammar = Core::XML::Grammar.new({}, :inflect_rename => true)
|
|
22
|
+
|
|
23
|
+
ListBuckets = BaseGrammar.customize do
|
|
24
|
+
element "Buckets" do
|
|
25
|
+
list "Bucket"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
GetBucketAcl = GetObjectAcl = BaseGrammar.customize do
|
|
30
|
+
element "AccessControlList" do
|
|
31
|
+
ignore
|
|
32
|
+
element "Grant" do
|
|
33
|
+
rename :grants
|
|
34
|
+
list
|
|
35
|
+
element "Grantee" do
|
|
36
|
+
element "ID" do
|
|
37
|
+
rename :canonical_user_id
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
element "Permission" do
|
|
41
|
+
symbol_value
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
ListObjects = BaseGrammar.customize do
|
|
48
|
+
|
|
49
|
+
element("Name") { rename :bucket_name }
|
|
50
|
+
element("MaxKeys") { integer_value }
|
|
51
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
52
|
+
element("Delimiter") { force }
|
|
53
|
+
|
|
54
|
+
element("Contents") do
|
|
55
|
+
list
|
|
56
|
+
element("Owner") do
|
|
57
|
+
element("ID") { }
|
|
58
|
+
element("DisplayName") { }
|
|
59
|
+
end
|
|
60
|
+
element("Key") { }
|
|
61
|
+
element("Size") { }
|
|
62
|
+
element("StorageClass") { }
|
|
63
|
+
element("ETag") { rename :etag }
|
|
64
|
+
|
|
65
|
+
element("LastModified") { time_value }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
element "CommonPrefixes" do
|
|
69
|
+
collect_values
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
GetBucketVersioning = BaseGrammar.customize do
|
|
75
|
+
default_value :status, :unversioned
|
|
76
|
+
element("Status") do
|
|
77
|
+
symbol_value
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
ListObjectVersions = BaseGrammar.customize do
|
|
82
|
+
|
|
83
|
+
element("MaxKeys") { integer_value }
|
|
84
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
85
|
+
element("NextKeyMarker") { force }
|
|
86
|
+
element("NextVersionIdMarker") { force }
|
|
87
|
+
|
|
88
|
+
%w(DeleteMarker Version).each do |element_name|
|
|
89
|
+
element(element_name) do
|
|
90
|
+
collect_values
|
|
91
|
+
rename(:versions)
|
|
92
|
+
element("IsLatest") { rename :latest; boolean_value }
|
|
93
|
+
element("LastModified") { datetime_value }
|
|
94
|
+
element("ETag") { rename :etag }
|
|
95
|
+
element("Size") { integer_value }
|
|
96
|
+
element("StorageClass") { symbol_value }
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
element "DeleteMarker" do
|
|
101
|
+
default_value(:delete_marker, true)
|
|
102
|
+
default_value(:version, false)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
element "Version" do
|
|
106
|
+
default_value(:delete_marker, false)
|
|
107
|
+
default_value(:version, true)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
element "CommonPrefixes" do
|
|
111
|
+
collect_values
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
InitiateMultipartUpload = BaseGrammar.customize do
|
|
117
|
+
element("UploadId") { force }
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
ListMultipartUploads = BaseGrammar.customize do
|
|
121
|
+
|
|
122
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
123
|
+
element("MaxUploads") { integer_value }
|
|
124
|
+
element("NextKeyMarker") { force }
|
|
125
|
+
element("NextUploadIdMarker") { force }
|
|
126
|
+
element("Upload") do
|
|
127
|
+
collect_values
|
|
128
|
+
rename :uploads
|
|
129
|
+
element("StorageClass") { symbol_value }
|
|
130
|
+
element("Initiated") { datetime_value }
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
element "CommonPrefixes" do
|
|
134
|
+
collect_values
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
DeleteObjects = BaseGrammar.customize do
|
|
140
|
+
element("Deleted") do
|
|
141
|
+
element("DeleteMarker") { boolean_value }
|
|
142
|
+
list
|
|
143
|
+
end
|
|
144
|
+
element("Error") { list; rename(:errors) }
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
CompleteMultipartUpload = BaseGrammar.customize
|
|
148
|
+
|
|
149
|
+
ListParts = BaseGrammar.customize do
|
|
150
|
+
element("StorageClass") { symbol_value }
|
|
151
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
152
|
+
element("MaxParts") { integer_value }
|
|
153
|
+
element("PartNumberMarker") { integer_value }
|
|
154
|
+
element("NextPartNumberMarker") { integer_value }
|
|
155
|
+
element("Part") do
|
|
156
|
+
collect_values
|
|
157
|
+
rename :parts
|
|
158
|
+
element("PartNumber") { integer_value }
|
|
159
|
+
element("LastModified") { datetime_value }
|
|
160
|
+
element("Size") { integer_value }
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
GetBucketLifecycleConfiguration = BaseGrammar.customize do
|
|
165
|
+
element("Rule") do
|
|
166
|
+
list
|
|
167
|
+
rename(:rules)
|
|
168
|
+
element("Expiration") do
|
|
169
|
+
element("Days") { integer_value }
|
|
170
|
+
element("Date") { datetime_value }
|
|
171
|
+
end
|
|
172
|
+
element("Transition") do
|
|
173
|
+
element("StorageClass") { }
|
|
174
|
+
element("Days") { integer_value }
|
|
175
|
+
element("Date") { datetime_value }
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
GetBucketCors = BaseGrammar.customize do
|
|
181
|
+
element "CORSRule" do
|
|
182
|
+
list
|
|
183
|
+
rename :rules
|
|
184
|
+
element "AllowedMethod" do
|
|
185
|
+
list
|
|
186
|
+
rename :allowed_methods
|
|
187
|
+
end
|
|
188
|
+
element "AllowedOrigin" do
|
|
189
|
+
list
|
|
190
|
+
rename :allowed_origins
|
|
191
|
+
end
|
|
192
|
+
element "AllowedHeader" do
|
|
193
|
+
list
|
|
194
|
+
rename :allowed_headers
|
|
195
|
+
end
|
|
196
|
+
element "MaxAgeSeconds" do
|
|
197
|
+
integer
|
|
198
|
+
end
|
|
199
|
+
element "ExposeHeader" do
|
|
200
|
+
list
|
|
201
|
+
rename :expose_headers
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
GetBucketTagging = BaseGrammar.customize do
|
|
207
|
+
element "TagSet" do
|
|
208
|
+
ignore
|
|
209
|
+
element "Tag" do
|
|
210
|
+
map_entry("Key", "Value")
|
|
211
|
+
rename :tags
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
GetBucketWebsite = BaseGrammar.customize do
|
|
217
|
+
element "IndexDocument" do
|
|
218
|
+
element "Suffix"
|
|
219
|
+
end
|
|
220
|
+
element "ErrorDocument" do
|
|
221
|
+
element "Key"
|
|
222
|
+
end
|
|
223
|
+
element "RoutingRules" do
|
|
224
|
+
list("RoutingRule")
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
AWS::Core::Configuration.module_eval do
|
|
15
|
+
|
|
16
|
+
add_service 'S3', 's3', 's3.amazonaws.com'
|
|
17
|
+
|
|
18
|
+
add_option :s3_force_path_style, false, :boolean => true
|
|
19
|
+
|
|
20
|
+
add_option :s3_multipart_threshold, 16 * 1024 * 1024
|
|
21
|
+
|
|
22
|
+
add_option :s3_multipart_min_part_size, 5 * 1024 * 1024
|
|
23
|
+
|
|
24
|
+
add_option :s3_multipart_max_parts, 10000
|
|
25
|
+
|
|
26
|
+
add_option :s3_server_side_encryption, nil
|
|
27
|
+
|
|
28
|
+
add_option :s3_encryption_key, nil
|
|
29
|
+
|
|
30
|
+
add_option :s3_encryption_materials_location, :metadata
|
|
31
|
+
|
|
32
|
+
add_option :s3_encryption_matdesc, '{}'
|
|
33
|
+
|
|
34
|
+
add_option :s3_storage_class, 'STANDARD'
|
|
35
|
+
|
|
36
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
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 S3
|
|
16
|
+
|
|
17
|
+
# Represents a single CORS rule for an S3 {Bucket}.
|
|
18
|
+
#
|
|
19
|
+
# rule = bucket.cors.first
|
|
20
|
+
# rule.allowed_methods #=> ['GET', 'HEAD']
|
|
21
|
+
# rule.allowed_origins #=> ['*']
|
|
22
|
+
#
|
|
23
|
+
# @see CORSRuleCollection
|
|
24
|
+
class CORSRule
|
|
25
|
+
|
|
26
|
+
# @param [Hash] options A hash of the rule details.
|
|
27
|
+
#
|
|
28
|
+
# @option options [String] :id A unique identifier for the rule. The ID
|
|
29
|
+
# value can be up to 255 characters long. The IDs help you find
|
|
30
|
+
# a rule in the configuration.
|
|
31
|
+
#
|
|
32
|
+
# @option options [required,Array<String>] :allowed_methods A list of HTTP
|
|
33
|
+
# methods that you want to allow the origin to execute.
|
|
34
|
+
# Each rule must identify at least one method.
|
|
35
|
+
#
|
|
36
|
+
# @option options [required,Array<String>] :allowed_origins A list of
|
|
37
|
+
# origins you want to allow cross-domain requests from. This can
|
|
38
|
+
# contain at most one * wild character.
|
|
39
|
+
#
|
|
40
|
+
# @option options [Array<String>] :allowed_headers A list of headers
|
|
41
|
+
# allowed in a pre-flight OPTIONS request via the
|
|
42
|
+
# Access-Control-Request-Headers header. Each header name
|
|
43
|
+
# specified in the Access-Control-Request-Headers header must
|
|
44
|
+
# have a corresponding entry in the rule.
|
|
45
|
+
#
|
|
46
|
+
# Amazon S3 will send only the allowed headers in a response
|
|
47
|
+
# that were requested. This can contain at most one '*' wild
|
|
48
|
+
# character.
|
|
49
|
+
#
|
|
50
|
+
# @option options [Array<String>] :max_age_seconds The time in
|
|
51
|
+
# seconds that your browser is to cache the pre-flight response for
|
|
52
|
+
# the specified resource.
|
|
53
|
+
#
|
|
54
|
+
# @option options [Array<String>] :expose_headers One or more headers in
|
|
55
|
+
# the response that you want customers to be able to access
|
|
56
|
+
# from their applications (for example, from a JavaScript
|
|
57
|
+
# XMLHttpRequest object).
|
|
58
|
+
#
|
|
59
|
+
def initialize options = {}
|
|
60
|
+
@id = options[:id]
|
|
61
|
+
@allowed_methods = options[:allowed_methods] || []
|
|
62
|
+
@allowed_origins = options[:allowed_origins] || []
|
|
63
|
+
@allowed_headers = options[:allowed_headers] || []
|
|
64
|
+
@max_age_seconds = options[:max_age_seconds]
|
|
65
|
+
@expose_headers = options[:expose_headers] || []
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @return [String,nil] A user supplied unique identifier for this role.
|
|
69
|
+
# Set this when you set or add roles via {CORSRuleCollection}.
|
|
70
|
+
attr_reader :id
|
|
71
|
+
|
|
72
|
+
# @return [Array<String>] A list of HTTP methods (GET, POST, etc) this
|
|
73
|
+
# role authorizes.
|
|
74
|
+
attr_reader :allowed_methods
|
|
75
|
+
|
|
76
|
+
# @return [Array<String>] The list of origins allowed to make
|
|
77
|
+
# cross-domain requests to the bucket.
|
|
78
|
+
attr_reader :allowed_origins
|
|
79
|
+
|
|
80
|
+
# @return [Array<String>] A list of headers allowed in the pre-flight
|
|
81
|
+
# OPTIONS request.
|
|
82
|
+
attr_reader :allowed_headers
|
|
83
|
+
|
|
84
|
+
# @return [Integer,nil] The time in seconds the browser may cache the
|
|
85
|
+
# pre-flight response.
|
|
86
|
+
attr_reader :max_age_seconds
|
|
87
|
+
|
|
88
|
+
# @return [Array<String>] The headers that may be accessed cross-domain.
|
|
89
|
+
attr_reader :expose_headers
|
|
90
|
+
|
|
91
|
+
# @return [Hash]
|
|
92
|
+
def to_h
|
|
93
|
+
h = {}
|
|
94
|
+
h[:id] = id if id
|
|
95
|
+
h[:allowed_methods] = allowed_methods
|
|
96
|
+
h[:allowed_origins] = allowed_origins
|
|
97
|
+
h[:allowed_headers] = allowed_headers unless allowed_headers.empty?
|
|
98
|
+
h[:max_age_seconds] = max_age_seconds if max_age_seconds
|
|
99
|
+
h[:expose_headers] = expose_headers unless expose_headers.empty?
|
|
100
|
+
h
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
end
|
|
@@ -0,0 +1,192 @@
|
|
|
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 S3
|
|
16
|
+
|
|
17
|
+
# Manages the CORS rules for a single bucket.
|
|
18
|
+
#
|
|
19
|
+
# == Getting Rules
|
|
20
|
+
#
|
|
21
|
+
# To get the CORS rules for a bucket, use the {Bucket#cors} method. This
|
|
22
|
+
# returns a CORSRuleCollection for the bucket. The collection is
|
|
23
|
+
# enumerable.
|
|
24
|
+
#
|
|
25
|
+
# # enumerating all rules for a buck
|
|
26
|
+
# bucket.cors.each do |rule|
|
|
27
|
+
# # rule is a CORSRule object
|
|
28
|
+
# end
|
|
29
|
+
#
|
|
30
|
+
# == Setting Rules
|
|
31
|
+
#
|
|
32
|
+
# You can set the rules for a bucket (replacing all existing rules) using
|
|
33
|
+
# the {#set} method.
|
|
34
|
+
#
|
|
35
|
+
# # accepts a list of one or more rules
|
|
36
|
+
# bucket.rules.set(rule1, rule2)
|
|
37
|
+
#
|
|
38
|
+
# # rules can be an array of rules
|
|
39
|
+
# bucket.rules.set(rules)
|
|
40
|
+
#
|
|
41
|
+
# # passing an empty list or array removes all rules
|
|
42
|
+
# bucket.rules.set([])
|
|
43
|
+
# bucket.rules.clear # does the same thing
|
|
44
|
+
#
|
|
45
|
+
# Each rule can be a Hash, a {CORSRule} or another {CORSRuleCollection}.
|
|
46
|
+
# See {Client#put_bucket_cors} for a list of keys for a rule hash.
|
|
47
|
+
#
|
|
48
|
+
# == Adding Rules
|
|
49
|
+
#
|
|
50
|
+
# Adding rules is the same as setting rules. Rules you add will be
|
|
51
|
+
# appended to the end of the existing list of rules.
|
|
52
|
+
#
|
|
53
|
+
# # add one or more rules
|
|
54
|
+
# bucket.rules.add(rules)
|
|
55
|
+
#
|
|
56
|
+
# == Deleting Rules
|
|
57
|
+
#
|
|
58
|
+
# To remove a rule, use the {#delete_if} method.
|
|
59
|
+
#
|
|
60
|
+
# # delete rules that allow access from any domain
|
|
61
|
+
# bucket.cors.delete_if{|rule| rule.allowed_origins.include?('*')
|
|
62
|
+
#
|
|
63
|
+
class CORSRuleCollection
|
|
64
|
+
|
|
65
|
+
include Core::Collection::Simple
|
|
66
|
+
|
|
67
|
+
# @param [Bucket] bucket
|
|
68
|
+
# @param [Hash] options
|
|
69
|
+
def initialize bucket, options = {}
|
|
70
|
+
@bucket = bucket
|
|
71
|
+
super
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @return [Bucket]
|
|
75
|
+
attr_reader :bucket
|
|
76
|
+
|
|
77
|
+
# Replaces the CORS rules attached to this bucket. You can pass
|
|
78
|
+
# one or more rules as an array or a list.
|
|
79
|
+
#
|
|
80
|
+
# # replace all exisitng rules with a single rule
|
|
81
|
+
# bucket.cors.set(
|
|
82
|
+
# :allowed_methods => %w(GET),
|
|
83
|
+
# :allowed_origins => %w(http://*.mydomain.com),
|
|
84
|
+
# :max_age_seconds => 3600)
|
|
85
|
+
#
|
|
86
|
+
# If you pass an empty array, all of the rules will be removed from
|
|
87
|
+
# the bucket.
|
|
88
|
+
#
|
|
89
|
+
# # these two lines are equivilent
|
|
90
|
+
# bucket.cors.clear
|
|
91
|
+
# bucket.cors.set([])
|
|
92
|
+
#
|
|
93
|
+
# @param [Hash,CORSRule,CORSRuleCollection] rules A list or array
|
|
94
|
+
# of one or more rules to set. Each rule may be a Hash, a CORSRule
|
|
95
|
+
# or a CORSRuleCollection.
|
|
96
|
+
#
|
|
97
|
+
# @return [nil]
|
|
98
|
+
#
|
|
99
|
+
def set *rules
|
|
100
|
+
|
|
101
|
+
raise ArgumentError, 'expected one or more rules' if rules.empty?
|
|
102
|
+
|
|
103
|
+
if rules == [[]]
|
|
104
|
+
self.clear
|
|
105
|
+
else
|
|
106
|
+
rules = rule_hashes(rules)
|
|
107
|
+
client.put_bucket_cors(:bucket_name => bucket.name, :rules => rules)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
nil
|
|
111
|
+
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Add one or more CORS rules to this bucket.
|
|
115
|
+
#
|
|
116
|
+
# # adding a single rule as a hash
|
|
117
|
+
# bucket.cors.add(
|
|
118
|
+
# :allowed_methods => %w(GET HEAD),
|
|
119
|
+
# :allowed_origins => %w(*),
|
|
120
|
+
# :max_age_seconds => 3600)
|
|
121
|
+
#
|
|
122
|
+
# You can add multiple rules in a single call:
|
|
123
|
+
#
|
|
124
|
+
# # each rule may be a hash, CORSRule or a CORSRuleCollection,
|
|
125
|
+
# bucket.cors.add(rules)
|
|
126
|
+
#
|
|
127
|
+
# # alternatively you can pass a list of rules
|
|
128
|
+
# bucket.cors.add(rule1, rule2, ...)
|
|
129
|
+
#
|
|
130
|
+
# @param (see #set)
|
|
131
|
+
# @return (see #set)
|
|
132
|
+
def add *rules
|
|
133
|
+
self.set(self, *rules)
|
|
134
|
+
end
|
|
135
|
+
alias_method :create, :add
|
|
136
|
+
|
|
137
|
+
# Deletes every rule for which the block evaluates to +true+.
|
|
138
|
+
#
|
|
139
|
+
# # remove all rules that are open to the 'world'
|
|
140
|
+
# bucket.cors.delete_if{|rule| rule.allowed_origins.include?('*') }
|
|
141
|
+
#
|
|
142
|
+
# @yield [rule]
|
|
143
|
+
# @yieldparam [CORSRule] rule
|
|
144
|
+
# @yieldreturn [Boolean] Return +true+ for each rule you want to delete.
|
|
145
|
+
# @return (see #set)
|
|
146
|
+
def delete_if &block
|
|
147
|
+
rules = []
|
|
148
|
+
self.each do |rule|
|
|
149
|
+
rules << rule unless yield(rule)
|
|
150
|
+
end
|
|
151
|
+
self.set(rules)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Removes all CORS rules attached to this bucket.
|
|
155
|
+
#
|
|
156
|
+
# bucket.cors.count #=> 3
|
|
157
|
+
# bucket.cors.clear
|
|
158
|
+
# bucket.cors.count #=> 0
|
|
159
|
+
#
|
|
160
|
+
# @return [nil]
|
|
161
|
+
def clear
|
|
162
|
+
client.delete_bucket_cors(:bucket_name => bucket.name)
|
|
163
|
+
nil
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
protected
|
|
167
|
+
|
|
168
|
+
def _each_item options
|
|
169
|
+
resp = client.get_bucket_cors(options.merge(:bucket_name => bucket.name))
|
|
170
|
+
resp.data[:rules].each do |rule|
|
|
171
|
+
yield(CORSRule.new(rule))
|
|
172
|
+
end
|
|
173
|
+
rescue AWS::S3::Errors::NoSuchCORSConfiguration
|
|
174
|
+
# no cors rules exist for this bucket, nothing to yield
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def rule_hashes rule
|
|
178
|
+
case rule
|
|
179
|
+
when Hash then rule
|
|
180
|
+
when CORSRule then rule.to_h
|
|
181
|
+
when CORSRuleCollection then rule.map(&:to_h)
|
|
182
|
+
when Array then rule.map{|r| rule_hashes(r) }.flatten
|
|
183
|
+
else
|
|
184
|
+
msg = "Expected one or more CORSRule, CORSRuleCollection or hash"
|
|
185
|
+
msg << ", got #{rule.class.name}"
|
|
186
|
+
raise ArgumentError, msg
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
end
|