aws-sdk 1.8.5 → 1.9.0
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.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/README.rdoc +8 -0
- data/lib/aws-sdk.rb +39 -35
- data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
- data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
- data/lib/aws/auto_scaling.rb +44 -44
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +14 -15
- data/lib/aws/auto_scaling/client.rb +277 -277
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +35 -36
- data/lib/aws/auto_scaling/group_collection.rb +10 -10
- data/lib/aws/auto_scaling/group_options.rb +19 -19
- data/lib/aws/auto_scaling/instance.rb +27 -27
- data/lib/aws/auto_scaling/instance_collection.rb +10 -10
- data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
- data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
- data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
- data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
- data/lib/aws/auto_scaling/tag_collection.rb +30 -28
- data/lib/aws/cloud_formation.rb +95 -94
- data/lib/aws/cloud_formation/client.rb +136 -133
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +37 -37
- data/lib/aws/cloud_formation/stack_collection.rb +28 -27
- data/lib/aws/cloud_formation/stack_event.rb +9 -11
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +6 -6
- data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
- data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
- data/lib/aws/cloud_front.rb +21 -21
- data/lib/aws/cloud_front/client.rb +853 -652
- data/lib/aws/cloud_front/request.rb +3 -0
- data/lib/aws/cloud_search.rb +22 -22
- data/lib/aws/cloud_search/client.rb +322 -315
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_watch.rb +39 -39
- data/lib/aws/cloud_watch/alarm.rb +55 -37
- data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
- data/lib/aws/cloud_watch/client.rb +360 -146
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +15 -15
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
- data/lib/aws/cloud_watch/metric_collection.rb +16 -16
- data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
- data/lib/aws/core.rb +243 -225
- data/lib/aws/core/async_handle.rb +13 -13
- data/lib/aws/core/cacheable.rb +14 -15
- data/lib/aws/core/client.rb +40 -15
- data/lib/aws/core/collection.rb +42 -46
- 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 +97 -133
- data/lib/aws/core/credential_providers.rb +16 -16
- data/lib/aws/core/data.rb +23 -23
- data/lib/aws/core/http/connection_pool.rb +348 -0
- data/lib/aws/core/http/net_http_handler.rb +17 -26
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +13 -19
- data/lib/aws/core/http/response.rb +2 -2
- data/lib/aws/core/lazy_error_classes.rb +17 -17
- data/lib/aws/core/log_formatter.rb +70 -104
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +4 -4
- data/lib/aws/core/page_result.rb +8 -8
- data/lib/aws/core/policy.rb +49 -49
- data/lib/aws/core/region.rb +72 -0
- data/lib/aws/core/region_collection.rb +106 -0
- data/lib/aws/core/resource.rb +5 -5
- data/lib/aws/core/response.rb +20 -17
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/service_interface.rb +24 -2
- data/lib/aws/core/signature/version_3.rb +2 -2
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +3 -4
- data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
- data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
- data/lib/aws/core/xml/stub.rb +9 -9
- data/lib/aws/data_pipeline.rb +21 -21
- data/lib/aws/data_pipeline/client.rb +189 -133
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/direct_connect.rb +74 -0
- data/lib/aws/direct_connect/client.rb +253 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/direct_connect/request.rb +27 -0
- data/lib/aws/dynamo_db.rb +71 -69
- data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
- data/lib/aws/dynamo_db/batch_get.rb +23 -23
- data/lib/aws/dynamo_db/batch_write.rb +43 -43
- data/lib/aws/dynamo_db/binary.rb +9 -9
- data/lib/aws/dynamo_db/client.rb +494 -509
- data/lib/aws/dynamo_db/client_base.rb +91 -0
- data/lib/aws/dynamo_db/client_v2.rb +825 -0
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +10 -10
- data/lib/aws/dynamo_db/item_collection.rb +75 -75
- data/lib/aws/dynamo_db/table.rb +85 -85
- data/lib/aws/dynamo_db/table_collection.rb +13 -13
- data/lib/aws/ec2.rb +132 -142
- data/lib/aws/ec2/attachment.rb +31 -36
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +4 -4
- data/lib/aws/ec2/client.rb +2272 -2125
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +6 -6
- data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
- data/lib/aws/ec2/elastic_ip.rb +15 -15
- data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
- data/lib/aws/ec2/export_task.rb +4 -4
- data/lib/aws/ec2/export_task_collection.rb +11 -11
- data/lib/aws/ec2/filtered_collection.rb +6 -8
- data/lib/aws/ec2/image.rb +46 -40
- data/lib/aws/ec2/image_collection.rb +44 -52
- data/lib/aws/ec2/instance.rb +64 -62
- data/lib/aws/ec2/instance_collection.rb +47 -50
- data/lib/aws/ec2/internet_gateway.rb +6 -6
- data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
- data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
- data/lib/aws/ec2/key_pair.rb +3 -3
- data/lib/aws/ec2/key_pair_collection.rb +12 -12
- data/lib/aws/ec2/network_acl.rb +39 -39
- data/lib/aws/ec2/network_acl/association.rb +2 -2
- data/lib/aws/ec2/network_acl/entry.rb +22 -22
- data/lib/aws/ec2/network_acl_collection.rb +2 -2
- data/lib/aws/ec2/network_interface.rb +13 -4
- data/lib/aws/ec2/network_interface/attachment.rb +3 -3
- data/lib/aws/ec2/network_interface_collection.rb +5 -5
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +6 -6
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
- data/lib/aws/ec2/resource_tag_collection.rb +5 -5
- data/lib/aws/ec2/route_table.rb +14 -14
- data/lib/aws/ec2/route_table/association.rb +22 -22
- data/lib/aws/ec2/route_table/route.rb +8 -8
- data/lib/aws/ec2/route_table_collection.rb +3 -3
- data/lib/aws/ec2/security_group.rb +39 -41
- data/lib/aws/ec2/security_group_collection.rb +19 -21
- data/lib/aws/ec2/snapshot.rb +3 -3
- data/lib/aws/ec2/snapshot_collection.rb +11 -12
- data/lib/aws/ec2/subnet.rb +2 -2
- data/lib/aws/ec2/subnet_collection.rb +17 -17
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +7 -7
- data/lib/aws/ec2/tagged_item.rb +10 -10
- data/lib/aws/ec2/volume.rb +16 -16
- data/lib/aws/ec2/volume_collection.rb +9 -12
- data/lib/aws/ec2/vpc.rb +6 -6
- data/lib/aws/ec2/vpc_collection.rb +10 -10
- data/lib/aws/ec2/vpn_connection.rb +4 -4
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
- data/lib/aws/elastic_beanstalk.rb +12 -12
- data/lib/aws/elastic_beanstalk/client.rb +376 -368
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_transcoder.rb +5 -5
- data/lib/aws/elastic_transcoder/client.rb +283 -283
- data/lib/aws/elastic_transcoder/config.rb +1 -1
- data/lib/aws/elasticache.rb +12 -12
- data/lib/aws/elasticache/client.rb +484 -479
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elb.rb +23 -23
- data/lib/aws/elb/availability_zone_collection.rb +34 -34
- data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
- data/lib/aws/elb/client.rb +153 -153
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +20 -25
- data/lib/aws/elb/listener.rb +3 -3
- data/lib/aws/elb/listener_collection.rb +8 -8
- data/lib/aws/elb/load_balancer.rb +15 -16
- data/lib/aws/elb/load_balancer_collection.rb +36 -24
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
- data/lib/aws/emr.rb +28 -26
- data/lib/aws/emr/client.rb +165 -149
- data/lib/aws/emr/config.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 +27 -26
- data/lib/aws/emr/job_flow_collection.rb +34 -34
- data/lib/aws/errors.rb +7 -7
- data/lib/aws/glacier.rb +21 -21
- data/lib/aws/glacier/archive_collection.rb +2 -2
- data/lib/aws/glacier/client.rb +139 -140
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/vault.rb +2 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/iam.rb +133 -144
- data/lib/aws/iam/access_key.rb +17 -17
- data/lib/aws/iam/access_key_collection.rb +22 -22
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +429 -420
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +2 -2
- data/lib/aws/iam/group.rb +8 -8
- data/lib/aws/iam/group_collection.rb +16 -16
- data/lib/aws/iam/group_policy_collection.rb +6 -6
- data/lib/aws/iam/group_user_collection.rb +3 -3
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +9 -9
- data/lib/aws/iam/policy_collection.rb +4 -4
- data/lib/aws/iam/resource.rb +2 -2
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +15 -15
- data/lib/aws/iam/signing_certificate.rb +29 -29
- data/lib/aws/iam/signing_certificate_collection.rb +23 -23
- data/lib/aws/iam/user.rb +33 -38
- data/lib/aws/iam/user_collection.rb +27 -27
- data/lib/aws/iam/user_group_collection.rb +3 -3
- data/lib/aws/iam/user_policy_collection.rb +6 -6
- data/lib/aws/iam/virtual_mfa_device.rb +12 -12
- data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
- data/lib/aws/import_export.rb +22 -21
- data/lib/aws/import_export/client.rb +47 -43
- data/lib/aws/ops_works.rb +5 -5
- data/lib/aws/ops_works/client.rb +484 -438
- data/lib/aws/ops_works/config.rb +1 -1
- data/lib/aws/rails.rb +34 -34
- data/lib/aws/rds.rb +18 -18
- data/lib/aws/rds/client.rb +1286 -1277
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +15 -4
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/record.rb +50 -24
- data/lib/aws/record/abstract_base.rb +52 -60
- data/lib/aws/record/attributes.rb +79 -79
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +69 -67
- data/lib/aws/record/errors.rb +21 -21
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +20 -21
- data/lib/aws/record/hash_model/attributes.rb +13 -15
- data/lib/aws/record/hash_model/finder_methods.rb +46 -46
- data/lib/aws/record/hash_model/scope.rb +31 -31
- data/lib/aws/record/model.rb +136 -136
- data/lib/aws/record/model/attributes.rb +57 -59
- data/lib/aws/record/model/finder_methods.rb +67 -67
- data/lib/aws/record/model/scope.rb +48 -49
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +23 -19
- data/lib/aws/record/validations.rb +253 -271
- data/lib/aws/record/validator.rb +3 -3
- data/lib/aws/record/validators/acceptance.rb +1 -3
- data/lib/aws/record/validators/block.rb +1 -3
- data/lib/aws/record/validators/confirmation.rb +1 -3
- data/lib/aws/record/validators/count.rb +2 -4
- data/lib/aws/record/validators/exclusion.rb +2 -4
- data/lib/aws/record/validators/format.rb +2 -4
- data/lib/aws/record/validators/inclusion.rb +1 -3
- data/lib/aws/record/validators/length.rb +5 -7
- data/lib/aws/record/validators/method.rb +1 -3
- data/lib/aws/record/validators/numericality.rb +6 -8
- data/lib/aws/record/validators/presence.rb +1 -3
- data/lib/aws/redshift.rb +14 -14
- data/lib/aws/redshift/client.rb +596 -592
- data/lib/aws/redshift/config.rb +1 -1
- data/lib/aws/route_53.rb +30 -30
- data/lib/aws/route_53/change_batch.rb +7 -7
- data/lib/aws/route_53/client.rb +188 -152
- data/lib/aws/route_53/hosted_zone.rb +4 -4
- data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
- data/lib/aws/route_53/resource_record_set.rb +10 -10
- data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
- data/lib/aws/s3.rb +79 -79
- data/lib/aws/s3/access_control_list.rb +44 -36
- data/lib/aws/s3/acl_options.rb +51 -51
- data/lib/aws/s3/bucket.rb +146 -146
- data/lib/aws/s3/bucket_collection.rb +21 -21
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
- data/lib/aws/s3/bucket_tag_collection.rb +4 -2
- data/lib/aws/s3/cipher_io.rb +5 -4
- data/lib/aws/s3/client.rb +89 -84
- data/lib/aws/s3/client/xml.rb +1 -1
- data/lib/aws/s3/config.rb +7 -1
- data/lib/aws/s3/cors_rule.rb +2 -0
- data/lib/aws/s3/cors_rule_collection.rb +42 -40
- data/lib/aws/s3/data_options.rb +16 -11
- data/lib/aws/s3/encryption_utils.rb +2 -2
- data/lib/aws/s3/errors.rb +7 -7
- data/lib/aws/s3/multipart_upload.rb +30 -33
- data/lib/aws/s3/multipart_upload_collection.rb +8 -6
- data/lib/aws/s3/object_collection.rb +35 -35
- data/lib/aws/s3/object_metadata.rb +6 -6
- data/lib/aws/s3/object_version.rb +4 -4
- data/lib/aws/s3/object_version_collection.rb +15 -15
- data/lib/aws/s3/policy.rb +2 -2
- data/lib/aws/s3/prefixed_collection.rb +9 -5
- data/lib/aws/s3/presigned_post.rb +39 -37
- data/lib/aws/s3/request.rb +11 -11
- data/lib/aws/s3/s3_object.rb +210 -200
- data/lib/aws/s3/tree.rb +25 -27
- data/lib/aws/s3/tree/child_collection.rb +3 -3
- data/lib/aws/s3/tree/leaf_node.rb +2 -2
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +13 -13
- data/lib/aws/simple_db.rb +83 -83
- data/lib/aws/simple_db/attribute.rb +9 -7
- data/lib/aws/simple_db/attribute_collection.rb +22 -13
- data/lib/aws/simple_db/client.rb +107 -107
- data/lib/aws/simple_db/config.rb +7 -1
- data/lib/aws/simple_db/consistent_read_option.rb +5 -5
- data/lib/aws/simple_db/domain.rb +4 -2
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +5 -5
- data/lib/aws/simple_db/errors.rb +9 -9
- data/lib/aws/simple_db/item.rb +5 -5
- data/lib/aws/simple_db/item_collection.rb +83 -81
- data/lib/aws/simple_db/item_data.rb +4 -4
- data/lib/aws/simple_db/put_attributes.rb +3 -3
- data/lib/aws/simple_email_service.rb +140 -140
- data/lib/aws/simple_email_service/client.rb +82 -76
- data/lib/aws/simple_email_service/config.rb +1 -2
- data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
- data/lib/aws/simple_email_service/identity.rb +8 -8
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_workflow.rb +106 -106
- data/lib/aws/simple_workflow/activity_task.rb +15 -22
- data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
- data/lib/aws/simple_workflow/activity_type.rb +23 -23
- data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
- data/lib/aws/simple_workflow/client.rb +1004 -956
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +5 -5
- data/lib/aws/simple_workflow/decision_task.rb +129 -129
- data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
- data/lib/aws/simple_workflow/domain.rb +11 -11
- data/lib/aws/simple_workflow/domain_collection.rb +26 -26
- data/lib/aws/simple_workflow/history_event.rb +32 -32
- data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
- data/lib/aws/simple_workflow/option_formatters.rb +5 -5
- 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 +8 -8
- data/lib/aws/simple_workflow/type_collection.rb +15 -15
- data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
- data/lib/aws/simple_workflow/workflow_type.rb +27 -25
- data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
- data/lib/aws/sns.rb +25 -25
- data/lib/aws/sns/client.rb +55 -55
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/subscription.rb +7 -7
- data/lib/aws/sns/subscription_collection.rb +5 -5
- data/lib/aws/sns/topic.rb +49 -49
- data/lib/aws/sns/topic_collection.rb +2 -2
- data/lib/aws/sns/topic_subscription_collection.rb +5 -5
- data/lib/aws/sqs.rb +20 -20
- data/lib/aws/sqs/client.rb +78 -78
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +12 -12
- data/lib/aws/sqs/queue.rb +66 -67
- data/lib/aws/sqs/queue_collection.rb +16 -8
- data/lib/aws/sqs/received_message.rb +7 -6
- data/lib/aws/storage_gateway.rb +21 -21
- data/lib/aws/storage_gateway/client.rb +269 -202
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/sts.rb +10 -8
- data/lib/aws/sts/client.rb +35 -35
- data/lib/aws/sts/session.rb +3 -3
- data/lib/aws/version.rb +1 -2
- metadata +23 -21
- data/lib/aws/core/autoloader.rb +0 -64
- data/lib/net/http/connection_pool.rb +0 -226
- data/lib/net/http/connection_pool/connection.rb +0 -189
- data/lib/net/http/connection_pool/session.rb +0 -126
data/lib/aws/s3/acl_options.rb
CHANGED
@@ -23,7 +23,7 @@ module AWS
|
|
23
23
|
|
24
24
|
protected
|
25
25
|
|
26
|
-
# @param [Symbol,String,Hash,AccessControlList] acl Accepts an ACL
|
26
|
+
# @param [Symbol,String,Hash,AccessControlList] acl Accepts an ACL
|
27
27
|
# description in one of the following formats:
|
28
28
|
#
|
29
29
|
# ==== Canned ACL
|
@@ -31,77 +31,75 @@ module AWS
|
|
31
31
|
# S3 supports a number of canned ACLs for buckets and
|
32
32
|
# objects. These include:
|
33
33
|
#
|
34
|
-
# *
|
35
|
-
# *
|
36
|
-
# *
|
37
|
-
# *
|
38
|
-
# *
|
39
|
-
# *
|
40
|
-
# *
|
34
|
+
# * `:private`
|
35
|
+
# * `:public_read`
|
36
|
+
# * `:public_read_write`
|
37
|
+
# * `:authenticated_read`
|
38
|
+
# * `:bucket_owner_read` (object-only)
|
39
|
+
# * `:bucket_owner_full_control` (object-only)
|
40
|
+
# * `:log_delivery_write` (bucket-only)
|
41
41
|
#
|
42
42
|
# Here is an example of providing a canned ACL to a bucket:
|
43
|
-
#
|
44
|
-
#
|
43
|
+
#
|
44
|
+
# s3.buckets['bucket-name'].acl = :public_read
|
45
45
|
#
|
46
46
|
# ==== ACL Grant Hash
|
47
47
|
#
|
48
48
|
# You can provide a hash of grants. The hash is composed of grants (keys)
|
49
49
|
# and grantees (values). Accepted grant keys are:
|
50
50
|
#
|
51
|
-
# *
|
52
|
-
# *
|
53
|
-
# *
|
54
|
-
# *
|
55
|
-
# *
|
51
|
+
# * `:grant_read`
|
52
|
+
# * `:grant_write`
|
53
|
+
# * `:grant_read_acp`
|
54
|
+
# * `:grant_write_acp`
|
55
|
+
# * `:grant_full_control`
|
56
56
|
#
|
57
|
-
# Grantee strings (values) should be formatted like some of the
|
57
|
+
# Grantee strings (values) should be formatted like some of the
|
58
58
|
# following examples:
|
59
59
|
#
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
60
|
+
# id="8a6925ce4adf588a4532142d3f74dd8c71fa124b1ddee97f21c32aa379004fef"
|
61
|
+
# uri="http://acs.amazonaws.com/groups/global/AllUsers"
|
62
|
+
# emailAddress="xyz@amazon.com"
|
63
63
|
#
|
64
64
|
# You can provide a comma delimited list of multiple grantees in a single
|
65
65
|
# string. Please note the use of quotes inside the grantee string.
|
66
66
|
# Here is a simple example:
|
67
67
|
#
|
68
|
-
#
|
69
|
-
# :grant_full_control => "emailAddress=\"foo@bar.com\", id=\"abc..mno\""
|
70
|
-
# }
|
68
|
+
# { :grant_full_control => "emailAddress=\"foo@bar.com\", id=\"abc..mno\"" }
|
71
69
|
#
|
72
70
|
# See the S3 API documentation for more information on formatting
|
73
71
|
# grants.
|
74
72
|
#
|
75
73
|
# ==== AcessControlList Object
|
76
74
|
#
|
77
|
-
# You can build an ACL using the {AccessControlList} class and
|
75
|
+
# You can build an ACL using the {AccessControlList} class and
|
78
76
|
# pass this object.
|
79
77
|
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
78
|
+
# acl = AWS::S3::AccessControlList.new
|
79
|
+
# acl.grant(:full_control).to(:canonical_user_id => "8a6...fef")
|
80
|
+
# acl #=> this is acceptible
|
83
81
|
#
|
84
82
|
# ==== ACL XML String
|
85
83
|
#
|
86
84
|
# Lastly you can build your own ACL XML document and pass it as a string.
|
87
85
|
#
|
88
|
-
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
86
|
+
# <<-XML
|
87
|
+
# <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
88
|
+
# <Owner>
|
89
|
+
# <ID>8a6...fef</ID>
|
90
|
+
# <DisplayName>owner-display-name</DisplayName>
|
91
|
+
# </Owner>
|
92
|
+
# <AccessControlList>
|
93
|
+
# <Grant>
|
94
|
+
# <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User">
|
95
|
+
# <ID>8a6...fef</ID>
|
96
|
+
# <DisplayName>owner-display-name</DisplayName>
|
97
|
+
# </Grantee>
|
98
|
+
# <Permission>FULL_CONTROL</Permission>
|
99
|
+
# </Grant>
|
100
|
+
# </AccessControlList>
|
101
|
+
# </AccessControlPolicy>
|
102
|
+
# XML
|
105
103
|
#
|
106
104
|
# @return [Hash] Returns a hash of options suitable for
|
107
105
|
# passing to {Client#put_bucket_acl} and {Client#put_object_acl}
|
@@ -134,7 +132,7 @@ module AWS
|
|
134
132
|
end
|
135
133
|
|
136
134
|
# @param [Hash] acl_hash
|
137
|
-
# @return [Boolean] Retursn
|
135
|
+
# @return [Boolean] Retursn `true` if this hash is a hash of grants.
|
138
136
|
def grant_hash? acl_hash
|
139
137
|
grant_keys = [
|
140
138
|
:grant_read,
|
@@ -147,7 +145,7 @@ module AWS
|
|
147
145
|
end
|
148
146
|
|
149
147
|
# @param [String] acl_string
|
150
|
-
# @return [Boolean] Returns
|
148
|
+
# @return [Boolean] Returns `true` if this string is an xml document.
|
151
149
|
def xml? acl_string
|
152
150
|
begin
|
153
151
|
REXML::Document.new(acl_string).has_elements?
|
@@ -179,14 +177,16 @@ module AWS
|
|
179
177
|
end
|
180
178
|
|
181
179
|
# A granee hash looks like:
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
180
|
+
#
|
181
|
+
# { :id => 'abc...fec' }
|
182
|
+
# { :uri => 'http://abc.com/foo' }
|
183
|
+
# { :email_address => 'xyz@amazon.com }
|
185
184
|
#
|
186
185
|
# It needs to look like
|
187
|
-
#
|
188
|
-
#
|
189
|
-
#
|
186
|
+
#
|
187
|
+
# 'id="abc...fec"'
|
188
|
+
# 'uri="http://abc.com/foo"'
|
189
|
+
# 'emailAddress="xyz@amazon.com"'
|
190
190
|
type, token = grantee.to_a.flatten
|
191
191
|
type = type.to_s.split('_').map{|part| ucfirst(part) }.join
|
192
192
|
"#{type[0,1].downcase}#{type[1..-1]}=\"#{token}\""
|
data/lib/aws/s3/bucket.rb
CHANGED
@@ -16,63 +16,63 @@ module AWS
|
|
16
16
|
|
17
17
|
# Represents a bucket in S3.
|
18
18
|
#
|
19
|
-
#
|
19
|
+
# # Creating Buckets
|
20
20
|
#
|
21
21
|
# You create a bucket by name. Bucket names must be globally unique
|
22
22
|
# and must be DNS compatible.
|
23
23
|
#
|
24
|
-
#
|
25
|
-
#
|
24
|
+
# s3 = AWS::S3.new
|
25
|
+
# bucket = s3.buckets.create('dns-compat-bucket-name')
|
26
26
|
#
|
27
|
-
#
|
27
|
+
# # Getting a Bucket
|
28
28
|
#
|
29
29
|
# You can create a reference to a bucket, given its name.
|
30
30
|
#
|
31
|
-
#
|
32
|
-
#
|
31
|
+
# bucket = s3.buckets['bucket-name'] # makes no request
|
32
|
+
# bucket.exists? #=> returns true/false
|
33
33
|
#
|
34
|
-
#
|
34
|
+
# # Enumerating Buckets
|
35
35
|
#
|
36
36
|
# The {BucketCollection} class is enumerable.
|
37
37
|
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
38
|
+
# s3.buckets.each do |bucket|
|
39
|
+
# puts bucket.name
|
40
|
+
# end
|
41
41
|
#
|
42
|
-
#
|
42
|
+
# # Deleting a Bucket
|
43
43
|
#
|
44
44
|
# You can delete an empty bucket you own.
|
45
45
|
#
|
46
|
-
#
|
47
|
-
#
|
46
|
+
# bucket = s3.buckets.create('my-temp-bucket')
|
47
|
+
# bucket.objects['abc'].write('xyz')
|
48
48
|
#
|
49
|
-
#
|
50
|
-
#
|
49
|
+
# bucket.clear! # deletes all object versions in batches
|
50
|
+
# bucket.delete
|
51
51
|
#
|
52
52
|
# You can alternatively call {#delete!} which will clear
|
53
53
|
# the bucket for your first.
|
54
54
|
#
|
55
|
-
#
|
55
|
+
# bucket.delete!
|
56
56
|
#
|
57
|
-
#
|
57
|
+
# # Objects
|
58
58
|
#
|
59
59
|
# Given a bucket you can access its objects, either by key or by
|
60
60
|
# enumeration.
|
61
61
|
#
|
62
|
-
#
|
62
|
+
# bucket.objects['key'] #=> makes no request, returns an S3Object
|
63
63
|
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
64
|
+
# bucket.objects.each do |obj|
|
65
|
+
# puts obj.key
|
66
|
+
# end
|
67
67
|
#
|
68
68
|
# See {ObjectCollection} and {S3Object} for more information on working
|
69
69
|
# with objects.
|
70
70
|
#
|
71
|
-
#
|
71
|
+
# # Website Configuration
|
72
72
|
#
|
73
73
|
# It is easy to enable website hosting for a bucket.
|
74
74
|
#
|
75
|
-
#
|
75
|
+
# bucket.configure_website
|
76
76
|
#
|
77
77
|
# You can specify the index and error documents by passing a block.
|
78
78
|
# If your bucket is already configured as a website, the current
|
@@ -80,136 +80,136 @@ module AWS
|
|
80
80
|
# configured as a website, a new configuration will be yielded
|
81
81
|
# with default values.
|
82
82
|
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
83
|
+
# bucket.configure_website do |cfg|
|
84
|
+
# cfg.index_document_suffix = 'index.html'
|
85
|
+
# cfg.error_document_key = 'error.html'
|
86
|
+
# end
|
87
87
|
#
|
88
88
|
# You can disable website hosting two ways:
|
89
89
|
#
|
90
|
-
#
|
91
|
-
#
|
90
|
+
# bucket.remove_website_configuration
|
91
|
+
# bucket.website_configuration = nil
|
92
92
|
#
|
93
93
|
# You can use {#website_configuration=} to copy a website configuration
|
94
94
|
# from one bucket to another.
|
95
95
|
#
|
96
|
-
#
|
96
|
+
# bucket.website_configuration = other_bucket.website_configuration
|
97
97
|
#
|
98
|
-
#
|
98
|
+
# # Bucket Policies and ACLs
|
99
99
|
#
|
100
100
|
# You can control access to your bucket and its contents a number
|
101
101
|
# of ways. You can specify a bucket ACL (access control list)
|
102
102
|
# or a bucket policy.
|
103
103
|
#
|
104
|
-
#
|
104
|
+
# ## ACLs
|
105
105
|
#
|
106
106
|
# ACLs control access to your bucket and its contents via a list of
|
107
107
|
# grants and grantees.
|
108
108
|
#
|
109
|
-
#
|
109
|
+
# ### Canned ACLs
|
110
110
|
#
|
111
111
|
# The simplest way to specify an ACL is to use one of Amazon's "canned"
|
112
112
|
# ACLs. Amazon accepts the following canned ACLs:
|
113
113
|
#
|
114
|
-
# *
|
115
|
-
# *
|
116
|
-
# *
|
117
|
-
# *
|
118
|
-
# *
|
119
|
-
# *
|
114
|
+
# * `:private`
|
115
|
+
# * `:public_read`
|
116
|
+
# * `:public_read_write`
|
117
|
+
# * `:authenticated_read`
|
118
|
+
# * `:bucket_owner_read`
|
119
|
+
# * `:bucket_owner_full_control`
|
120
120
|
#
|
121
121
|
# You can specify a the ACL at bucket creation or later update a bucket.
|
122
122
|
#
|
123
|
-
#
|
124
|
-
#
|
123
|
+
# # at create time, defaults to :private when not specified
|
124
|
+
# bucket = s3.buckets.create('name', :acl => :public_read)
|
125
125
|
#
|
126
|
-
#
|
127
|
-
#
|
126
|
+
# # replacing an existing bucket ACL
|
127
|
+
# bucket.acl = :private
|
128
128
|
#
|
129
|
-
#
|
129
|
+
# ### Grants
|
130
130
|
#
|
131
131
|
# Alternatively you can specify a hash of grants. Each entry in the
|
132
|
-
#
|
132
|
+
# `:grant` hash has a grant (key) and a list of grantees (values).
|
133
133
|
# Valid grant keys are:
|
134
134
|
#
|
135
|
-
# *
|
136
|
-
# *
|
137
|
-
# *
|
138
|
-
# *
|
139
|
-
# *
|
135
|
+
# * `:grant_read`
|
136
|
+
# * `:grant_write`
|
137
|
+
# * `:grant_read_acp`
|
138
|
+
# * `:grant_write_acp`
|
139
|
+
# * `:grant_full_control`
|
140
140
|
#
|
141
141
|
# Each grantee can be a String, Hash or array of strings or hashes.
|
142
142
|
# The following example uses grants to provide public read
|
143
143
|
# to everyone while providing full control to a user by email address
|
144
144
|
# and to another by their account id (cannonical user id).
|
145
145
|
#
|
146
|
-
#
|
147
|
-
#
|
148
|
-
#
|
149
|
-
#
|
150
|
-
#
|
151
|
-
#
|
152
|
-
#
|
153
|
-
#
|
154
|
-
#
|
146
|
+
# bucket = s3.buckets.create('name', :grants => {
|
147
|
+
# :grant_read => [
|
148
|
+
# { :uri => "http://acs.amazonaws.com/groups/global/AllUsers" },
|
149
|
+
# ],
|
150
|
+
# :grant_full_control => [
|
151
|
+
# { :id => 'abc...mno' } # cannonical user id
|
152
|
+
# { :email_address => 'foo@bar.com' }, # email address
|
153
|
+
# ]
|
154
|
+
# })
|
155
155
|
#
|
156
|
-
#
|
156
|
+
# ### ACL Object
|
157
157
|
#
|
158
158
|
# Lastly, you can build an ACL object and use a Ruby DSL to specify grants
|
159
159
|
# and grantees. See {ACLObject} for more information.
|
160
160
|
#
|
161
|
-
#
|
162
|
-
#
|
163
|
-
#
|
164
|
-
#
|
161
|
+
# # updating an existing bucket acl using ACLObject
|
162
|
+
# bucket.acl.change do |acl|
|
163
|
+
# acl.grants.reject! do |g|
|
164
|
+
# g.grantee.canonical_user_id != bucket.owner.id
|
165
|
+
# end
|
165
166
|
# end
|
166
|
-
# end
|
167
167
|
#
|
168
|
-
#
|
168
|
+
# ## Policies
|
169
169
|
#
|
170
170
|
# You can also work with bucket policies.
|
171
171
|
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
#
|
172
|
+
# policy = AWS::S3::Policy.new
|
173
|
+
# policy.allow(
|
174
|
+
# :actions => [:put_object, :get_object]
|
175
|
+
# :resources => [bucket]
|
176
|
+
# :principals => :any)
|
177
177
|
#
|
178
|
-
#
|
178
|
+
# bucket.policy = policy
|
179
179
|
#
|
180
180
|
# See {Core::Policy} and {S3::Policy} for more information on build
|
181
181
|
# policy objects.
|
182
182
|
#
|
183
|
-
#
|
183
|
+
# # Versioned Buckets
|
184
184
|
#
|
185
185
|
# You can enable versioning on a bucket you control. When versioning
|
186
186
|
# is enabled, S3 will keep track of each version of each object you
|
187
187
|
# write to the bucket (even deletions).
|
188
188
|
#
|
189
|
-
#
|
190
|
-
#
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
#
|
197
|
-
#
|
198
|
-
#
|
199
|
-
#
|
200
|
-
#
|
201
|
-
#
|
202
|
-
#
|
203
|
-
#
|
189
|
+
# bucket.versioning_enabled? #=> false
|
190
|
+
# bucket.enable_versioning
|
191
|
+
# # there is also a #suspend_versioning method
|
192
|
+
#
|
193
|
+
# obj = bucket.objects['my-obj']
|
194
|
+
# obj.write('a')
|
195
|
+
# obj.write('b')
|
196
|
+
# obj.delete
|
197
|
+
# obj.write('c')
|
198
|
+
#
|
199
|
+
# obj.versions.each do |obj_version|
|
200
|
+
# if obj_version.delete_marker?
|
201
|
+
# puts obj_version.read
|
202
|
+
# else
|
203
|
+
# puts "- DELETE MARKER"
|
204
|
+
# end
|
204
205
|
# end
|
205
|
-
# end
|
206
206
|
#
|
207
207
|
# Alternatively you can enumerate all versions of all objects in your
|
208
208
|
# bucket.
|
209
209
|
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
#
|
210
|
+
# bucket.versions.each do |obj_version|
|
211
|
+
# puts obj_version.key ` " : " ` obj_version.version_id
|
212
|
+
# end
|
213
213
|
#
|
214
214
|
# See {BucketVersionCollection}, {ObjectVersionCollection} and
|
215
215
|
# {ObjectVersion} for more information on working with objects in
|
@@ -260,24 +260,24 @@ module AWS
|
|
260
260
|
|
261
261
|
# Configure the current bucket as a website.
|
262
262
|
#
|
263
|
-
#
|
263
|
+
# bucket.configure_website
|
264
264
|
#
|
265
265
|
# If you pass a block, the website configuration object
|
266
266
|
# will be yielded. You can modify it before it is saved.
|
267
267
|
#
|
268
|
-
#
|
269
|
-
#
|
270
|
-
#
|
271
|
-
#
|
268
|
+
# bucket.configure_website do |cfg|
|
269
|
+
# cfg.index_document_suffix = 'index.html'
|
270
|
+
# cfg.error_document_key = 'error.html'
|
271
|
+
# end
|
272
272
|
#
|
273
273
|
# If the bucket already has a website configuration, it will be loaded
|
274
274
|
# and yielded. This makes it possible to modify an existing
|
275
275
|
# configuration.
|
276
276
|
#
|
277
|
-
#
|
278
|
-
#
|
279
|
-
#
|
280
|
-
#
|
277
|
+
# # only rename the error document
|
278
|
+
# bucket.configure_website do |cfg|
|
279
|
+
# cfg.error_document_key = 'oops.html'
|
280
|
+
# end
|
281
281
|
#
|
282
282
|
# @yieldparam [WebsiteConfiguration] website_config
|
283
283
|
# @return [WebsiteConfiguration]
|
@@ -292,7 +292,7 @@ module AWS
|
|
292
292
|
self.website_configuration = website_config
|
293
293
|
end
|
294
294
|
|
295
|
-
# Returns the bucket website configuration. Returns
|
295
|
+
# Returns the bucket website configuration. Returns `nil` if the bucket
|
296
296
|
# is not configured as a website.
|
297
297
|
# @return [WebsiteConfiguration,nil]
|
298
298
|
# @see #configure_website
|
@@ -307,7 +307,7 @@ module AWS
|
|
307
307
|
end
|
308
308
|
|
309
309
|
# Sets the website configuration. Deletes the configuration if
|
310
|
-
#
|
310
|
+
# `nil` is passed.
|
311
311
|
# @param [WebsiteConfiguration,nil] website_configuration
|
312
312
|
# @see #configure_website
|
313
313
|
# @see #website_configuration
|
@@ -334,7 +334,7 @@ module AWS
|
|
334
334
|
nil
|
335
335
|
end
|
336
336
|
|
337
|
-
# @return [Boolean] Returns
|
337
|
+
# @return [Boolean] Returns `true` if this bucket is configured as
|
338
338
|
# a website.
|
339
339
|
# @see #configure_website
|
340
340
|
# @see #website_configuration
|
@@ -346,20 +346,20 @@ module AWS
|
|
346
346
|
|
347
347
|
# Returns the tags for this bucket.
|
348
348
|
#
|
349
|
-
#
|
350
|
-
#
|
349
|
+
# tags = bucket.tags
|
350
|
+
# #=> <AWS::S3::BucketTagCollection>
|
351
351
|
#
|
352
|
-
#
|
353
|
-
#
|
352
|
+
# # adds a tag to the bucket
|
353
|
+
# tags['foo'] = 'abc'
|
354
354
|
#
|
355
|
-
#
|
356
|
-
#
|
355
|
+
# # replaces all tags
|
356
|
+
# tags.set('new' => 'tags')
|
357
357
|
#
|
358
|
-
#
|
359
|
-
#
|
358
|
+
# # removes all tags from the bucket
|
359
|
+
# tags.clear
|
360
360
|
#
|
361
|
-
#
|
362
|
-
#
|
361
|
+
# # returns tags as a hash
|
362
|
+
# tags.to_h
|
363
363
|
#
|
364
364
|
# @return [BucketTagCollection] Returns a collection that represents
|
365
365
|
# the tags for this bucket.
|
@@ -370,14 +370,14 @@ module AWS
|
|
370
370
|
|
371
371
|
# Sets the tags for this bucket.
|
372
372
|
#
|
373
|
-
#
|
373
|
+
# bucket.tags = { 'contents' => 'photots' }
|
374
374
|
#
|
375
375
|
# You can remove all tags for the bucket by passing an empty
|
376
|
-
# hash or
|
376
|
+
# hash or `nil`.
|
377
377
|
#
|
378
|
-
#
|
379
|
-
#
|
380
|
-
#
|
378
|
+
# bucket.tags = nil # {} also deletes all tags
|
379
|
+
# bucket.tags
|
380
|
+
# #=> {}
|
381
381
|
#
|
382
382
|
# @param [Hash,nil] tags The tags to set on this bucket.
|
383
383
|
#
|
@@ -438,7 +438,7 @@ module AWS
|
|
438
438
|
nil
|
439
439
|
end
|
440
440
|
|
441
|
-
# @return [Boolean] returns
|
441
|
+
# @return [Boolean] returns `true` if version is enabled on this bucket.
|
442
442
|
def versioning_enabled?
|
443
443
|
versioning_state == :enabled
|
444
444
|
end
|
@@ -446,9 +446,9 @@ module AWS
|
|
446
446
|
|
447
447
|
# Returns the versioning status for this bucket. States include:
|
448
448
|
#
|
449
|
-
# *
|
450
|
-
# *
|
451
|
-
# *
|
449
|
+
# * `:enabled` - currently enabled
|
450
|
+
# * `:suspended` - currently suspended
|
451
|
+
# * `:unversioned` - versioning has never been enabled
|
452
452
|
#
|
453
453
|
# @return [Symbol] the versioning state
|
454
454
|
def versioning_state
|
@@ -510,7 +510,7 @@ module AWS
|
|
510
510
|
true
|
511
511
|
rescue Errors::NoSuchBucket => e
|
512
512
|
false # bucket does not exist
|
513
|
-
rescue Errors::
|
513
|
+
rescue Errors::AccessDenied => e
|
514
514
|
true # bucket exists
|
515
515
|
end
|
516
516
|
end
|
@@ -546,14 +546,14 @@ module AWS
|
|
546
546
|
end
|
547
547
|
|
548
548
|
# Returns the bucket's access control list. This will be an
|
549
|
-
# instance of AccessControlList, plus an additional
|
549
|
+
# instance of AccessControlList, plus an additional `change`
|
550
550
|
# method:
|
551
551
|
#
|
552
|
-
#
|
553
|
-
#
|
554
|
-
#
|
552
|
+
# bucket.acl.change do |acl|
|
553
|
+
# acl.grants.reject! do |g|
|
554
|
+
# g.grantee.canonical_user_id != bucket.owner.id
|
555
|
+
# end
|
555
556
|
# end
|
556
|
-
# end
|
557
557
|
#
|
558
558
|
# @return [AccessControlList]
|
559
559
|
def acl
|
@@ -597,15 +597,15 @@ module AWS
|
|
597
597
|
# PolicyProxy mixed in, so you can use it to change the
|
598
598
|
# current policy or delete it, for example:
|
599
599
|
#
|
600
|
-
#
|
601
|
-
#
|
602
|
-
#
|
603
|
-
#
|
604
|
-
#
|
600
|
+
# if policy = bucket.policy
|
601
|
+
# # add a statement
|
602
|
+
# policy.change do |p|
|
603
|
+
# p.allow(...)
|
604
|
+
# end
|
605
605
|
#
|
606
|
-
#
|
607
|
-
#
|
608
|
-
#
|
606
|
+
# # delete the policy
|
607
|
+
# policy.delete
|
608
|
+
# end
|
609
609
|
#
|
610
610
|
# Note that changing the policy is not an atomic operation; it
|
611
611
|
# fetches the current policy, yields it to the block, and then
|
@@ -614,7 +614,7 @@ module AWS
|
|
614
614
|
# method.
|
615
615
|
#
|
616
616
|
# @return [Policy,nil] Returns the bucket policy (if it has one),
|
617
|
-
# or it returns
|
617
|
+
# or it returns `nil` otherwise.
|
618
618
|
def policy
|
619
619
|
resp = client.get_bucket_policy(:bucket_name => name)
|
620
620
|
policy = Policy.from_json(resp.data[:policy])
|
@@ -629,7 +629,7 @@ module AWS
|
|
629
629
|
#
|
630
630
|
# @param policy The new policy. This can be a string (which
|
631
631
|
# is assumed to contain a valid policy expressed in JSON), a
|
632
|
-
# Policy object or any object that responds to
|
632
|
+
# Policy object or any object that responds to `to_json`.
|
633
633
|
# @see Policy
|
634
634
|
# @return [nil]
|
635
635
|
def policy=(policy)
|
@@ -660,16 +660,16 @@ module AWS
|
|
660
660
|
# You can call this method if you prefer to build your own
|
661
661
|
# lifecycle configuration.
|
662
662
|
#
|
663
|
-
#
|
664
|
-
#
|
665
|
-
#
|
666
|
-
#
|
667
|
-
#
|
663
|
+
# bucket.lifecycle_configuration = <<-XML
|
664
|
+
# <LifecycleConfiguration>
|
665
|
+
# ...
|
666
|
+
# </LifecycleConfiguration>
|
667
|
+
# XML
|
668
668
|
#
|
669
669
|
# You can also use this method to copy a lifecycle configuration
|
670
670
|
# from another bucket.
|
671
671
|
#
|
672
|
-
#
|
672
|
+
# bucket.lifecycle_configuration = other_bucket.lifecycle_configuration
|
673
673
|
#
|
674
674
|
# If you call this method, passing nil, the lifecycle configuration
|
675
675
|
# for this bucket will be deleted.
|
@@ -713,7 +713,7 @@ module AWS
|
|
713
713
|
# @see Tree
|
714
714
|
# @param [Hash] options
|
715
715
|
# @option options [String] :prefix (nil) Set prefix to choose where
|
716
|
-
# the top of the tree will be. A value of
|
716
|
+
# the top of the tree will be. A value of `nil` means
|
717
717
|
# that the tree will include all objects in the collection.
|
718
718
|
#
|
719
719
|
# @option options [String] :delimiter ('/') The string that separates
|