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
|
@@ -18,17 +18,16 @@ module AWS
|
|
|
18
18
|
# find out which images exist with the characteristics you are
|
|
19
19
|
# interested in:
|
|
20
20
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
21
|
+
# ec2 = EC2.new
|
|
22
|
+
# all_images = ec2.images
|
|
23
|
+
# amazon_owned_images = all_images.with_owner('amazon')
|
|
24
|
+
# my_images = all_images.with_owner('self')
|
|
25
|
+
# tagged_amis = all_images.tagged('mytag')
|
|
26
|
+
# tagged_amis.map(&:id) # => ["ami-123", ...]
|
|
27
27
|
#
|
|
28
28
|
# You can also use it to create new images. For example:
|
|
29
29
|
#
|
|
30
|
-
#
|
|
31
|
-
# :name => "my-image")
|
|
30
|
+
# ec2.images.create(:instance_id => "i-123", :name => "my-image")
|
|
32
31
|
#
|
|
33
32
|
class ImageCollection < Collection
|
|
34
33
|
|
|
@@ -49,7 +48,7 @@ module AWS
|
|
|
49
48
|
|
|
50
49
|
# @return [ImageCollection] A new collection that only includes
|
|
51
50
|
# images owned by one or more of the specified AWS accounts.
|
|
52
|
-
# The IDs
|
|
51
|
+
# The IDs `:amazon` and `:self` can be used to include AMIs
|
|
53
52
|
# owned by Amazon or AMIs owned by you, respectively.
|
|
54
53
|
#
|
|
55
54
|
# @param [Array of Strings] owners The AWS account IDs by
|
|
@@ -60,9 +59,9 @@ module AWS
|
|
|
60
59
|
|
|
61
60
|
# @return [ImageCollection] A new collection that only includes
|
|
62
61
|
# images for which the specified user ID has explicit launch
|
|
63
|
-
# permissions. The user ID can be an AWS account ID,
|
|
62
|
+
# permissions. The user ID can be an AWS account ID, `:self`
|
|
64
63
|
# to return AMIs for which the sender of the request has
|
|
65
|
-
# explicit launch permissions, or
|
|
64
|
+
# explicit launch permissions, or `:all` to return AMIs with
|
|
66
65
|
# public launch permissions.
|
|
67
66
|
#
|
|
68
67
|
# @param [Array of Strings] users The AWS account IDs by which
|
|
@@ -88,35 +87,34 @@ module AWS
|
|
|
88
87
|
|
|
89
88
|
# Creates an AMI. There are several ways to create an AMI
|
|
90
89
|
# using this method; for detailed information on each strategy
|
|
91
|
-
# see
|
|
92
|
-
# Guide}[http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/creating-an-ami.html].
|
|
90
|
+
# see [the EC2 Developer Guide](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/creating-an-ami.html).
|
|
93
91
|
#
|
|
94
92
|
# @param [Hash] options Options for creating the image.
|
|
95
|
-
#
|
|
93
|
+
# `:name` is required, and you must also specify one of the
|
|
96
94
|
# following options:
|
|
97
95
|
#
|
|
98
|
-
#
|
|
99
|
-
#
|
|
100
|
-
#
|
|
96
|
+
# * `:instance_id`
|
|
97
|
+
# * `:image_location`
|
|
98
|
+
# * `:root_device_name`
|
|
101
99
|
#
|
|
102
100
|
# @option options [String] :instance_id The ID of a running
|
|
103
101
|
# instance. This instance will be rebooted unless
|
|
104
|
-
#
|
|
102
|
+
# `:no_reboot` is set to `true`.
|
|
105
103
|
#
|
|
106
104
|
# @option options [String] :description A description of the
|
|
107
105
|
# new image.
|
|
108
106
|
#
|
|
109
107
|
# @option options [Boolean] :no_reboot By default this
|
|
110
|
-
# option is set to
|
|
108
|
+
# option is set to `false`, which means Amazon EC2
|
|
111
109
|
# attempts to cleanly shut down the instance before image
|
|
112
110
|
# creation and reboots the instance afterwards. When the
|
|
113
|
-
# option is set to
|
|
111
|
+
# option is set to `true`, Amazon EC2 does not shut down
|
|
114
112
|
# the instance before creating the image. When this option
|
|
115
113
|
# is used, file system integrity on the created image cannot
|
|
116
114
|
# be guaranteed.
|
|
117
115
|
#
|
|
118
116
|
# *Note*: This option is only valid when used with
|
|
119
|
-
#
|
|
117
|
+
# `:instance_id`.
|
|
120
118
|
#
|
|
121
119
|
# @option options [String] :image_location Full path to your
|
|
122
120
|
# AMI manifest in Amazon S3 storage. This must be of the
|
|
@@ -125,24 +123,24 @@ module AWS
|
|
|
125
123
|
# @option options [String] :architecture The architecture of
|
|
126
124
|
# the image. Valid values:
|
|
127
125
|
#
|
|
128
|
-
#
|
|
129
|
-
#
|
|
126
|
+
# * `:i386`
|
|
127
|
+
# * `:x86_64`
|
|
130
128
|
#
|
|
131
|
-
# *Note*: This option is only valid with
|
|
132
|
-
# or
|
|
129
|
+
# *Note*: This option is only valid with `:image_location`
|
|
130
|
+
# or `:root_device_name`
|
|
133
131
|
#
|
|
134
132
|
# @option options [String] :kernel_id The ID of the kernel to
|
|
135
133
|
# select.
|
|
136
134
|
#
|
|
137
|
-
# *Note*: This option is only valid with
|
|
138
|
-
# or
|
|
135
|
+
# *Note*: This option is only valid with `:image_location`
|
|
136
|
+
# or `:root_device_name`
|
|
139
137
|
#
|
|
140
138
|
# @option options [Image] :kernel The kernel image to use.
|
|
141
|
-
# Equivalent to passing
|
|
139
|
+
# Equivalent to passing `:kernel_id` with the ID of the
|
|
142
140
|
# image.
|
|
143
141
|
#
|
|
144
|
-
# *Note*: This option is only valid with
|
|
145
|
-
# or
|
|
142
|
+
# *Note*: This option is only valid with `:image_location`
|
|
143
|
+
# or `:root_device_name`
|
|
146
144
|
#
|
|
147
145
|
# @option options [String] :ramdisk_id The ID of the RAM disk
|
|
148
146
|
# to select. Some kernels require additional drivers at
|
|
@@ -151,15 +149,15 @@ module AWS
|
|
|
151
149
|
# requirements, refer to the Resource Center and search for
|
|
152
150
|
# the kernel ID.
|
|
153
151
|
#
|
|
154
|
-
# *Note*: This option is only valid with
|
|
155
|
-
# or
|
|
152
|
+
# *Note*: This option is only valid with `:image_location`
|
|
153
|
+
# or `:root_device_name`
|
|
156
154
|
#
|
|
157
155
|
# @option options [Image] :ramdisk The ramdisk image to use.
|
|
158
|
-
# Equivalent to passing
|
|
156
|
+
# Equivalent to passing `:ramdisk_id` with the ID of the
|
|
159
157
|
# image.
|
|
160
158
|
#
|
|
161
|
-
# *Note*: This option is only valid with
|
|
162
|
-
# or
|
|
159
|
+
# *Note*: This option is only valid with `:image_location`
|
|
160
|
+
# or `:root_device_name`
|
|
163
161
|
#
|
|
164
162
|
# @option options [String] :root_device_name The root device
|
|
165
163
|
# name (e.g., /dev/sda1, or xvda).
|
|
@@ -169,23 +167,17 @@ module AWS
|
|
|
169
167
|
# each entry determines how that device is mapped. Valid
|
|
170
168
|
# values include:
|
|
171
169
|
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
#
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
# [:volume_size] The size of volume to create, in gigabytes.
|
|
185
|
-
#
|
|
186
|
-
# [:delete_on_termination] Setting this to true causes EC2
|
|
187
|
-
# to delete the volume when the
|
|
188
|
-
# instance is terminated.
|
|
170
|
+
# * A string, which is interpreted as a virtual device name.
|
|
171
|
+
# * A hash with any of the following options. One of
|
|
172
|
+
# `:snapshot`, `:snapshot_id` or `:volume_size` is
|
|
173
|
+
# required.
|
|
174
|
+
#
|
|
175
|
+
# * `:snapshot` - A snapshot to use when creating the block device.
|
|
176
|
+
# * `:snapshot_id` - The ID of a snapshot to use when creating
|
|
177
|
+
# the block device.
|
|
178
|
+
# * `:volume_size` -] The size of volume to create, in gigabytes.
|
|
179
|
+
# * `:delete_on_termination` - Setting this to true causes EC2
|
|
180
|
+
# to delete the volume when the instance is terminated.
|
|
189
181
|
# @return [Image]
|
|
190
182
|
def create options = {}
|
|
191
183
|
resp = case
|
data/lib/aws/ec2/instance.rb
CHANGED
|
@@ -25,11 +25,11 @@ module AWS
|
|
|
25
25
|
# The instance must be in a stopped state to change user data;
|
|
26
26
|
# for example:
|
|
27
27
|
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
28
|
+
# i.user_data # => "HELLO"
|
|
29
|
+
# i.status # => :running
|
|
30
|
+
# i.user_data = "GOODBYE" # raises an exception
|
|
31
|
+
# i.stop; sleep 1 until i.status == :stopped
|
|
32
|
+
# i.user_data = "GOODBYE" # => "GOODBYE"
|
|
33
33
|
#
|
|
34
34
|
# @attr [String] instance_type The instance type,
|
|
35
35
|
# e.g. "m1.small". The instance must be in a stopped state to
|
|
@@ -45,11 +45,10 @@ module AWS
|
|
|
45
45
|
# @attr [String] instance_initiated_shutdown_behavior Valid
|
|
46
46
|
# values are:
|
|
47
47
|
#
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
# terminated.
|
|
48
|
+
# * "stop"] When the instance shuts down, it will go into a
|
|
49
|
+
# "stopped" state.
|
|
50
|
+
# * "terminate"] When the instance shuts down, it will be
|
|
51
|
+
# terminated.
|
|
53
52
|
#
|
|
54
53
|
# @attr_reader [String] image_id Image ID of the AMI used to
|
|
55
54
|
# launch the instance.
|
|
@@ -68,8 +67,9 @@ module AWS
|
|
|
68
67
|
# @attr_reader [Symbol] root_device_type The root device type
|
|
69
68
|
# used by the AMI. The AMI can use an Amazon EBS or instance
|
|
70
69
|
# store root device. Valid values:
|
|
71
|
-
#
|
|
72
|
-
#
|
|
70
|
+
#
|
|
71
|
+
# * `:ebs`
|
|
72
|
+
# * `:instance_store`
|
|
73
73
|
#
|
|
74
74
|
# @attr_reader [String] root_device_name The name of the root
|
|
75
75
|
# device.
|
|
@@ -90,23 +90,25 @@ module AWS
|
|
|
90
90
|
# @attr_reader [String] ip_address The IP address of the
|
|
91
91
|
# instance.
|
|
92
92
|
#
|
|
93
|
-
# @attr_reader [Symbol] status The instance status.
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
#
|
|
99
|
-
#
|
|
93
|
+
# @attr_reader [Symbol] status The instance status.
|
|
94
|
+
# Valid values are:
|
|
95
|
+
#
|
|
96
|
+
# * `:pending`
|
|
97
|
+
# * `:running`
|
|
98
|
+
# * `:shutting_down`
|
|
99
|
+
# * `:terminated`
|
|
100
|
+
# * `:stopping`
|
|
101
|
+
# * `:stopped`
|
|
100
102
|
#
|
|
101
103
|
# @attr_reader [Integer] status_code The numeric instance status code.
|
|
102
104
|
#
|
|
103
|
-
# @attr_reader [Symbol] architecture The architecture of the
|
|
104
|
-
# image.
|
|
105
|
+
# @attr_reader [Symbol] architecture The architecture of the image.
|
|
105
106
|
#
|
|
106
107
|
# @attr_reader [Symbol] virtualization_type The instance's
|
|
107
108
|
# virtualization type. Valid values:
|
|
108
|
-
#
|
|
109
|
-
#
|
|
109
|
+
#
|
|
110
|
+
# * `:paravirtual`
|
|
111
|
+
# * `:hvm`
|
|
110
112
|
#
|
|
111
113
|
# @attr_reader [String] reservation_id The ID of the reservation
|
|
112
114
|
# in which this instance was launched.
|
|
@@ -120,9 +122,10 @@ module AWS
|
|
|
120
122
|
#
|
|
121
123
|
# @attr_reader [Symbol] monitoring The status of CloudWatch
|
|
122
124
|
# monitoring for the instance. Valid values:
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
#
|
|
125
|
+
#
|
|
126
|
+
# * `:enabled`
|
|
127
|
+
# * `:disabled`
|
|
128
|
+
# * `:pending`
|
|
126
129
|
#
|
|
127
130
|
# @attr_reader [String] state_transition_reason A string
|
|
128
131
|
# describing the reason for the last state transition.
|
|
@@ -135,8 +138,9 @@ module AWS
|
|
|
135
138
|
#
|
|
136
139
|
# @attr_reader [Symbol] hypervisor The instance's hypervisor
|
|
137
140
|
# type. Valid values:
|
|
138
|
-
#
|
|
139
|
-
#
|
|
141
|
+
#
|
|
142
|
+
# * `:ovm`
|
|
143
|
+
# * `:xen`
|
|
140
144
|
#
|
|
141
145
|
# @attr_reader [String] client_token Idempotency token you
|
|
142
146
|
# provided when you launched the instance.
|
|
@@ -458,22 +462,22 @@ module AWS
|
|
|
458
462
|
|
|
459
463
|
# Returns a list of block device mappings.
|
|
460
464
|
#
|
|
461
|
-
#
|
|
462
|
-
#
|
|
463
|
-
#
|
|
464
|
-
#
|
|
465
|
-
#
|
|
466
|
-
#
|
|
467
|
-
#
|
|
468
|
-
#
|
|
469
|
-
#
|
|
470
|
-
#
|
|
465
|
+
# instance.block_devices
|
|
466
|
+
# #=>
|
|
467
|
+
# [
|
|
468
|
+
# {
|
|
469
|
+
# :device_name => "/dev/sda2",
|
|
470
|
+
# :ebs => {
|
|
471
|
+
# :volume_id => "vol-123",
|
|
472
|
+
# :status => "attaching",
|
|
473
|
+
# :attach_time => time,
|
|
474
|
+
# :delete_on_termination => true
|
|
475
|
+
# }
|
|
476
|
+
# }, {
|
|
477
|
+
# :device_name => "/dev/sdb",
|
|
478
|
+
# :virtual_name => "ephemeral0",
|
|
471
479
|
# }
|
|
472
|
-
#
|
|
473
|
-
# :device_name => "/dev/sdb",
|
|
474
|
-
# :virtual_name => "ephemeral0",
|
|
475
|
-
# }
|
|
476
|
-
# ]
|
|
480
|
+
# ]
|
|
477
481
|
#
|
|
478
482
|
# @return [Array<Hash>] Returns a list of block device mappings. This
|
|
479
483
|
# list may contain ephemeral volumes.
|
|
@@ -502,7 +506,7 @@ module AWS
|
|
|
502
506
|
state ? enable_monitoring : disable_monitoring
|
|
503
507
|
end
|
|
504
508
|
|
|
505
|
-
# @return [Booelan] Returns
|
|
509
|
+
# @return [Booelan] Returns `true` if CloudWatch monitoring is
|
|
506
510
|
# enabled for this instance.
|
|
507
511
|
def monitoring_enabled?
|
|
508
512
|
monitoring == :enabled
|
|
@@ -550,17 +554,15 @@ module AWS
|
|
|
550
554
|
# parenthesis (()), commas (,), slashes (/), dashes (-), or
|
|
551
555
|
# underscores(_)
|
|
552
556
|
#
|
|
553
|
-
# @param [Hash] options Additional options for creating the
|
|
554
|
-
# image.
|
|
557
|
+
# @param [Hash] options Additional options for creating the image.
|
|
555
558
|
#
|
|
556
|
-
# @option options [String] :description A description of the
|
|
557
|
-
# new image.
|
|
559
|
+
# @option options [String] :description A description of the new image.
|
|
558
560
|
#
|
|
559
561
|
# @option options [Boolean] :no_reboot By default this
|
|
560
|
-
# option is set to
|
|
562
|
+
# option is set to `false`, which means Amazon EC2
|
|
561
563
|
# attempts to cleanly shut down the instance before image
|
|
562
564
|
# creation and reboots the instance afterwards. When the
|
|
563
|
-
# option is set to
|
|
565
|
+
# option is set to `true`, Amazon EC2 does not shut down
|
|
564
566
|
# the instance before creating the image. When this option
|
|
565
567
|
# is used, file system integrity on the created image cannot
|
|
566
568
|
# be guaranteed.
|
|
@@ -685,28 +687,28 @@ module AWS
|
|
|
685
687
|
# virtualization environment and then writes the image to a
|
|
686
688
|
# S3 bucket.
|
|
687
689
|
#
|
|
688
|
-
#
|
|
690
|
+
# ## Granting EC2 write access to your bucket
|
|
689
691
|
#
|
|
690
692
|
# Before you can export an image to an S3 bucket, you must modify
|
|
691
693
|
# the bucket ACL. You only need to do this once per bucket.
|
|
692
694
|
#
|
|
693
|
-
#
|
|
694
|
-
#
|
|
695
|
-
#
|
|
696
|
-
#
|
|
695
|
+
# s3.buckets['bucket-name'].acl.change do |acl|
|
|
696
|
+
# acl.grant(:read_acp).to(:amazon_customer_email => 'vm-import-export@amazon.com')
|
|
697
|
+
# acl.grant(:write).to(:amazon_customer_email => 'vm-import-export@amazon.com')
|
|
698
|
+
# end
|
|
697
699
|
#
|
|
698
|
-
#
|
|
700
|
+
# ## Performing the export
|
|
699
701
|
#
|
|
700
702
|
# Simply call #export_to_s3 on your instance. Only instances
|
|
701
703
|
# derived from your own ImportInstance tasks may be exported.
|
|
702
704
|
#
|
|
703
|
-
#
|
|
705
|
+
# task = ec2.instances['i-12345678'].export_to_s3('bucket-name')
|
|
704
706
|
#
|
|
705
|
-
#
|
|
707
|
+
# ## Downloading the results
|
|
706
708
|
#
|
|
707
709
|
# Given a completed export task you can download the final image:
|
|
708
710
|
#
|
|
709
|
-
#
|
|
711
|
+
# File.open('image.ova', 'w') {|f| f.write(task.s3_object.read) }
|
|
710
712
|
#
|
|
711
713
|
# @param [S3::Bucket,String] bucket The destination bucket. May
|
|
712
714
|
# be the name of the bucket (string) or a {S3::Bucket} object. The
|
|
@@ -720,13 +722,13 @@ module AWS
|
|
|
720
722
|
# and 'microsoft'.
|
|
721
723
|
#
|
|
722
724
|
# @option options [String] :disk_image_format The format for the exported
|
|
723
|
-
# image. Defaults to 'vmdk' if
|
|
725
|
+
# image. Defaults to 'vmdk' if `:target_environemnt` is 'vmware',
|
|
724
726
|
# otherwise, 'vhd'.
|
|
725
727
|
#
|
|
726
728
|
# @option options [String] :container_format The container format used to
|
|
727
729
|
# combine disk images with metadata (such as OVF). If absent, only
|
|
728
730
|
# the disk image will be exported. Defaults to 'ova' if
|
|
729
|
-
#
|
|
731
|
+
# `:target_environment` is 'vmware', otherwise ommited.
|
|
730
732
|
#
|
|
731
733
|
# @option options [String] :description Description of the conversion
|
|
732
734
|
# task or the resource being exported.
|
|
@@ -734,7 +736,7 @@ module AWS
|
|
|
734
736
|
# @option options [String] :prefix (nil) The image is written to a
|
|
735
737
|
# single object in the bucket at the key:
|
|
736
738
|
#
|
|
737
|
-
#
|
|
739
|
+
# "#{prefix}#{export_task_id}.#{disk_image_format}"
|
|
738
740
|
#
|
|
739
741
|
# @return [ExportTask]
|
|
740
742
|
#
|
|
@@ -17,24 +17,23 @@ require 'uuidtools'
|
|
|
17
17
|
module AWS
|
|
18
18
|
class EC2
|
|
19
19
|
|
|
20
|
-
##
|
|
21
20
|
# Represents a collection of EC2 instances. Typically you
|
|
22
21
|
# should get an instance of this class by calling
|
|
23
22
|
# {EC2#instances}.
|
|
24
23
|
#
|
|
25
24
|
# To run an instance:
|
|
26
25
|
#
|
|
27
|
-
#
|
|
26
|
+
# ec2.instances.create(:image_id => "ami-1b814f72")
|
|
28
27
|
#
|
|
29
28
|
# To get an instance by ID:
|
|
30
29
|
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
30
|
+
# i = ec2.instances["i-12345678"]
|
|
31
|
+
# i.exists?
|
|
33
32
|
#
|
|
34
33
|
# To get a map of instance IDs to instance status:
|
|
35
34
|
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
35
|
+
# ec2.instances.inject({}) { |m, i| m[i.id] = i.status; m }
|
|
36
|
+
# # => { "i-12345678" => :running, "i-87654321" => :shutting_down }
|
|
38
37
|
#
|
|
39
38
|
class InstanceCollection < Collection
|
|
40
39
|
|
|
@@ -53,7 +52,7 @@ module AWS
|
|
|
53
52
|
# :image_id => "ami-8c1fece5",
|
|
54
53
|
# :count => 10)
|
|
55
54
|
#
|
|
56
|
-
#
|
|
55
|
+
# sleep 1 while instances.any? {|i| i.status == :pending }
|
|
57
56
|
#
|
|
58
57
|
# @example Specifying block device mappings
|
|
59
58
|
#
|
|
@@ -73,7 +72,7 @@ module AWS
|
|
|
73
72
|
# :image_id => "ami-8c1fece5",
|
|
74
73
|
# :subnet => "subnet-abc123ef")
|
|
75
74
|
#
|
|
76
|
-
# @param [Hash] options Options for new instance.
|
|
75
|
+
# @param [Hash] options Options for new instance. `:image_id` is
|
|
77
76
|
# the only required option.
|
|
78
77
|
#
|
|
79
78
|
# @option options [Integer] :count How many instances to request. By
|
|
@@ -87,34 +86,31 @@ module AWS
|
|
|
87
86
|
# ARN of an IAM instance profile. This provides credentials
|
|
88
87
|
# to the EC2 instance(s) via the instance metadata service.
|
|
89
88
|
#
|
|
90
|
-
# @option options [Hash] :block_device_mappings This must be a
|
|
91
|
-
# hash; the keys are device names to map, and the value for
|
|
92
|
-
# each entry determines how that device is mapped. Valid
|
|
93
|
-
# values include:
|
|
94
89
|
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
#
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
-
#
|
|
110
|
-
#
|
|
111
|
-
#
|
|
112
|
-
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
90
|
+
# @option options [Array<Hash>] :block_device_mappings Specifies how block
|
|
91
|
+
# devices are exposed to the instance. Each mapping is made up of a
|
|
92
|
+
# virtualName and a deviceName.
|
|
93
|
+
#
|
|
94
|
+
# * `:virtual_name` - (String) Specifies the virtual device name.
|
|
95
|
+
# * `:device_name` - (String) Specifies the device name (e.g.,
|
|
96
|
+
# /dev/sdh).
|
|
97
|
+
# * `:ebs` - (Hash) Specifies parameters used to automatically setup
|
|
98
|
+
# Amazon EBS volumes when the instance is launched.
|
|
99
|
+
# * `:snapshot_id` - (String) The ID of the snapshot from which the
|
|
100
|
+
# volume will be created.
|
|
101
|
+
# * `:volume_size` - (Integer) The size of the volume, in
|
|
102
|
+
# gigabytes.
|
|
103
|
+
# * `:delete_on_termination` - (Boolean) Specifies whether the
|
|
104
|
+
# Amazon EBS volume is deleted on instance termination.
|
|
105
|
+
# * `:volume_type` - (String) Valid values include:
|
|
106
|
+
# * `standard`
|
|
107
|
+
# * `io1`
|
|
108
|
+
# * `:iops` - (Integer)
|
|
109
|
+
# * `:no_device` - (String) Specifies the device name to suppress
|
|
110
|
+
# during instance launch.
|
|
115
111
|
#
|
|
116
112
|
# @option options [Boolean] :monitoring_enabled Setting this to
|
|
117
|
-
#
|
|
113
|
+
# `true` enables CloudWatch monitoring on the instances once they
|
|
118
114
|
# are started.
|
|
119
115
|
#
|
|
120
116
|
# @option options [String] :availability_zone Specifies the
|
|
@@ -133,12 +129,12 @@ module AWS
|
|
|
133
129
|
#
|
|
134
130
|
# @option options [Array] :security_groups Security groups are used
|
|
135
131
|
# to determine network access rules for the instances.
|
|
136
|
-
#
|
|
132
|
+
# `:security_groups` can be a single value or an array of values.
|
|
137
133
|
# Values should be group name strings or {SecurityGroup} objects.
|
|
138
134
|
#
|
|
139
135
|
# @option options [Array<String>] :security_group_ids Security groups
|
|
140
136
|
# are used to determine network access rules for the instances.
|
|
141
|
-
#
|
|
137
|
+
# `:security_group_ids` accepts a single ID or an array of security
|
|
142
138
|
# group IDs.
|
|
143
139
|
#
|
|
144
140
|
# @option options [String] :user_data Arbitrary user data. You
|
|
@@ -165,12 +161,12 @@ module AWS
|
|
|
165
161
|
# you later want to terminate the instance, you must first
|
|
166
162
|
# enable API termination. For example:
|
|
167
163
|
#
|
|
168
|
-
#
|
|
169
|
-
#
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
164
|
+
# i = ec2.instances.create(:image_id => "ami-8c1fece5",
|
|
165
|
+
# :disable_api_termination => true)
|
|
166
|
+
# i.api_termination_disabled? # => true
|
|
167
|
+
# i.terminate # raises an exception
|
|
168
|
+
# i.api_termination_disabled = false
|
|
169
|
+
# i.terminate # terminates the instance
|
|
174
170
|
#
|
|
175
171
|
# @option options [String] :instance_initiated_shutdown_behavior
|
|
176
172
|
# Determines whether the instance stops or terminates on
|
|
@@ -192,13 +188,13 @@ module AWS
|
|
|
192
188
|
# valid for instances launched outside a VPC (e.g. those
|
|
193
189
|
# launched without the :subnet option).
|
|
194
190
|
#
|
|
195
|
-
# @option options [Boolean] :ebs_optimized (false) EBS-Optimized instances
|
|
196
|
-
# enable Amazon EC2 instances to fully utilize the IOPS provisioned on
|
|
197
|
-
# an EBS volume. EBS-optimized instances deliver dedicated throughput
|
|
191
|
+
# @option options [Boolean] :ebs_optimized (false) EBS-Optimized instances
|
|
192
|
+
# enable Amazon EC2 instances to fully utilize the IOPS provisioned on
|
|
193
|
+
# an EBS volume. EBS-optimized instances deliver dedicated throughput
|
|
198
194
|
# between Amazon EC2 and Amazon EBS, with options between 500 Mbps and
|
|
199
|
-
# 1000 Mbps depending on the instance type used. When attached to
|
|
200
|
-
# EBS-Optimized instances, Provisioned IOPS volumes are designed
|
|
201
|
-
# to deliver within 10% of their provisioned performance 99.9% of the time.
|
|
195
|
+
# 1000 Mbps depending on the instance type used. When attached to
|
|
196
|
+
# EBS-Optimized instances, Provisioned IOPS volumes are designed
|
|
197
|
+
# to deliver within 10% of their provisioned performance 99.9% of the time.
|
|
202
198
|
# *NOTE:* EBS Optimized instances incur an additional service charge. This
|
|
203
199
|
# optional is only valid for certain instance types.
|
|
204
200
|
#
|
|
@@ -242,9 +238,10 @@ module AWS
|
|
|
242
238
|
options[:user_data] = Base64.encode64(options[:user_data]).strip if
|
|
243
239
|
options[:user_data]
|
|
244
240
|
|
|
245
|
-
options[:block_device_mappings]
|
|
246
|
-
|
|
247
|
-
|
|
241
|
+
if options[:block_device_mappings].is_a?(Hash)
|
|
242
|
+
options[:block_device_mappings] =
|
|
243
|
+
translate_block_device_mappings(options[:block_device_mappings])
|
|
244
|
+
end
|
|
248
245
|
|
|
249
246
|
options[:monitoring] = { :enabled => true } if
|
|
250
247
|
options[:monitoring_enabled]
|