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
|
@@ -16,32 +16,32 @@ module AWS
|
|
|
16
16
|
# This is the primary interface for uploading X.509 signing certificates
|
|
17
17
|
# to an AWS account or an IAM user.
|
|
18
18
|
#
|
|
19
|
-
#
|
|
19
|
+
# iam = AWS::IAM.new
|
|
20
20
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
21
|
+
# # upload a certificate for the AWS account:
|
|
22
|
+
# iam.signing_certificates.upload(<<-CERT)
|
|
23
|
+
# -----BEGIN CERTIFICATE-----
|
|
24
|
+
# MIICdzCCAeCgAwIBAgIFGS4fY6owDQYJKoZIhvcNAQEFBQAwUzELMAkGA1UEBhMC
|
|
25
|
+
# ......
|
|
26
|
+
# Glli79yh87PRi0vNDlFEoHXNynkvC/c4TiWruZ4haM9BR9EdWr1DBNNu73ui093K
|
|
27
|
+
# F9TbdXSWdgMl7E0=
|
|
28
|
+
# -----END CERTIFICATE-----
|
|
29
|
+
# CERT
|
|
30
30
|
#
|
|
31
31
|
# If you want to work with an IAM user's certificates just use the
|
|
32
32
|
# signing certificate interface on a user:
|
|
33
33
|
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
34
|
+
# user = iam.users['someuser']
|
|
35
|
+
# user.signing_certificates.upload(cert_body)
|
|
36
36
|
#
|
|
37
37
|
class SigningCertificateCollection
|
|
38
38
|
|
|
39
39
|
include Collection
|
|
40
40
|
|
|
41
41
|
# @param [Hash] options
|
|
42
|
-
# @option options [User] :user (nil) When
|
|
42
|
+
# @option options [User] :user (nil) When `:user` is provided the
|
|
43
43
|
# collection will represents the signing certificates belonging only
|
|
44
|
-
# to that user. When
|
|
44
|
+
# to that user. When `:user` is omitted the collection will manage
|
|
45
45
|
# root credentials on the AWS account (instead those belonging to a
|
|
46
46
|
# particular user).
|
|
47
47
|
def initialize options = {}
|
|
@@ -49,13 +49,13 @@ module AWS
|
|
|
49
49
|
@user ? super(@user, options) : super(options)
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
# @return [User,nil] Returns the user this collection belongs to.
|
|
53
|
-
# Returns
|
|
54
|
-
# for the account. If the configured credentials belong to an
|
|
52
|
+
# @return [User,nil] Returns the user this collection belongs to.
|
|
53
|
+
# Returns `nil` if the collection represents the root credentials
|
|
54
|
+
# for the account. If the configured credentials belong to an
|
|
55
55
|
# IAM user, then that user is the implied owner.
|
|
56
56
|
attr_reader :user
|
|
57
57
|
|
|
58
|
-
# @param [String] certificate_body The contents of the signing
|
|
58
|
+
# @param [String] certificate_body The contents of the signing
|
|
59
59
|
# certificate.
|
|
60
60
|
# @return [SigningCertificate] Returns the newly created signing
|
|
61
61
|
# certificate.
|
|
@@ -67,7 +67,7 @@ module AWS
|
|
|
67
67
|
|
|
68
68
|
resp = client.upload_signing_certificate(options)
|
|
69
69
|
|
|
70
|
-
SigningCertificate.new_from(:upload_signing_certificate,
|
|
70
|
+
SigningCertificate.new_from(:upload_signing_certificate,
|
|
71
71
|
resp.certificate, resp.certificate.certificate_id, new_options)
|
|
72
72
|
|
|
73
73
|
end
|
|
@@ -92,14 +92,14 @@ module AWS
|
|
|
92
92
|
|
|
93
93
|
# Yields once for each signing certificate.
|
|
94
94
|
#
|
|
95
|
-
# You can limit the number of certificates yielded using
|
|
95
|
+
# You can limit the number of certificates yielded using `:limit`.
|
|
96
96
|
#
|
|
97
97
|
# @param [Hash] options
|
|
98
98
|
# @option options [Integer] :limit The maximum number of certificates
|
|
99
99
|
# to yield.
|
|
100
|
-
# @option options [Integer] :batch_size The maximum number of
|
|
100
|
+
# @option options [Integer] :batch_size The maximum number of
|
|
101
101
|
# certificates received each service reqeust.
|
|
102
|
-
# @yieldparam [SigningCertificate] signing_certificate
|
|
102
|
+
# @yieldparam [SigningCertificate] signing_certificate
|
|
103
103
|
# @return [nil]
|
|
104
104
|
def each options = {}, &block
|
|
105
105
|
each_options = options.dup
|
|
@@ -112,7 +112,7 @@ module AWS
|
|
|
112
112
|
def each_item response, &block
|
|
113
113
|
response.certificates.each do |item|
|
|
114
114
|
|
|
115
|
-
cert = SigningCertificate.new_from(:list_signing_certificates,
|
|
115
|
+
cert = SigningCertificate.new_from(:list_signing_certificates,
|
|
116
116
|
item, item.certificate_id, new_options)
|
|
117
117
|
|
|
118
118
|
yield(cert)
|
data/lib/aws/iam/user.rb
CHANGED
|
@@ -14,46 +14,44 @@
|
|
|
14
14
|
module AWS
|
|
15
15
|
class IAM
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
# Represents an IAM User. Each AWS account can have many users. Users
|
|
19
19
|
# can be organized (optionally) into groups. Users (and groups) can be
|
|
20
20
|
# given policies that affect that they can do.
|
|
21
21
|
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
# iam = AWS::IAM.new
|
|
22
|
+
# ## Creating A User
|
|
25
23
|
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
24
|
+
# iam = AWS::IAM.new
|
|
25
|
+
# user = iam.users.create('johndoe')
|
|
28
26
|
#
|
|
29
|
-
#
|
|
27
|
+
# ## Renaming a User
|
|
30
28
|
#
|
|
31
29
|
# You can only edit a user's name and path (both of which will modify
|
|
32
30
|
# the user's ARN).
|
|
33
31
|
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
32
|
+
# user = iam.users['johndoe']
|
|
33
|
+
# user.name = 'newname'
|
|
34
|
+
#
|
|
35
|
+
# ## User Path
|
|
36
36
|
#
|
|
37
|
-
# == User Path
|
|
38
|
-
#
|
|
39
37
|
# When you create a user you can assign a path. Paths must begin and
|
|
40
|
-
# end with a forward slash (/).
|
|
38
|
+
# end with a forward slash (/).
|
|
41
39
|
#
|
|
42
|
-
#
|
|
40
|
+
# user = iam.users.create('newuser', :path => '/developers/ruby/')
|
|
43
41
|
#
|
|
44
42
|
# Paths are a useful tool for organizing/tagging users. You can later
|
|
45
43
|
# enumerate users by their path prefixes:
|
|
46
44
|
#
|
|
47
|
-
#
|
|
48
|
-
#
|
|
49
|
-
#
|
|
45
|
+
# iam.users.each(:path_prefix => '/developers').each do |developer|
|
|
46
|
+
# puts developer.name
|
|
47
|
+
# end
|
|
50
48
|
#
|
|
51
|
-
#
|
|
49
|
+
# ## Login Profile
|
|
52
50
|
#
|
|
53
51
|
# A login profile is required for an IAM user to use the AWS Management
|
|
54
52
|
# console (web interface). See {LoginProfile} for more information.
|
|
55
53
|
#
|
|
56
|
-
#
|
|
54
|
+
# ## Deleting Users
|
|
57
55
|
#
|
|
58
56
|
# In order to delete a user you must first remove it from all of its
|
|
59
57
|
# groups and delete all of its signing certificates. Once this is done:
|
|
@@ -91,8 +89,8 @@ module AWS
|
|
|
91
89
|
# @attr_reader [String] The user's ARN (Amazon Resource Name).
|
|
92
90
|
attribute :arn
|
|
93
91
|
|
|
94
|
-
# @attr [String] The path for this user. Paths are used to
|
|
95
|
-
# identify which division or part of an organization the user
|
|
92
|
+
# @attr [String] The path for this user. Paths are used to
|
|
93
|
+
# identify which division or part of an organization the user
|
|
96
94
|
# belongs to.
|
|
97
95
|
mutable_attribute :path
|
|
98
96
|
|
|
@@ -129,33 +127,33 @@ module AWS
|
|
|
129
127
|
|
|
130
128
|
# Returns a collection that represents all policies for this user.
|
|
131
129
|
#
|
|
132
|
-
#
|
|
133
|
-
#
|
|
134
|
-
#
|
|
130
|
+
# user.policies.each do |policy|
|
|
131
|
+
# puts policy.name
|
|
132
|
+
# end
|
|
135
133
|
#
|
|
136
134
|
# @return [PolicyCollection] Returns a collection that represents
|
|
137
135
|
# all policies for this user.
|
|
138
136
|
def policies
|
|
139
|
-
UserPolicyCollection.new(self)
|
|
137
|
+
UserPolicyCollection.new(self)
|
|
140
138
|
end
|
|
141
139
|
|
|
142
140
|
# Returns a collection that represents the signing certificates
|
|
143
141
|
# belonging to this user.
|
|
144
142
|
#
|
|
145
|
-
#
|
|
146
|
-
#
|
|
147
|
-
#
|
|
143
|
+
# user.signing_certificates.each do |cert|
|
|
144
|
+
# # ...
|
|
145
|
+
# end
|
|
148
146
|
#
|
|
149
147
|
# If you need to access the signing certificates of this AWS account,
|
|
150
148
|
# see {IAM#signing_certificates}.
|
|
151
|
-
#
|
|
149
|
+
#
|
|
152
150
|
# @return [SigningCertificateCollection] Returns a collection that
|
|
153
151
|
# represents signing certificates for this user.
|
|
154
152
|
def signing_certificates
|
|
155
153
|
SigningCertificateCollection.new(:user => self, :config => config)
|
|
156
154
|
end
|
|
157
155
|
|
|
158
|
-
# @return [MFADeviceCollection] Returns a collection that represents
|
|
156
|
+
# @return [MFADeviceCollection] Returns a collection that represents
|
|
159
157
|
# all MFA devices assigned to this user.
|
|
160
158
|
def mfa_devices
|
|
161
159
|
MFADeviceCollection.new(self)
|
|
@@ -166,19 +164,18 @@ module AWS
|
|
|
166
164
|
# Management Console}. The object returned by this method
|
|
167
165
|
# allows you to set or delete the password. For example:
|
|
168
166
|
#
|
|
169
|
-
#
|
|
167
|
+
# user.login_profile.password = "TheNewPassword"
|
|
170
168
|
#
|
|
171
|
-
# @return [LoginProfile] Returns the login profile for this
|
|
172
|
-
# user.
|
|
169
|
+
# @return [LoginProfile] Returns the login profile for this user.
|
|
173
170
|
def login_profile
|
|
174
171
|
LoginProfile.new(self)
|
|
175
172
|
end
|
|
176
173
|
|
|
177
174
|
# Returns a collection that represents the access keys for this user.
|
|
178
175
|
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
176
|
+
# user.access_keys.each do |access_key|
|
|
177
|
+
# puts access_key.id
|
|
178
|
+
# end
|
|
182
179
|
#
|
|
183
180
|
# @return [AccessKeyCollection] Returns a collection that represents all
|
|
184
181
|
# access keys for this user.
|
|
@@ -186,9 +183,7 @@ module AWS
|
|
|
186
183
|
AccessKeyCollection.new(:user => self)
|
|
187
184
|
end
|
|
188
185
|
|
|
189
|
-
# Returns a collection that includes all of the groups the user
|
|
190
|
-
# is in.
|
|
191
|
-
#
|
|
186
|
+
# Returns a collection that includes all of the groups the user is in.
|
|
192
187
|
# @return [UserGroupCollection]
|
|
193
188
|
def groups
|
|
194
189
|
UserGroupCollection.new(self)
|
|
@@ -14,66 +14,66 @@
|
|
|
14
14
|
module AWS
|
|
15
15
|
class IAM
|
|
16
16
|
|
|
17
|
-
# A collection that provides access to IAM users belonging to this
|
|
17
|
+
# A collection that provides access to IAM users belonging to this
|
|
18
18
|
# account.
|
|
19
19
|
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
20
|
+
# iam = AWS::IAM.new
|
|
21
|
+
# users = iam.users
|
|
22
22
|
#
|
|
23
|
-
#
|
|
23
|
+
# ## Creating A User
|
|
24
24
|
#
|
|
25
25
|
# To create an IAM user you need only provide a user name.
|
|
26
26
|
#
|
|
27
|
-
#
|
|
27
|
+
# user = users.create('username')
|
|
28
28
|
#
|
|
29
|
-
# You can also provide an optional
|
|
29
|
+
# You can also provide an optional `:path` that can be used to organize
|
|
30
30
|
# users.
|
|
31
31
|
#
|
|
32
|
-
#
|
|
32
|
+
# user = users.create('johndoe', :path => '/staff/customer_support/')
|
|
33
33
|
#
|
|
34
|
-
#
|
|
34
|
+
# ## Getting a User by Name
|
|
35
35
|
#
|
|
36
36
|
# You can get a referene to a user by using array notation:
|
|
37
37
|
#
|
|
38
|
-
#
|
|
38
|
+
# user = users['username']
|
|
39
39
|
#
|
|
40
|
-
#
|
|
40
|
+
# ## Enumerating Users
|
|
41
41
|
#
|
|
42
42
|
# A user collection can also be used to enumerate users:
|
|
43
43
|
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
44
|
+
# users.each do |user|
|
|
45
|
+
# puts user.name
|
|
46
|
+
# end
|
|
47
47
|
#
|
|
48
|
-
#
|
|
48
|
+
# ## Path Prefixes
|
|
49
49
|
#
|
|
50
50
|
# You can also find/enumerate users who's path begins with a given prefix:
|
|
51
51
|
#
|
|
52
|
-
#
|
|
53
|
-
#
|
|
54
|
-
#
|
|
52
|
+
# users.each(:path_prefix => '/staff/developers/ruby').each do |ruby_dev|
|
|
53
|
+
# puts "#{ruby_dev.name} is awesome!"
|
|
54
|
+
# end
|
|
55
55
|
#
|
|
56
56
|
class UserCollection
|
|
57
57
|
|
|
58
58
|
include Collection::WithPrefix
|
|
59
59
|
|
|
60
60
|
# @param [String] name Name of the user to create.
|
|
61
|
-
# @option options [String] :path ('/') The path for the user name.
|
|
62
|
-
# For more information about paths, see
|
|
63
|
-
#
|
|
61
|
+
# @option options [String] :path ('/') The path for the user name.
|
|
62
|
+
# For more information about paths, see
|
|
63
|
+
# [Identifiers for IAM Entities](http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html)
|
|
64
64
|
# @return [User] Returns the newly created user.
|
|
65
65
|
def create name, options = {}
|
|
66
66
|
create_opts = {}
|
|
67
67
|
create_opts[:user_name] = name
|
|
68
68
|
create_opts[:path] = options[:path] if options[:path]
|
|
69
69
|
resp = client.create_user(create_opts)
|
|
70
|
-
User.new_from(:create_user, resp.user,
|
|
70
|
+
User.new_from(:create_user, resp.user,
|
|
71
71
|
resp.user.user_name, :config => config)
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# Returns a reference to the user with the given name:
|
|
75
75
|
#
|
|
76
|
-
#
|
|
76
|
+
# user = iam.users['username']
|
|
77
77
|
#
|
|
78
78
|
# @param [String] name Name of the user to return a reference for.
|
|
79
79
|
# @return [User] Returns a reference to the named user.
|
|
@@ -83,8 +83,8 @@ module AWS
|
|
|
83
83
|
|
|
84
84
|
# Yields once for each user.
|
|
85
85
|
#
|
|
86
|
-
# You can limit the number of users yielded using
|
|
87
|
-
#
|
|
86
|
+
# You can limit the number of users yielded using `:limit` and
|
|
87
|
+
# `:path_prefix`.
|
|
88
88
|
#
|
|
89
89
|
# @param [Hash] options
|
|
90
90
|
#
|
|
@@ -104,9 +104,9 @@ module AWS
|
|
|
104
104
|
|
|
105
105
|
# Returns an enumerable object for this collection. This can be
|
|
106
106
|
# useful if you want to call an enumerable method that does
|
|
107
|
-
# not accept options (e.g.
|
|
107
|
+
# not accept options (e.g. `collect`, `first`, etc).
|
|
108
108
|
#
|
|
109
|
-
#
|
|
109
|
+
# users.enumerator(:path_prefix => '/admin').collect(&:name)
|
|
110
110
|
#
|
|
111
111
|
# @param (see #each)
|
|
112
112
|
# @option (see #each)
|
|
@@ -120,7 +120,7 @@ module AWS
|
|
|
120
120
|
def each_item response, &block
|
|
121
121
|
response.users.each do |item|
|
|
122
122
|
|
|
123
|
-
user = User.new_from(:list_users, item,
|
|
123
|
+
user = User.new_from(:list_users, item,
|
|
124
124
|
item.user_name, :config => config)
|
|
125
125
|
|
|
126
126
|
yield(user)
|
|
@@ -17,9 +17,9 @@ module AWS
|
|
|
17
17
|
# A collection that provides access to IAM groups to which a
|
|
18
18
|
# particular user belongs.
|
|
19
19
|
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
20
|
+
# user = AWS::IAM.new.users.first
|
|
21
|
+
# groups = user.groups
|
|
22
|
+
# groups.each { |g| puts g.name }
|
|
23
23
|
#
|
|
24
24
|
class UserGroupCollection
|
|
25
25
|
|
|
@@ -18,12 +18,12 @@ module AWS
|
|
|
18
18
|
# string keys and values that are instances of {Policy}. For
|
|
19
19
|
# example:
|
|
20
20
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
21
|
+
# # add or replace a policy named "ReadOnly"
|
|
22
|
+
# policy = AWS::IAM::Policy.new do |p|
|
|
23
|
+
# # ...
|
|
24
|
+
# end
|
|
25
|
+
# user.policies["ReadOnly"] = policy
|
|
26
|
+
# user.policies.has_key?("ReadOnly") # => true
|
|
27
27
|
#
|
|
28
28
|
# All of the methods for this class are defined in the
|
|
29
29
|
# {PolicyCollection} module.
|
|
@@ -16,14 +16,14 @@ require 'base64'
|
|
|
16
16
|
module AWS
|
|
17
17
|
class IAM
|
|
18
18
|
|
|
19
|
-
# @attr_reader [String] base_32_string_seed The Base32 seed defined as
|
|
20
|
-
# specified in RFC3548. Only accessible on newly created
|
|
19
|
+
# @attr_reader [String] base_32_string_seed The Base32 seed defined as
|
|
20
|
+
# specified in RFC3548. Only accessible on newly created
|
|
21
21
|
# devices. This value is Base64-encoded.
|
|
22
|
-
#
|
|
23
|
-
# @attr_reader [Blob] qr_code_png A QR code PNG image that encodes
|
|
24
|
-
# otpauth://totp/$virtualMFADeviceName@$AccountName? secret=$Base32String
|
|
25
|
-
# where $virtualMFADeviceName is one of the create call arguments,
|
|
26
|
-
# AccountName is the user name if set (accountId otherwise), and
|
|
22
|
+
#
|
|
23
|
+
# @attr_reader [Blob] qr_code_png A QR code PNG image that encodes
|
|
24
|
+
# otpauth://totp/$virtualMFADeviceName@$AccountName? secret=$Base32String
|
|
25
|
+
# where $virtualMFADeviceName is one of the create call arguments,
|
|
26
|
+
# AccountName is the user name if set (accountId otherwise), and
|
|
27
27
|
# Base32String is the seed in Base32 format. Only accessible on newly
|
|
28
28
|
# created devices. This value is Base64-encoded.
|
|
29
29
|
#
|
|
@@ -61,13 +61,13 @@ module AWS
|
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
# Enables the MFA device and associates it with the specified user.
|
|
65
|
-
# When enabled, the MFA device is required for every subsequent login
|
|
64
|
+
# Enables the MFA device and associates it with the specified user.
|
|
65
|
+
# When enabled, the MFA device is required for every subsequent login
|
|
66
66
|
# by the user name associated with the device.
|
|
67
67
|
# @param [User,String] user The user (or user name string) you want
|
|
68
68
|
# to enable this device for.
|
|
69
69
|
# @param [String] code1 An authentication code emitted by the device.
|
|
70
|
-
# @param [String] code2 A subsequent authentication code emitted by
|
|
70
|
+
# @param [String] code2 A subsequent authentication code emitted by
|
|
71
71
|
# the device.
|
|
72
72
|
def enable user, code1, code2
|
|
73
73
|
|
|
@@ -89,7 +89,7 @@ module AWS
|
|
|
89
89
|
!!enable_date
|
|
90
90
|
end
|
|
91
91
|
|
|
92
|
-
# Deactivates the MFA device and removes it from association with
|
|
92
|
+
# Deactivates the MFA device and removes it from association with
|
|
93
93
|
# the user for which it was originally enabled.
|
|
94
94
|
# @return [nil]
|
|
95
95
|
def deactivate
|
|
@@ -110,7 +110,7 @@ module AWS
|
|
|
110
110
|
|
|
111
111
|
populates_from :create_virtual_mfa_device do |resp|
|
|
112
112
|
if resp.virtual_mfa_device.serial_number == serial_number
|
|
113
|
-
resp.virtual_mfa_device
|
|
113
|
+
resp.virtual_mfa_device
|
|
114
114
|
end
|
|
115
115
|
end
|
|
116
116
|
|