aws-sdk-euca 1.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardopts +5 -0
- data/LICENSE.txt +12 -0
- data/README.rdoc +189 -0
- data/ca-bundle.crt +3895 -0
- data/lib/aws-sdk-euca.rb +79 -0
- data/lib/aws-sdk.rb +79 -0
- data/lib/aws.rb +14 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +825 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +322 -0
- data/lib/aws/api_config/CloudFront-2012-05-05.yml +2102 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
- data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1160 -0
- data/lib/aws/api_config/EC2-2013-02-01.yml +4368 -0
- data/lib/aws/api_config/ELB-2012-06-01.yml +597 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +370 -0
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
- data/lib/aws/api_config/ElastiCache-2012-11-15.yml +979 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +618 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1222 -0
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +1463 -0
- data/lib/aws/api_config/RDS-2012-09-17.yml +1861 -0
- data/lib/aws/api_config/RDS-2013-02-12.yml +2377 -0
- data/lib/aws/api_config/Redshift-2012-12-01.yml +1149 -0
- data/lib/aws/api_config/Route53-2012-02-29.yml +380 -0
- data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +249 -0
- data/lib/aws/api_config/SQS-2012-11-05.yml +317 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +81 -0
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2358 -0
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
- data/lib/aws/auto_scaling.rb +164 -0
- data/lib/aws/auto_scaling/activity.rb +102 -0
- data/lib/aws/auto_scaling/activity_collection.rb +82 -0
- data/lib/aws/auto_scaling/client.rb +521 -0
- data/lib/aws/auto_scaling/config.rb +18 -0
- data/lib/aws/auto_scaling/errors.rb +22 -0
- data/lib/aws/auto_scaling/group.rb +420 -0
- data/lib/aws/auto_scaling/group_collection.rb +96 -0
- data/lib/aws/auto_scaling/group_options.rb +146 -0
- data/lib/aws/auto_scaling/instance.rb +192 -0
- data/lib/aws/auto_scaling/instance_collection.rb +63 -0
- data/lib/aws/auto_scaling/launch_configuration.rb +158 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +154 -0
- data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
- data/lib/aws/auto_scaling/request.rb +29 -0
- data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
- data/lib/aws/auto_scaling/scaling_policy_options.rb +64 -0
- data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
- data/lib/aws/auto_scaling/tag.rb +59 -0
- data/lib/aws/auto_scaling/tag_collection.rb +112 -0
- data/lib/aws/cloud_formation.rb +272 -0
- data/lib/aws/cloud_formation/client.rb +369 -0
- data/lib/aws/cloud_formation/config.rb +18 -0
- data/lib/aws/cloud_formation/errors.rb +22 -0
- data/lib/aws/cloud_formation/request.rb +29 -0
- data/lib/aws/cloud_formation/stack.rb +255 -0
- data/lib/aws/cloud_formation/stack_collection.rb +209 -0
- data/lib/aws/cloud_formation/stack_event.rb +75 -0
- data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
- data/lib/aws/cloud_formation/stack_options.rb +72 -0
- data/lib/aws/cloud_formation/stack_output.rb +53 -0
- data/lib/aws/cloud_formation/stack_resource.rb +117 -0
- data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
- data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
- data/lib/aws/cloud_front.rb +73 -0
- data/lib/aws/cloud_front/client.rb +1307 -0
- data/lib/aws/cloud_front/config.rb +18 -0
- data/lib/aws/cloud_front/errors.rb +22 -0
- data/lib/aws/cloud_front/request.rb +44 -0
- data/lib/aws/cloud_search.rb +74 -0
- data/lib/aws/cloud_search/client.rb +558 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_search/request.rb +23 -0
- data/lib/aws/cloud_watch.rb +119 -0
- data/lib/aws/cloud_watch/alarm.rb +272 -0
- data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
- data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
- data/lib/aws/cloud_watch/client.rb +247 -0
- data/lib/aws/cloud_watch/config.rb +18 -0
- data/lib/aws/cloud_watch/errors.rb +22 -0
- data/lib/aws/cloud_watch/metric.rb +135 -0
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
- data/lib/aws/cloud_watch/metric_collection.rb +131 -0
- data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
- data/lib/aws/cloud_watch/request.rb +23 -0
- data/lib/aws/core.rb +587 -0
- data/lib/aws/core/async_handle.rb +90 -0
- data/lib/aws/core/autoloader.rb +64 -0
- data/lib/aws/core/cacheable.rb +78 -0
- data/lib/aws/core/client.rb +691 -0
- data/lib/aws/core/collection.rb +267 -0
- data/lib/aws/core/collection/simple.rb +82 -0
- data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
- data/lib/aws/core/collection/with_next_token.rb +97 -0
- data/lib/aws/core/configuration.rb +546 -0
- data/lib/aws/core/credential_providers.rb +461 -0
- data/lib/aws/core/data.rb +247 -0
- data/lib/aws/core/http/curb_handler.rb +155 -0
- data/lib/aws/core/http/handler.rb +89 -0
- data/lib/aws/core/http/net_http_handler.rb +128 -0
- data/lib/aws/core/http/request.rb +263 -0
- data/lib/aws/core/http/response.rb +81 -0
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +56 -0
- data/lib/aws/core/json_client.rb +47 -0
- data/lib/aws/core/json_parser.rb +76 -0
- data/lib/aws/core/json_request_builder.rb +35 -0
- data/lib/aws/core/json_response_parser.rb +79 -0
- data/lib/aws/core/lazy_error_classes.rb +90 -0
- data/lib/aws/core/log_formatter.rb +462 -0
- data/lib/aws/core/managed_file.rb +32 -0
- data/lib/aws/core/meta_utils.rb +45 -0
- data/lib/aws/core/model.rb +57 -0
- data/lib/aws/core/naming.rb +30 -0
- data/lib/aws/core/option_grammar.rb +735 -0
- data/lib/aws/core/options/json_serializer.rb +82 -0
- data/lib/aws/core/options/validator.rb +155 -0
- data/lib/aws/core/options/xml_serializer.rb +118 -0
- data/lib/aws/core/page_result.rb +75 -0
- data/lib/aws/core/policy.rb +916 -0
- data/lib/aws/core/query_client.rb +41 -0
- data/lib/aws/core/query_error_parser.rb +24 -0
- data/lib/aws/core/query_request_builder.rb +47 -0
- data/lib/aws/core/query_response_parser.rb +35 -0
- data/lib/aws/core/resource.rb +413 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +208 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/rest_error_parser.rb +24 -0
- data/lib/aws/core/rest_json_client.rb +40 -0
- data/lib/aws/core/rest_request_builder.rb +146 -0
- data/lib/aws/core/rest_response_parser.rb +66 -0
- data/lib/aws/core/rest_xml_client.rb +47 -0
- data/lib/aws/core/service_interface.rb +61 -0
- data/lib/aws/core/signature/version_2.rb +56 -0
- data/lib/aws/core/signature/version_3.rb +77 -0
- data/lib/aws/core/signature/version_3_https.rb +54 -0
- data/lib/aws/core/signature/version_4.rb +135 -0
- data/lib/aws/core/signer.rb +46 -0
- data/lib/aws/core/uri_escape.rb +44 -0
- data/lib/aws/core/xml/frame.rb +244 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +307 -0
- data/lib/aws/core/xml/parser.rb +70 -0
- data/lib/aws/core/xml/root_frame.rb +65 -0
- data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
- data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
- data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/data_pipeline.rb +73 -0
- data/lib/aws/data_pipeline/client.rb +339 -0
- data/lib/aws/data_pipeline/config.rb +18 -0
- data/lib/aws/data_pipeline/errors.rb +20 -0
- data/lib/aws/data_pipeline/request.rb +26 -0
- data/lib/aws/dynamo_db.rb +206 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +461 -0
- data/lib/aws/dynamo_db/batch_get.rb +213 -0
- data/lib/aws/dynamo_db/batch_write.rb +252 -0
- data/lib/aws/dynamo_db/binary.rb +35 -0
- data/lib/aws/dynamo_db/client.rb +904 -0
- data/lib/aws/dynamo_db/config.rb +24 -0
- data/lib/aws/dynamo_db/errors.rb +20 -0
- data/lib/aws/dynamo_db/expectations.rb +40 -0
- data/lib/aws/dynamo_db/item.rb +133 -0
- data/lib/aws/dynamo_db/item_collection.rb +852 -0
- data/lib/aws/dynamo_db/item_data.rb +31 -0
- data/lib/aws/dynamo_db/keys.rb +41 -0
- data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
- data/lib/aws/dynamo_db/request.rb +26 -0
- data/lib/aws/dynamo_db/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +491 -0
- data/lib/aws/dynamo_db/table_collection.rb +165 -0
- data/lib/aws/dynamo_db/types.rb +111 -0
- data/lib/aws/ec2.rb +440 -0
- data/lib/aws/ec2/attachment.rb +140 -0
- data/lib/aws/ec2/attachment_collection.rb +54 -0
- data/lib/aws/ec2/availability_zone.rb +86 -0
- data/lib/aws/ec2/availability_zone_collection.rb +43 -0
- data/lib/aws/ec2/block_device_mappings.rb +53 -0
- data/lib/aws/ec2/client.rb +3621 -0
- data/lib/aws/ec2/collection.rb +36 -0
- data/lib/aws/ec2/config.rb +18 -0
- data/lib/aws/ec2/config_transform.rb +63 -0
- data/lib/aws/ec2/customer_gateway.rb +90 -0
- data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
- data/lib/aws/ec2/dhcp_options.rb +106 -0
- data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
- data/lib/aws/ec2/elastic_ip.rb +208 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
- data/lib/aws/ec2/errors.rb +32 -0
- data/lib/aws/ec2/export_task.rb +120 -0
- data/lib/aws/ec2/export_task_collection.rb +67 -0
- data/lib/aws/ec2/filtered_collection.rb +89 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +264 -0
- data/lib/aws/ec2/image_collection.rb +228 -0
- data/lib/aws/ec2/instance.rb +796 -0
- data/lib/aws/ec2/instance_collection.rb +372 -0
- data/lib/aws/ec2/internet_gateway.rb +122 -0
- data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
- data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
- data/lib/aws/ec2/key_pair.rb +82 -0
- data/lib/aws/ec2/key_pair_collection.rb +99 -0
- data/lib/aws/ec2/network_acl.rb +256 -0
- data/lib/aws/ec2/network_acl/association.rb +56 -0
- data/lib/aws/ec2/network_acl/entry.rb +147 -0
- data/lib/aws/ec2/network_acl_collection.rb +64 -0
- data/lib/aws/ec2/network_interface.rb +228 -0
- data/lib/aws/ec2/network_interface/attachment.rb +100 -0
- data/lib/aws/ec2/network_interface_collection.rb +103 -0
- data/lib/aws/ec2/permission_collection.rb +174 -0
- data/lib/aws/ec2/region.rb +106 -0
- data/lib/aws/ec2/region_collection.rb +51 -0
- data/lib/aws/ec2/request.rb +21 -0
- data/lib/aws/ec2/reserved_instances.rb +56 -0
- data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
- data/lib/aws/ec2/resource.rb +161 -0
- data/lib/aws/ec2/resource_tag_collection.rb +211 -0
- data/lib/aws/ec2/route_table.rb +205 -0
- data/lib/aws/ec2/route_table/association.rb +119 -0
- data/lib/aws/ec2/route_table/route.rb +119 -0
- data/lib/aws/ec2/route_table_collection.rb +72 -0
- data/lib/aws/ec2/security_group.rb +484 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
- data/lib/aws/ec2/security_group_collection.rb +135 -0
- data/lib/aws/ec2/snapshot.rb +143 -0
- data/lib/aws/ec2/snapshot_collection.rb +132 -0
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +115 -0
- data/lib/aws/ec2/tag.rb +81 -0
- data/lib/aws/ec2/tag_collection.rb +107 -0
- data/lib/aws/ec2/tagged_collection.rb +53 -0
- data/lib/aws/ec2/tagged_item.rb +85 -0
- data/lib/aws/ec2/volume.rb +174 -0
- data/lib/aws/ec2/volume_collection.rb +101 -0
- data/lib/aws/ec2/vpc.rb +166 -0
- data/lib/aws/ec2/vpc_collection.rb +70 -0
- data/lib/aws/ec2/vpn_connection.rb +99 -0
- data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
- data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
- data/lib/aws/ec2/vpn_gateway.rb +123 -0
- data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
- data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
- data/lib/aws/elastic_beanstalk.rb +50 -0
- data/lib/aws/elastic_beanstalk/client.rb +867 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_beanstalk/request.rb +29 -0
- data/lib/aws/elastic_transcoder.rb +30 -0
- data/lib/aws/elastic_transcoder/client.rb +672 -0
- data/lib/aws/elastic_transcoder/config.rb +18 -0
- data/lib/aws/elastic_transcoder/errors.rb +23 -0
- data/lib/aws/elastic_transcoder/request.rb +30 -0
- data/lib/aws/elasticache.rb +50 -0
- data/lib/aws/elasticache/client.rb +920 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elasticache/request.rb +23 -0
- data/lib/aws/elb.rb +67 -0
- data/lib/aws/elb/availability_zone_collection.rb +138 -0
- data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
- data/lib/aws/elb/client.rb +500 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +173 -0
- data/lib/aws/elb/listener.rb +190 -0
- data/lib/aws/elb/listener_collection.rb +113 -0
- data/lib/aws/elb/listener_opts.rb +45 -0
- data/lib/aws/elb/load_balancer.rb +281 -0
- data/lib/aws/elb/load_balancer_collection.rb +134 -0
- data/lib/aws/elb/load_balancer_policy.rb +93 -0
- data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
- data/lib/aws/elb/request.rb +29 -0
- data/lib/aws/emr.rb +86 -0
- data/lib/aws/emr/client.rb +330 -0
- data/lib/aws/emr/config.rb +18 -0
- data/lib/aws/emr/errors.rb +22 -0
- data/lib/aws/emr/instance_group.rb +138 -0
- data/lib/aws/emr/instance_group_collection.rb +82 -0
- data/lib/aws/emr/job_flow.rb +306 -0
- data/lib/aws/emr/job_flow_collection.rb +185 -0
- data/lib/aws/emr/request.rb +23 -0
- data/lib/aws/errors.rb +162 -0
- data/lib/aws/glacier.rb +80 -0
- data/lib/aws/glacier/archive.rb +56 -0
- data/lib/aws/glacier/archive_collection.rb +146 -0
- data/lib/aws/glacier/client.rb +286 -0
- data/lib/aws/glacier/config.rb +19 -0
- data/lib/aws/glacier/errors.rb +22 -0
- data/lib/aws/glacier/request.rb +34 -0
- data/lib/aws/glacier/resource.rb +30 -0
- data/lib/aws/glacier/vault.rb +145 -0
- data/lib/aws/glacier/vault_collection.rb +75 -0
- data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
- data/lib/aws/iam.rb +420 -0
- data/lib/aws/iam/access_key.rb +180 -0
- data/lib/aws/iam/access_key_collection.rb +128 -0
- data/lib/aws/iam/account_alias_collection.rb +79 -0
- data/lib/aws/iam/client.rb +1092 -0
- data/lib/aws/iam/collection.rb +83 -0
- data/lib/aws/iam/config.rb +18 -0
- data/lib/aws/iam/errors.rb +22 -0
- data/lib/aws/iam/group.rb +111 -0
- data/lib/aws/iam/group_collection.rb +132 -0
- data/lib/aws/iam/group_policy_collection.rb +47 -0
- data/lib/aws/iam/group_user_collection.rb +84 -0
- data/lib/aws/iam/login_profile.rb +99 -0
- data/lib/aws/iam/mfa_device.rb +52 -0
- data/lib/aws/iam/mfa_device_collection.rb +127 -0
- data/lib/aws/iam/policy.rb +46 -0
- data/lib/aws/iam/policy_collection.rb +188 -0
- data/lib/aws/iam/request.rb +29 -0
- data/lib/aws/iam/resource.rb +62 -0
- data/lib/aws/iam/server_certificate.rb +141 -0
- data/lib/aws/iam/server_certificate_collection.rb +138 -0
- data/lib/aws/iam/signing_certificate.rb +169 -0
- data/lib/aws/iam/signing_certificate_collection.rb +131 -0
- data/lib/aws/iam/user.rb +205 -0
- data/lib/aws/iam/user_collection.rb +133 -0
- data/lib/aws/iam/user_group_collection.rb +98 -0
- data/lib/aws/iam/user_policy.rb +90 -0
- data/lib/aws/iam/user_policy_collection.rb +45 -0
- data/lib/aws/iam/virtual_mfa_device.rb +139 -0
- data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
- data/lib/aws/import_export.rb +73 -0
- data/lib/aws/import_export/client.rb +109 -0
- data/lib/aws/import_export/config.rb +19 -0
- data/lib/aws/import_export/errors.rb +22 -0
- data/lib/aws/import_export/request.rb +23 -0
- data/lib/aws/ops_works.rb +30 -0
- data/lib/aws/ops_works/client.rb +713 -0
- data/lib/aws/ops_works/config.rb +18 -0
- data/lib/aws/ops_works/errors.rb +20 -0
- data/lib/aws/ops_works/request.rb +27 -0
- data/lib/aws/rails.rb +195 -0
- data/lib/aws/rds.rb +71 -0
- data/lib/aws/rds/client.rb +2228 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +205 -0
- data/lib/aws/rds/db_instance_collection.rb +75 -0
- data/lib/aws/rds/db_snapshot.rb +163 -0
- data/lib/aws/rds/db_snapshot_collection.rb +89 -0
- data/lib/aws/rds/errors.rb +22 -0
- data/lib/aws/rds/request.rb +23 -0
- data/lib/aws/record.rb +116 -0
- data/lib/aws/record/abstract_base.rb +701 -0
- data/lib/aws/record/attributes.rb +384 -0
- data/lib/aws/record/conversion.rb +38 -0
- data/lib/aws/record/dirty_tracking.rb +285 -0
- data/lib/aws/record/errors.rb +143 -0
- data/lib/aws/record/exceptions.rb +48 -0
- data/lib/aws/record/hash_model.rb +161 -0
- data/lib/aws/record/hash_model/attributes.rb +197 -0
- data/lib/aws/record/hash_model/finder_methods.rb +172 -0
- data/lib/aws/record/hash_model/scope.rb +108 -0
- data/lib/aws/record/model.rb +427 -0
- data/lib/aws/record/model/attributes.rb +379 -0
- data/lib/aws/record/model/finder_methods.rb +232 -0
- data/lib/aws/record/model/scope.rb +213 -0
- data/lib/aws/record/naming.rb +31 -0
- data/lib/aws/record/scope.rb +199 -0
- data/lib/aws/record/validations.rb +712 -0
- data/lib/aws/record/validator.rb +246 -0
- data/lib/aws/record/validators/acceptance.rb +51 -0
- data/lib/aws/record/validators/block.rb +38 -0
- data/lib/aws/record/validators/confirmation.rb +43 -0
- data/lib/aws/record/validators/count.rb +108 -0
- data/lib/aws/record/validators/exclusion.rb +43 -0
- data/lib/aws/record/validators/format.rb +57 -0
- data/lib/aws/record/validators/inclusion.rb +56 -0
- data/lib/aws/record/validators/length.rb +107 -0
- data/lib/aws/record/validators/method.rb +33 -0
- data/lib/aws/record/validators/numericality.rb +138 -0
- data/lib/aws/record/validators/presence.rb +45 -0
- data/lib/aws/redshift.rb +52 -0
- data/lib/aws/redshift/client.rb +1291 -0
- data/lib/aws/redshift/config.rb +18 -0
- data/lib/aws/redshift/errors.rb +22 -0
- data/lib/aws/redshift/request.rb +29 -0
- data/lib/aws/route_53.rb +87 -0
- data/lib/aws/route_53/change_batch.rb +159 -0
- data/lib/aws/route_53/change_info.rb +72 -0
- data/lib/aws/route_53/client.rb +387 -0
- data/lib/aws/route_53/config.rb +18 -0
- data/lib/aws/route_53/errors.rb +22 -0
- data/lib/aws/route_53/hosted_zone.rb +111 -0
- data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
- data/lib/aws/route_53/request.rb +23 -0
- data/lib/aws/route_53/resource_record_set.rb +237 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +155 -0
- data/lib/aws/s3/access_control_list.rb +257 -0
- data/lib/aws/s3/acl_object.rb +264 -0
- data/lib/aws/s3/acl_options.rb +204 -0
- data/lib/aws/s3/bucket.rb +742 -0
- data/lib/aws/s3/bucket_collection.rb +160 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +458 -0
- data/lib/aws/s3/bucket_tag_collection.rb +109 -0
- data/lib/aws/s3/bucket_version_collection.rb +77 -0
- data/lib/aws/s3/cipher_io.rb +119 -0
- data/lib/aws/s3/client.rb +1700 -0
- data/lib/aws/s3/client/xml.rb +231 -0
- data/lib/aws/s3/config.rb +36 -0
- data/lib/aws/s3/cors_rule.rb +106 -0
- data/lib/aws/s3/cors_rule_collection.rb +192 -0
- data/lib/aws/s3/data_options.rb +185 -0
- data/lib/aws/s3/encryption_utils.rb +139 -0
- data/lib/aws/s3/errors.rb +94 -0
- data/lib/aws/s3/multipart_upload.rb +320 -0
- data/lib/aws/s3/multipart_upload_collection.rb +68 -0
- data/lib/aws/s3/object_collection.rb +355 -0
- data/lib/aws/s3/object_metadata.rb +96 -0
- data/lib/aws/s3/object_upload_collection.rb +77 -0
- data/lib/aws/s3/object_version.rb +148 -0
- data/lib/aws/s3/object_version_collection.rb +89 -0
- data/lib/aws/s3/paginated_collection.rb +75 -0
- data/lib/aws/s3/policy.rb +74 -0
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
- data/lib/aws/s3/prefixed_collection.rb +81 -0
- data/lib/aws/s3/presigned_post.rb +555 -0
- data/lib/aws/s3/request.rb +201 -0
- data/lib/aws/s3/s3_object.rb +1690 -0
- data/lib/aws/s3/tree.rb +118 -0
- data/lib/aws/s3/tree/branch_node.rb +68 -0
- data/lib/aws/s3/tree/child_collection.rb +104 -0
- data/lib/aws/s3/tree/leaf_node.rb +94 -0
- data/lib/aws/s3/tree/node.rb +22 -0
- data/lib/aws/s3/tree/parent.rb +87 -0
- data/lib/aws/s3/uploaded_part.rb +80 -0
- data/lib/aws/s3/uploaded_part_collection.rb +84 -0
- data/lib/aws/s3/website_configuration.rb +102 -0
- data/lib/aws/simple_db.rb +219 -0
- data/lib/aws/simple_db/attribute.rb +154 -0
- data/lib/aws/simple_db/attribute_collection.rb +231 -0
- data/lib/aws/simple_db/client.rb +287 -0
- data/lib/aws/simple_db/config.rb +20 -0
- data/lib/aws/simple_db/consistent_read_option.rb +42 -0
- data/lib/aws/simple_db/delete_attributes.rb +62 -0
- data/lib/aws/simple_db/domain.rb +121 -0
- data/lib/aws/simple_db/domain_collection.rb +86 -0
- data/lib/aws/simple_db/domain_metadata.rb +110 -0
- data/lib/aws/simple_db/errors.rb +55 -0
- data/lib/aws/simple_db/expect_condition_option.rb +45 -0
- data/lib/aws/simple_db/item.rb +93 -0
- data/lib/aws/simple_db/item_collection.rb +649 -0
- data/lib/aws/simple_db/item_data.rb +73 -0
- data/lib/aws/simple_db/put_attributes.rb +60 -0
- data/lib/aws/simple_db/request.rb +23 -0
- data/lib/aws/simple_email_service.rb +428 -0
- data/lib/aws/simple_email_service/client.rb +276 -0
- data/lib/aws/simple_email_service/config.rb +19 -0
- data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
- data/lib/aws/simple_email_service/errors.rb +22 -0
- data/lib/aws/simple_email_service/identity.rb +209 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/simple_email_service/quotas.rb +64 -0
- data/lib/aws/simple_email_service/request.rb +27 -0
- data/lib/aws/simple_workflow.rb +228 -0
- data/lib/aws/simple_workflow/activity_task.rb +173 -0
- data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
- data/lib/aws/simple_workflow/activity_type.rb +131 -0
- data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
- data/lib/aws/simple_workflow/client.rb +1204 -0
- data/lib/aws/simple_workflow/config.rb +18 -0
- data/lib/aws/simple_workflow/count.rb +49 -0
- data/lib/aws/simple_workflow/decision_task.rb +603 -0
- data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
- data/lib/aws/simple_workflow/domain.rb +122 -0
- data/lib/aws/simple_workflow/domain_collection.rb +169 -0
- data/lib/aws/simple_workflow/errors.rb +20 -0
- data/lib/aws/simple_workflow/history_event.rb +276 -0
- data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
- data/lib/aws/simple_workflow/option_formatters.rb +82 -0
- data/lib/aws/simple_workflow/request.rb +33 -0
- data/lib/aws/simple_workflow/resource.rb +94 -0
- data/lib/aws/simple_workflow/type.rb +89 -0
- data/lib/aws/simple_workflow/type_collection.rb +140 -0
- data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
- data/lib/aws/simple_workflow/workflow_type.rb +177 -0
- data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
- data/lib/aws/sns.rb +76 -0
- data/lib/aws/sns/client.rb +266 -0
- data/lib/aws/sns/config.rb +18 -0
- data/lib/aws/sns/errors.rb +22 -0
- data/lib/aws/sns/has_delivery_policy.rb +68 -0
- data/lib/aws/sns/policy.rb +47 -0
- data/lib/aws/sns/request.rb +23 -0
- data/lib/aws/sns/subscription.rb +144 -0
- data/lib/aws/sns/subscription_collection.rb +78 -0
- data/lib/aws/sns/topic.rb +403 -0
- data/lib/aws/sns/topic_collection.rb +62 -0
- data/lib/aws/sns/topic_subscription_collection.rb +54 -0
- data/lib/aws/sqs.rb +81 -0
- data/lib/aws/sqs/client.rb +258 -0
- data/lib/aws/sqs/config.rb +18 -0
- data/lib/aws/sqs/errors.rb +101 -0
- data/lib/aws/sqs/policy.rb +48 -0
- data/lib/aws/sqs/queue.rb +764 -0
- data/lib/aws/sqs/queue_collection.rb +174 -0
- data/lib/aws/sqs/received_message.rb +181 -0
- data/lib/aws/sqs/received_sns_message.rb +116 -0
- data/lib/aws/sqs/request.rb +67 -0
- data/lib/aws/storage_gateway.rb +73 -0
- data/lib/aws/storage_gateway/client.rb +472 -0
- data/lib/aws/storage_gateway/config.rb +18 -0
- data/lib/aws/storage_gateway/errors.rb +22 -0
- data/lib/aws/storage_gateway/request.rb +28 -0
- data/lib/aws/sts.rb +163 -0
- data/lib/aws/sts/client.rb +157 -0
- data/lib/aws/sts/config.rb +18 -0
- data/lib/aws/sts/errors.rb +22 -0
- data/lib/aws/sts/federated_session.rb +56 -0
- data/lib/aws/sts/policy.rb +30 -0
- data/lib/aws/sts/request.rb +29 -0
- data/lib/aws/sts/session.rb +48 -0
- data/lib/aws/version.rb +18 -0
- data/lib/net/http/connection_pool.rb +226 -0
- data/lib/net/http/connection_pool/connection.rb +189 -0
- data/lib/net/http/connection_pool/session.rb +126 -0
- data/rails/init.rb +15 -0
- metadata +632 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
|
|
17
|
+
# Temporary class that will be removed once the rest of the taggable
|
|
18
|
+
# EC2 resources have been modeled.
|
|
19
|
+
class ResourceObject < Resource
|
|
20
|
+
|
|
21
|
+
def initialize id, options = {}
|
|
22
|
+
@id = id
|
|
23
|
+
@resource_type = options[:resource_type]
|
|
24
|
+
super
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
attr_reader :id
|
|
28
|
+
|
|
29
|
+
include TaggedItem
|
|
30
|
+
|
|
31
|
+
# @private
|
|
32
|
+
def tagging_resource_type
|
|
33
|
+
@resource_type
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @private
|
|
37
|
+
# We don't know how to make a describe call for this object yet
|
|
38
|
+
def cached_tags; nil; end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Represents all EC2 tags in an account.
|
|
43
|
+
class TagCollection < Collection
|
|
44
|
+
|
|
45
|
+
# Creates a new Tag and assigns it to an EC2 resource.
|
|
46
|
+
#
|
|
47
|
+
# @example tagging with names (keys) only
|
|
48
|
+
#
|
|
49
|
+
# ec2.tags.create(instance, 'webserver')
|
|
50
|
+
#
|
|
51
|
+
# @example tagging with names (keys) and values
|
|
52
|
+
#
|
|
53
|
+
# ec2.tags.create(instance, 'stage', 'production')
|
|
54
|
+
#
|
|
55
|
+
# @param [Object] resource The item to tag. This should be a taggable
|
|
56
|
+
# EC2 resource, like an instance, security group, etc.
|
|
57
|
+
# @param [String] key The tag key (or name).
|
|
58
|
+
# @param [Hash] options
|
|
59
|
+
# @option optins [String] :value ('') The optional tag value. When
|
|
60
|
+
# left blank its assigned the empty string.
|
|
61
|
+
# @return [Tag]
|
|
62
|
+
def create resource, key, options = {}
|
|
63
|
+
value = options[:value].to_s
|
|
64
|
+
client.create_tags(
|
|
65
|
+
:resources => [resource.id],
|
|
66
|
+
:tags => [{ :key => key, :value => value }])
|
|
67
|
+
Tag.new(resource, key, :value => value, :config => config)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# @return [Tag] Returns a reference to a tag with the given name.
|
|
71
|
+
def [] tag_name
|
|
72
|
+
super
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Yields once for each tag.
|
|
76
|
+
# @yield [tag]
|
|
77
|
+
# @yieldparam [Tag] tag
|
|
78
|
+
# @return [nil]
|
|
79
|
+
def each &block
|
|
80
|
+
response = filtered_request(:describe_tags)
|
|
81
|
+
response.tag_set.each do |tag|
|
|
82
|
+
|
|
83
|
+
resource_class_name = Core::Inflection.class_name(tag.resource_type)
|
|
84
|
+
if EC2.const_defined?(resource_class_name)
|
|
85
|
+
resource_class = EC2.const_get(resource_class_name)
|
|
86
|
+
resource = resource_class.new(tag.resource_id, :config => config)
|
|
87
|
+
else
|
|
88
|
+
resource = ResourceObject.new(tag.resource_id,
|
|
89
|
+
:resource_type => tag.resource_type,
|
|
90
|
+
:config => config)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
yield(Tag.new(resource, tag.key))
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
nil
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# @private
|
|
100
|
+
protected
|
|
101
|
+
def member_class
|
|
102
|
+
Tag
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
|
|
17
|
+
# Most of the AWS::EC2 collections include TaggedCollection. This
|
|
18
|
+
# module provides methods for filtering the collection with
|
|
19
|
+
# tags.
|
|
20
|
+
#
|
|
21
|
+
# collecion.tagged('prod').each do {|obj| ... }
|
|
22
|
+
#
|
|
23
|
+
module TaggedCollection
|
|
24
|
+
|
|
25
|
+
# Filter the collection by one or more tag keys. If you pass multiple
|
|
26
|
+
# tag keys they will be be treated as OR conditions. If you want to
|
|
27
|
+
# AND them together call tagged multiple times (chained).
|
|
28
|
+
#
|
|
29
|
+
# Filter the collection to items items tagged 'live' OR 'test'
|
|
30
|
+
#
|
|
31
|
+
# collection.tagged('live', 'test')
|
|
32
|
+
#
|
|
33
|
+
# Filter the collection to items tagged 'live' AND 'webserver'
|
|
34
|
+
#
|
|
35
|
+
# collection.tagged('live').tagged('webserver')
|
|
36
|
+
#
|
|
37
|
+
def tagged *keys
|
|
38
|
+
filter('tag-key', *keys)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Filter the collection by one or more tag values. If you pass multiple
|
|
42
|
+
# tag values they will be be treated as OR conditions. If you want to
|
|
43
|
+
# AND them together call tagged multiple times (chained).
|
|
44
|
+
#
|
|
45
|
+
# collection.tagged('stage').tagged_values('production')
|
|
46
|
+
#
|
|
47
|
+
def tagged_values *values
|
|
48
|
+
filter('tag-value', *values)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
module TaggedItem
|
|
17
|
+
|
|
18
|
+
# Adds a single tag with an optional tag value.
|
|
19
|
+
#
|
|
20
|
+
# # adds a tag with the key production
|
|
21
|
+
# resource.tag('production')
|
|
22
|
+
#
|
|
23
|
+
# # adds a tag with the optional value set to production
|
|
24
|
+
# resource.tag('role', :value => 'webserver')
|
|
25
|
+
#
|
|
26
|
+
# @param [String] key The name of the tag to add.
|
|
27
|
+
# @param [Hash] options
|
|
28
|
+
# @option options [String] :value An optional tag value.
|
|
29
|
+
# @return [Tag] The tag that was created.
|
|
30
|
+
def add_tag key, options = {}
|
|
31
|
+
client.create_tags({
|
|
32
|
+
:resources => [id],
|
|
33
|
+
:tags => [{ :key => key, :value => options[:value].to_s }],
|
|
34
|
+
})
|
|
35
|
+
Tag.new(self, key, options.merge(:config => config))
|
|
36
|
+
end
|
|
37
|
+
alias_method :tag, :add_tag
|
|
38
|
+
|
|
39
|
+
# Deletes all tags associated with this EC2 resource.
|
|
40
|
+
# @return [nil]
|
|
41
|
+
def clear_tags
|
|
42
|
+
client.delete_tags(:resources => [self.id])
|
|
43
|
+
nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Returns a collection that represents only tags belonging to
|
|
47
|
+
# this resource.
|
|
48
|
+
#
|
|
49
|
+
# @example Manipulating the tags of an EC2 instance
|
|
50
|
+
# i = ec2.instances["i-123"]
|
|
51
|
+
# i.tags.to_h # => { "foo" => "bar", ... }
|
|
52
|
+
# i.tags.clear
|
|
53
|
+
# i.tags.stage = "production"
|
|
54
|
+
# i.tags.stage # => "production"
|
|
55
|
+
#
|
|
56
|
+
# @return [ResourceTagCollection] A collection of tags that
|
|
57
|
+
# belong to this resource.
|
|
58
|
+
#
|
|
59
|
+
def tags
|
|
60
|
+
ResourceTagCollection.new(self, :config => config)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @private
|
|
64
|
+
def cached_tags
|
|
65
|
+
if cache = AWS.response_cache
|
|
66
|
+
cache.select(describe_call_name.to_sym).each do |resp|
|
|
67
|
+
if obj = find_in_response(resp)
|
|
68
|
+
return obj.tag_set.inject({}) do |hash, tag|
|
|
69
|
+
hash[tag.key] = tag.value
|
|
70
|
+
hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
nil
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @private
|
|
79
|
+
def tagging_resource_type
|
|
80
|
+
Core::Inflection.ruby_name(self.class.to_s).tr("_","-")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
|
|
17
|
+
# Represents an Amazon EBS volume.
|
|
18
|
+
#
|
|
19
|
+
# @example Create an empty 15GiB volume and attach it to an instance
|
|
20
|
+
# volume = ec2.volumes.create(:size => 15,
|
|
21
|
+
# :availability_zone => "us-east-1a")
|
|
22
|
+
# attachment = volume.attach_to(ec2.instances["i-123"], "/dev/sdf")
|
|
23
|
+
# sleep 1 until attachment.status != :attaching
|
|
24
|
+
#
|
|
25
|
+
# @example Remove all attachments from a volume and then delete it
|
|
26
|
+
# volume.attachments.each do |attachment|
|
|
27
|
+
# attachment.delete(:force => true)
|
|
28
|
+
# end
|
|
29
|
+
# sleep 1 until volume.status == :available
|
|
30
|
+
# volume.delete
|
|
31
|
+
#
|
|
32
|
+
# @attr_reader [Symbol] status The status of the volume.
|
|
33
|
+
# Possible values:
|
|
34
|
+
#
|
|
35
|
+
# * +:creating+
|
|
36
|
+
# * +:available+
|
|
37
|
+
# * +:in_use+
|
|
38
|
+
# * +:deleting+
|
|
39
|
+
# * +:deleted+
|
|
40
|
+
# * +:error+
|
|
41
|
+
#
|
|
42
|
+
# @attr_reader [Integer] size The size of the volume in
|
|
43
|
+
# gigabytes.
|
|
44
|
+
#
|
|
45
|
+
# @attr_reader [String] availability_zone_name Name of the
|
|
46
|
+
# Availability Zone in which the volume was created.
|
|
47
|
+
#
|
|
48
|
+
# @attr_reader [Time] create_time The time at which the volume
|
|
49
|
+
# was created.
|
|
50
|
+
#
|
|
51
|
+
# @attr_reader [String] iops
|
|
52
|
+
#
|
|
53
|
+
class Volume < Resource
|
|
54
|
+
|
|
55
|
+
include TaggedItem
|
|
56
|
+
|
|
57
|
+
# @private
|
|
58
|
+
def initialize(id, opts = {})
|
|
59
|
+
@id = id
|
|
60
|
+
super(opts)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @return [String] Returns the volume ID.
|
|
64
|
+
attr_reader :id
|
|
65
|
+
|
|
66
|
+
attribute :status, :to_sym => true
|
|
67
|
+
|
|
68
|
+
alias_method :state, :status
|
|
69
|
+
|
|
70
|
+
attribute :snapshot_id, :static => true
|
|
71
|
+
|
|
72
|
+
attribute :size, :static => true
|
|
73
|
+
|
|
74
|
+
attribute :availability_zone_name, :from => :availability_zone,
|
|
75
|
+
:static => true
|
|
76
|
+
|
|
77
|
+
attribute :create_time, :static => true
|
|
78
|
+
|
|
79
|
+
attribute :attachment_set
|
|
80
|
+
|
|
81
|
+
attribute :iops, :static => true
|
|
82
|
+
|
|
83
|
+
populates_from(:create_volume) do |resp|
|
|
84
|
+
resp if resp.volume_id == id
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
populates_from(:describe_volumes) do |resp|
|
|
88
|
+
resp.volume_index[id]
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Deletes the volume.
|
|
92
|
+
def delete
|
|
93
|
+
client.delete_volume(:volume_id => id)
|
|
94
|
+
nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @return [Snapshot] A new snapshot created from the volume.
|
|
98
|
+
#
|
|
99
|
+
# @param [String] description An optional description of the
|
|
100
|
+
# snapshot. May be up to 255 characters in length.
|
|
101
|
+
def create_snapshot description = nil
|
|
102
|
+
opts = { :volume => self }
|
|
103
|
+
opts[:description] = description if description
|
|
104
|
+
SnapshotCollection.new(:config => config).create(opts)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Attaches the volume to an instance.
|
|
108
|
+
#
|
|
109
|
+
# @param [Instance] instance The instance to which the volume
|
|
110
|
+
# attaches. The volume and instance must be within the same
|
|
111
|
+
# Availability Zone and the instance must be running.
|
|
112
|
+
#
|
|
113
|
+
# @param [String] device How the device is exposed to the
|
|
114
|
+
# instance (e.g., /dev/sdh, or xvdh).
|
|
115
|
+
#
|
|
116
|
+
# @return [Attachment] An object representing the attachment,
|
|
117
|
+
# which you can use to query the attachment status.
|
|
118
|
+
def attach_to(instance, device)
|
|
119
|
+
resp = client.attach_volume(
|
|
120
|
+
:volume_id => id,
|
|
121
|
+
:instance_id => instance.id,
|
|
122
|
+
:device => device
|
|
123
|
+
)
|
|
124
|
+
instance = Instance.new(resp.instance_id, :config => config)
|
|
125
|
+
Attachment.new(self, instance, resp.device, :config => config)
|
|
126
|
+
end
|
|
127
|
+
alias_method :attach, :attach_to
|
|
128
|
+
|
|
129
|
+
# Detaches the volume from an instance.
|
|
130
|
+
#
|
|
131
|
+
# @param [Instance] instance The instance to detach from.
|
|
132
|
+
# @param [String] device The device name.
|
|
133
|
+
# @param [Hash] options
|
|
134
|
+
# @option (see Attachment#delete)
|
|
135
|
+
# @return [Attachment] Returns the no-longer valid attachment.
|
|
136
|
+
def detach_from(instance, device, options = {})
|
|
137
|
+
instance = Instance.new(instance.id, :config => config),
|
|
138
|
+
a = Attachment.new(self, instance, device, :config => config)
|
|
139
|
+
a.delete(options)
|
|
140
|
+
a
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# @return [Boolean] True if the volume exists.
|
|
144
|
+
def exists?
|
|
145
|
+
resp = client.describe_volumes(:filters => [
|
|
146
|
+
{ :name => 'volume-id', :values => [id] }
|
|
147
|
+
])
|
|
148
|
+
resp.volume_index.key?(id)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# @return [Snapshot] Snapshot from which the volume was created
|
|
152
|
+
# (may be nil).
|
|
153
|
+
def snapshot
|
|
154
|
+
snapshot_id ? Snapshot.new(snapshot_id, :config => config) : nil
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# @return [AvailabilityZone] Returns the Availability
|
|
158
|
+
# Zone in which the volume was created.
|
|
159
|
+
def availability_zone
|
|
160
|
+
if name = availability_zone_name
|
|
161
|
+
AvailabilityZone.new(name, :config => config)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# @return [AttachmentCollection] The collection of attachments
|
|
166
|
+
# that involve this volume.
|
|
167
|
+
def attachments
|
|
168
|
+
AttachmentCollection.new(self, :config => config)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
end
|
|
174
|
+
end
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
|
|
17
|
+
# Represents a collection of Amazon EBS volumes. Typically you
|
|
18
|
+
# should get an instance of this class by calling {EC2#volumes}.
|
|
19
|
+
#
|
|
20
|
+
# @example Create an empty 15GiB volume
|
|
21
|
+
# ec2.volumes.create(:size => 15,
|
|
22
|
+
# :availability_zone => "us-east-1a")
|
|
23
|
+
#
|
|
24
|
+
# @example Get a volume by ID
|
|
25
|
+
# volume = ec2.volumes["vol-123"]
|
|
26
|
+
# volume.exists?
|
|
27
|
+
#
|
|
28
|
+
# @example Get a map of volume IDs to volume status
|
|
29
|
+
# ec2.volumes.inject({}) { |m, v| m[v.id] = v.status; m }
|
|
30
|
+
# # => { "vol-12345678" => :available, "vol-87654321" => :in_use }
|
|
31
|
+
class VolumeCollection < Collection
|
|
32
|
+
|
|
33
|
+
include TaggedCollection
|
|
34
|
+
|
|
35
|
+
# @yield [Instance] Yields each volume in the collection.
|
|
36
|
+
# @return [nil]
|
|
37
|
+
def each(&block)
|
|
38
|
+
resp = filtered_request(:describe_volumes)
|
|
39
|
+
resp.volume_set.each do |v|
|
|
40
|
+
|
|
41
|
+
volume = Volume.new_from(:describe_volumes, v,
|
|
42
|
+
v.volume_id, :config => config)
|
|
43
|
+
|
|
44
|
+
yield(volume)
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Creates a new Amazon EBS volume that any Amazon EC2 instance
|
|
51
|
+
# in the same Availability Zone can attach to. For more
|
|
52
|
+
# information about Amazon EBS, go to the {Amazon Elastic
|
|
53
|
+
# Compute Cloud User
|
|
54
|
+
# Guide}[http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using-ebs.html].
|
|
55
|
+
#
|
|
56
|
+
# @return [Volume] An object representing the new volume.
|
|
57
|
+
#
|
|
58
|
+
# @param [Hash] options Options for creating the volume.
|
|
59
|
+
# +:availability_zone+ and one of +:size+, +:snapshot+, or
|
|
60
|
+
# +:snapshot_id+ is required.
|
|
61
|
+
#
|
|
62
|
+
# @option options [Integer] :size The size of the volume, in
|
|
63
|
+
# GiBs. Valid values: 1 - 1024. If +:snapshot+ or
|
|
64
|
+
# +:snapshot_id+ is specified, this defaults to the size of
|
|
65
|
+
# the specified snapshot.
|
|
66
|
+
#
|
|
67
|
+
# @option options [Snapshot] :snapshot The snapshot from which to
|
|
68
|
+
# create the new volume.
|
|
69
|
+
#
|
|
70
|
+
# @option options [String] :snapshot_id The ID of the snapshot
|
|
71
|
+
# from which to create the new volume.
|
|
72
|
+
#
|
|
73
|
+
# @option options [String, AvailabilityZone] :availability_zone
|
|
74
|
+
# The Availability Zone in which to create the new volume.
|
|
75
|
+
# To get a list of the availability zones you can use, see
|
|
76
|
+
# {EC2#availability_zones}.
|
|
77
|
+
#
|
|
78
|
+
# @option options [String] :iops
|
|
79
|
+
#
|
|
80
|
+
# @option options [String] :volume_type
|
|
81
|
+
#
|
|
82
|
+
# @return [Volume]
|
|
83
|
+
#
|
|
84
|
+
def create options = {}
|
|
85
|
+
if snapshot = options.delete(:snapshot)
|
|
86
|
+
options[:snapshot_id] = snapshot.id
|
|
87
|
+
end
|
|
88
|
+
resp = client.create_volume(options)
|
|
89
|
+
Volume.new_from(:create_volume, resp, resp.volume_id, :config => config)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# @private
|
|
93
|
+
protected
|
|
94
|
+
def member_class
|
|
95
|
+
Volume
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
end
|