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,100 @@
|
|
|
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
|
+
require 'aws/ec2/network_interface/attachment'
|
|
15
|
+
|
|
16
|
+
module AWS
|
|
17
|
+
class EC2
|
|
18
|
+
class NetworkInterface < Resource
|
|
19
|
+
class Attachment
|
|
20
|
+
|
|
21
|
+
def initialize network_interface, details
|
|
22
|
+
@network_interface = network_interface
|
|
23
|
+
@attachment_id = details[:attachment_id]
|
|
24
|
+
@instance = Instance.new(details[:instance_id],
|
|
25
|
+
:owner_id => details[:instance_owner_id],
|
|
26
|
+
:config => network_interface.config)
|
|
27
|
+
@instance_owner_id = details[:instance_owner_id]
|
|
28
|
+
@device_index = details[:device_index]
|
|
29
|
+
@status = details[:status].to_sym
|
|
30
|
+
@attach_time = details[:attach_time]
|
|
31
|
+
@delete_on_termination = details[:delete_on_termination]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @return [String] Returns the attachment id.
|
|
35
|
+
attr_reader :attachment_id
|
|
36
|
+
|
|
37
|
+
alias_method :id, :attachment_id
|
|
38
|
+
|
|
39
|
+
# @return [NetworkInterface] Returns the network interface this
|
|
40
|
+
# is an attachment for.
|
|
41
|
+
attr_reader :network_interface
|
|
42
|
+
|
|
43
|
+
# @return [Instance] Returns the instance the network interface
|
|
44
|
+
# is attached to.
|
|
45
|
+
attr_reader :instance
|
|
46
|
+
|
|
47
|
+
# @return [String] Returns the instance owner id.
|
|
48
|
+
attr_reader :instance_owner_id
|
|
49
|
+
|
|
50
|
+
# @return [Integer] The index of the device for the network
|
|
51
|
+
# interface attachment on the instance.
|
|
52
|
+
attr_reader :device_index
|
|
53
|
+
|
|
54
|
+
# @return [Symbol] Returns the attachment status.
|
|
55
|
+
attr_reader :status
|
|
56
|
+
|
|
57
|
+
# @return [Time]
|
|
58
|
+
attr_reader :attach_time
|
|
59
|
+
|
|
60
|
+
# @return [Boolean]
|
|
61
|
+
attr_reader :delete_on_termination
|
|
62
|
+
|
|
63
|
+
alias_method :delete_on_termination?, :delete_on_termination
|
|
64
|
+
|
|
65
|
+
# Allows you to toggle the delete on termination state.
|
|
66
|
+
#
|
|
67
|
+
# network_interface.attachment.delete_on_termination = false
|
|
68
|
+
#
|
|
69
|
+
# @param [Boolean] state
|
|
70
|
+
#
|
|
71
|
+
def delete_on_termination= state
|
|
72
|
+
opts = {}
|
|
73
|
+
opts[:network_interface_id] = network_interface.id
|
|
74
|
+
opts[:attachment] = {}
|
|
75
|
+
opts[:attachment][:attachment_id] = id
|
|
76
|
+
opts[:attachment][:delete_on_termination] = state
|
|
77
|
+
network_interface.client.modify_network_interface_attribute(opts)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Detaches the network interface from the instance.
|
|
81
|
+
#
|
|
82
|
+
# @param [Hash] options
|
|
83
|
+
#
|
|
84
|
+
# @option options [Boolean] :force (false) Set true to force
|
|
85
|
+
# a detachment.
|
|
86
|
+
#
|
|
87
|
+
# @return [nil]
|
|
88
|
+
#
|
|
89
|
+
def detach options = {}
|
|
90
|
+
client_opts = {}
|
|
91
|
+
client_opts[:attachment_id] = attachment_id
|
|
92
|
+
client_opts[:force] = options[:force] == true
|
|
93
|
+
network_interface.client.detach_network_interface(client_opts)
|
|
94
|
+
end
|
|
95
|
+
alias_method :delete, :detach
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
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
|
+
class NetworkInterfaceCollection < Collection
|
|
17
|
+
|
|
18
|
+
include TaggedCollection
|
|
19
|
+
include Core::Collection::Simple
|
|
20
|
+
|
|
21
|
+
# Creates a network interface.
|
|
22
|
+
#
|
|
23
|
+
# @param [Hash] options
|
|
24
|
+
#
|
|
25
|
+
# @option options [Subnet,String] :subnet The subnet or subnet id
|
|
26
|
+
# to associate with the network interface.
|
|
27
|
+
#
|
|
28
|
+
# @option options [String] :private_ip_address The private IP address
|
|
29
|
+
# of the network interface.
|
|
30
|
+
#
|
|
31
|
+
# @option options [String] :description The description of the
|
|
32
|
+
# network interface.
|
|
33
|
+
#
|
|
34
|
+
# @option options [Array<SecurityGroup>,Array<String>] :security_groups
|
|
35
|
+
# A list of security groups (or security group id strings) that
|
|
36
|
+
# should be used by this network interface.
|
|
37
|
+
#
|
|
38
|
+
# @return [NetworkInterface]
|
|
39
|
+
#
|
|
40
|
+
def create options = {}
|
|
41
|
+
|
|
42
|
+
client_opts = {}
|
|
43
|
+
|
|
44
|
+
client_opts[:subnet_id] = subnet_id_option(options)
|
|
45
|
+
|
|
46
|
+
client_opts[:private_ip_address] = options[:private_ip_address] if
|
|
47
|
+
options.key?(:private_ip_address)
|
|
48
|
+
|
|
49
|
+
client_opts[:description] = options[:description] if
|
|
50
|
+
options.key?(:description)
|
|
51
|
+
|
|
52
|
+
groups = groups_options(options)
|
|
53
|
+
client_opts[:groups] = groups if groups
|
|
54
|
+
|
|
55
|
+
resp = client.create_network_interface(client_opts)
|
|
56
|
+
|
|
57
|
+
NetworkInterface.new_from(:create_network_interface,
|
|
58
|
+
resp.network_interface,
|
|
59
|
+
resp.network_interface.network_interface_id,
|
|
60
|
+
:config => config)
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @param [String] network_interface_id
|
|
65
|
+
# @return [NetworkInterface]
|
|
66
|
+
def [] network_interface_id
|
|
67
|
+
NetworkInterface.new(network_interface_id, :config => config)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
protected
|
|
71
|
+
def groups_options options
|
|
72
|
+
|
|
73
|
+
# accept this option a variety of different ways
|
|
74
|
+
groups = options[:security_groups]
|
|
75
|
+
groups ||= options[:security_group_ids]
|
|
76
|
+
groups ||= options[:security_group]
|
|
77
|
+
groups ||= options[:security_group_id]
|
|
78
|
+
|
|
79
|
+
if groups
|
|
80
|
+
[groups].flatten.map{|sg| sg.is_a?(SecurityGroup) ? sg.id : sg }
|
|
81
|
+
else
|
|
82
|
+
nil
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
protected
|
|
88
|
+
def _each_item options = {}, &block
|
|
89
|
+
resp = filtered_request(:describe_network_interfaces, options, &block)
|
|
90
|
+
resp.network_interface_set.each do |n|
|
|
91
|
+
|
|
92
|
+
network_interface = NetworkInterface.new_from(
|
|
93
|
+
:describe_network_interfaces, n,
|
|
94
|
+
n.network_interface_id, :config => config)
|
|
95
|
+
|
|
96
|
+
yield(network_interface)
|
|
97
|
+
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
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 the collection of permissions for an EC2 resource.
|
|
18
|
+
# Each permission is a string containing the AWS account ID of a
|
|
19
|
+
# user who has permission to use the resource in question. The
|
|
20
|
+
# {Image} and {Snapshot} classes are currently the only ones
|
|
21
|
+
# that use this interface.
|
|
22
|
+
class PermissionCollection
|
|
23
|
+
|
|
24
|
+
include Core::Model
|
|
25
|
+
include Enumerable
|
|
26
|
+
|
|
27
|
+
# @private
|
|
28
|
+
def initialize(resource, opts = {})
|
|
29
|
+
@resource = resource
|
|
30
|
+
super(opts)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @yield [user_id] Each user ID that has explicit
|
|
34
|
+
# permissions to launch this AMI.
|
|
35
|
+
def each(&block)
|
|
36
|
+
resp = client.send(describe_call, describe_params)
|
|
37
|
+
resp.send(inflected_permissions_attribute).each do |permission|
|
|
38
|
+
if permission[:user_id]
|
|
39
|
+
user_id = permission[:user_id]
|
|
40
|
+
yield(user_id)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @return [Integer] The number of users that have explicit
|
|
46
|
+
# permissions to launch this AMI.
|
|
47
|
+
def size
|
|
48
|
+
inject(0) { |sum, i| sum + 1 }
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# @return [Boolean] True if the collection is empty.
|
|
52
|
+
def empty?
|
|
53
|
+
size == 0
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @return [Boolean] True if the resource is public.
|
|
57
|
+
def public?
|
|
58
|
+
resp = client.send(describe_call, describe_params)
|
|
59
|
+
resp.send(inflected_permissions_attribute).any? do |permission|
|
|
60
|
+
permission[:group] and permission[:group] == "all"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @return [Boolean] True if the resource is private (i.e. not
|
|
65
|
+
# public).
|
|
66
|
+
def private?
|
|
67
|
+
!public?
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Sets whether the resource is public or not. This has no
|
|
71
|
+
# effect on the explicit AWS account IDs that may already have
|
|
72
|
+
# permissions to use the resource.
|
|
73
|
+
#
|
|
74
|
+
# @param [Boolean] value If true, the resource is made public,
|
|
75
|
+
# otherwise the resource is made private.
|
|
76
|
+
# @return [nil]
|
|
77
|
+
def public= value
|
|
78
|
+
params = value ?
|
|
79
|
+
{ :add => [{ :group => "all" }] } :
|
|
80
|
+
{ :remove => [{ :group => "all" }] }
|
|
81
|
+
client.send(modify_call, modify_params(params))
|
|
82
|
+
nil
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Adds permissions for specific users to launch this AMI.
|
|
86
|
+
#
|
|
87
|
+
# @param [Array of Strings] users The AWS account IDs of the
|
|
88
|
+
# users that should be able to launch this AMI.
|
|
89
|
+
# @return [nil]
|
|
90
|
+
def add(*users)
|
|
91
|
+
modify(:add, *users)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Removes permissions for specific users to launch this AMI.
|
|
95
|
+
# @param [Array of Strings] users The AWS account IDs of the
|
|
96
|
+
# users that should no longer be able to launch this AMI.
|
|
97
|
+
# @return [nil]
|
|
98
|
+
def remove(*users)
|
|
99
|
+
modify(:remove, *users)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Resets the launch permissions to their default state.
|
|
103
|
+
# @return [nil]
|
|
104
|
+
def reset
|
|
105
|
+
client.send(reset_call, reset_params)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @private
|
|
109
|
+
private
|
|
110
|
+
def describe_call
|
|
111
|
+
"describe_#{resource_name}_attribute"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# @private
|
|
115
|
+
private
|
|
116
|
+
def modify_call
|
|
117
|
+
"modify_#{resource_name}_attribute"
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# @private
|
|
121
|
+
private
|
|
122
|
+
def reset_call
|
|
123
|
+
"reset_#{resource_name}_attribute"
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# @private
|
|
127
|
+
private
|
|
128
|
+
def describe_params
|
|
129
|
+
Hash[[["#{resource_name}_id".to_sym, @resource.send(:__resource_id__)],
|
|
130
|
+
[:attribute, permissions_attribute]]]
|
|
131
|
+
end
|
|
132
|
+
alias_method :reset_params, :describe_params
|
|
133
|
+
|
|
134
|
+
# @private
|
|
135
|
+
private
|
|
136
|
+
def inflected_permissions_attribute
|
|
137
|
+
Core::Inflection.ruby_name(permissions_attribute).to_sym
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# @private
|
|
141
|
+
private
|
|
142
|
+
def permissions_attribute
|
|
143
|
+
@resource.__permissions_attribute__
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# @private
|
|
147
|
+
private
|
|
148
|
+
def resource_name
|
|
149
|
+
@resource.send(:inflected_name)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @private
|
|
153
|
+
private
|
|
154
|
+
def modify(action, *users)
|
|
155
|
+
return if users.empty?
|
|
156
|
+
opts = modify_params(Hash[[[action,
|
|
157
|
+
users.map do |user_id|
|
|
158
|
+
{ :user_id => user_id }
|
|
159
|
+
end]]])
|
|
160
|
+
client.send(modify_call, opts)
|
|
161
|
+
nil
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# @private
|
|
165
|
+
private
|
|
166
|
+
def modify_params(modifications)
|
|
167
|
+
Hash[[["#{resource_name}_id".to_sym, @resource.send(:__resource_id__)],
|
|
168
|
+
[inflected_permissions_attribute, modifications]]]
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
end
|
|
174
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
|
|
17
|
+
# Represents an EC2 region. You can use this to find the
|
|
18
|
+
# endpoint for a given region:
|
|
19
|
+
#
|
|
20
|
+
# ec2.regions["us-west-1"].endpoint
|
|
21
|
+
#
|
|
22
|
+
# Region also responds to all of the methods of {EC2} except
|
|
23
|
+
# {EC2#regions}; for example, to list instance IDs by region,
|
|
24
|
+
# you can do:
|
|
25
|
+
#
|
|
26
|
+
# ec2.regions.inject({}) do |h,region|
|
|
27
|
+
# h[region.name] = region.instances.map(&:id)
|
|
28
|
+
# h
|
|
29
|
+
# end
|
|
30
|
+
#
|
|
31
|
+
# @attr_reader [String] endpoint The endpoint to use for this region
|
|
32
|
+
# (e.g. "ec2.eu-west-1.amazonaws.com").
|
|
33
|
+
#
|
|
34
|
+
class Region
|
|
35
|
+
|
|
36
|
+
def initialize name, options = {}
|
|
37
|
+
@name = name
|
|
38
|
+
@endpoint = options[:endpoint] || "ec2.#{name}.amazonaws.com"
|
|
39
|
+
@client = Client.new(options.merge(:endpoint => endpoint))
|
|
40
|
+
@config = @client.config
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @return [String] The name of the region (e.g. "us-east-1").
|
|
44
|
+
attr_reader :name
|
|
45
|
+
|
|
46
|
+
# @return [String]
|
|
47
|
+
attr_reader :endpoint
|
|
48
|
+
|
|
49
|
+
# @return [Client]
|
|
50
|
+
attr_reader :client
|
|
51
|
+
|
|
52
|
+
# @return [Core::Configuration]
|
|
53
|
+
attr_reader :config
|
|
54
|
+
|
|
55
|
+
# @return [Boolean] True if the region is available for this
|
|
56
|
+
# account.
|
|
57
|
+
def exists?
|
|
58
|
+
client.describe_regions(:region_names => [name])
|
|
59
|
+
true
|
|
60
|
+
rescue Errors::InvalidParameterValue
|
|
61
|
+
false
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @param [Region] other
|
|
65
|
+
# @return [Boolean]
|
|
66
|
+
def eql? other
|
|
67
|
+
other.is_a?(Region) and
|
|
68
|
+
other.name == name and
|
|
69
|
+
other.endpoint == endpoint
|
|
70
|
+
end
|
|
71
|
+
alias_method :==, :eql?
|
|
72
|
+
|
|
73
|
+
PROXIED_METHODS = [
|
|
74
|
+
:instances,
|
|
75
|
+
:security_groups,
|
|
76
|
+
:key_pairs,
|
|
77
|
+
:elastic_ips,
|
|
78
|
+
:tags,
|
|
79
|
+
:availability_zones,
|
|
80
|
+
:images,
|
|
81
|
+
:volumes,
|
|
82
|
+
:snapshots,
|
|
83
|
+
:reserved_instances,
|
|
84
|
+
:reserved_instances_offerings,
|
|
85
|
+
:vpcs,
|
|
86
|
+
:subnets,
|
|
87
|
+
:network_acls,
|
|
88
|
+
:route_tables,
|
|
89
|
+
:network_interfaces,
|
|
90
|
+
:internet_gateways,
|
|
91
|
+
:customer_gateways,
|
|
92
|
+
:vpn_gateways,
|
|
93
|
+
:dhcp_options,
|
|
94
|
+
:vpn_connections,
|
|
95
|
+
:export_tasks,
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
PROXIED_METHODS.each do |method|
|
|
99
|
+
define_method(method) do
|
|
100
|
+
EC2.new(:config => config).send(method)
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|