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,135 @@
|
|
|
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 SecurityGroup < Resource
|
|
17
|
+
class IpPermission
|
|
18
|
+
|
|
19
|
+
include Core::Model
|
|
20
|
+
|
|
21
|
+
# @param protocol [:tcp, :udp, :icmp]
|
|
22
|
+
#
|
|
23
|
+
# @param [Integer,Range<Integer>] ports A port or port range to allow.
|
|
24
|
+
#
|
|
25
|
+
# @param [Hash] options
|
|
26
|
+
#
|
|
27
|
+
# @option options [Array] :ip_ranges An array of CIDR ip address
|
|
28
|
+
# to grant permission to.
|
|
29
|
+
#
|
|
30
|
+
# @option options [Array] :groups An array of SecurityGroup objects to
|
|
31
|
+
# grant permission to.
|
|
32
|
+
#
|
|
33
|
+
# @option options [Boolean] :egress (false) When true this IpPermission
|
|
34
|
+
# is assumed to be an egress permission.
|
|
35
|
+
#
|
|
36
|
+
def initialize security_group, protocol, ports, options = {}
|
|
37
|
+
|
|
38
|
+
@security_group = security_group
|
|
39
|
+
|
|
40
|
+
@protocol = protocol == '-1' ? :any : protocol.to_s.downcase.to_sym
|
|
41
|
+
|
|
42
|
+
@ip_ranges = Array(options[:ip_ranges])
|
|
43
|
+
|
|
44
|
+
@groups = Array(options[:groups])
|
|
45
|
+
|
|
46
|
+
@egress = options[:egress] || false
|
|
47
|
+
|
|
48
|
+
# not all egress permissions require port ranges, depends on the
|
|
49
|
+
# protocol
|
|
50
|
+
if ports
|
|
51
|
+
if ports.is_a?(Range)
|
|
52
|
+
@port_range = ports
|
|
53
|
+
else
|
|
54
|
+
@port_range = Array(ports).first.to_i..Array(ports).last.to_i
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
super
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @return [SecurityGroup] The security group this permission is
|
|
63
|
+
# authorized for.
|
|
64
|
+
attr_reader :security_group
|
|
65
|
+
|
|
66
|
+
# @return [Symbol] The protocol (:tcp, :udp, :icmp)
|
|
67
|
+
attr_reader :protocol
|
|
68
|
+
|
|
69
|
+
# @return [Range] The port range (e.g. 80..80, 4000..4010, etc)
|
|
70
|
+
attr_reader :port_range
|
|
71
|
+
|
|
72
|
+
# @return [Array] An array of string CIDR ip addresses.
|
|
73
|
+
attr_reader :ip_ranges
|
|
74
|
+
|
|
75
|
+
# @return [Array] An array of security groups that have been
|
|
76
|
+
# granted access with this permission.
|
|
77
|
+
attr_reader :groups
|
|
78
|
+
|
|
79
|
+
# @return [Boolean] True if this is an egress permission
|
|
80
|
+
attr_reader :egress
|
|
81
|
+
|
|
82
|
+
# @return [Boolean] Returns true if this is an egress permission.
|
|
83
|
+
def egress?
|
|
84
|
+
@egress ? true : false
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Authorizes this permission from its security group.
|
|
88
|
+
# @return [IpPermission] Returns self
|
|
89
|
+
def authorize
|
|
90
|
+
update_sg(egress? ? :authorize_egress : :authorize_ingress)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Revokes this permission from its security group.
|
|
94
|
+
# @return [IpPermission] Returns self
|
|
95
|
+
def revoke
|
|
96
|
+
update_sg(egress? ? :revoke_egress : :revoke_ingress)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# @return [Boolean] Returns true if the other IpPermission matches
|
|
100
|
+
# this one.
|
|
101
|
+
def eql? other
|
|
102
|
+
other.is_a?(IpPermission) and
|
|
103
|
+
other.security_group == security_group and
|
|
104
|
+
other.protocol == protocol and
|
|
105
|
+
other.port_range == port_range and
|
|
106
|
+
other.ip_ranges.sort == ip_ranges.sort and
|
|
107
|
+
other.groups.sort == groups.sort and
|
|
108
|
+
other.egress? == egress?
|
|
109
|
+
end
|
|
110
|
+
alias_method :==, :eql?
|
|
111
|
+
|
|
112
|
+
protected
|
|
113
|
+
def update_sg method
|
|
114
|
+
|
|
115
|
+
sources = []
|
|
116
|
+
sources += ip_ranges
|
|
117
|
+
sources += groups
|
|
118
|
+
|
|
119
|
+
if egress?
|
|
120
|
+
opts = {}
|
|
121
|
+
opts[:protocol] = protocol
|
|
122
|
+
opts[:ports] = port_range if port_range
|
|
123
|
+
sources << opts
|
|
124
|
+
security_group.send(method, *sources)
|
|
125
|
+
else
|
|
126
|
+
security_group.send(method, protocol, port_range, *sources)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
self
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
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 SecurityGroup < Resource
|
|
17
|
+
|
|
18
|
+
class IpPermissionCollection
|
|
19
|
+
|
|
20
|
+
include Core::Collection::Simple
|
|
21
|
+
|
|
22
|
+
def initialize security_group, options = {}
|
|
23
|
+
@security_group = security_group
|
|
24
|
+
@egress = !!options[:egress]
|
|
25
|
+
super
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @return [SecurityGroup]
|
|
29
|
+
attr_reader :security_group
|
|
30
|
+
|
|
31
|
+
# @return [Boolean]
|
|
32
|
+
attr_reader :egress
|
|
33
|
+
|
|
34
|
+
alias_method :egress?, :egress
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
|
|
38
|
+
def _each_item options = {}
|
|
39
|
+
|
|
40
|
+
list_method = 'ip_permissions_list'
|
|
41
|
+
list_method += '_egress' if egress?
|
|
42
|
+
|
|
43
|
+
security_group.send(list_method).each do |p|
|
|
44
|
+
|
|
45
|
+
# egress permissions don't always have ports
|
|
46
|
+
ports = p[:from_port] ? [p[:from_port], p[:to_port]] : nil
|
|
47
|
+
|
|
48
|
+
ip_ranges = p[:ip_ranges].collect{|ip| ip[:cidr_ip] }
|
|
49
|
+
|
|
50
|
+
groups = p[:groups].collect do |group|
|
|
51
|
+
SecurityGroup.new(group[:group_id],
|
|
52
|
+
:owner_id => group[:user_id],
|
|
53
|
+
:vpc_id => security_group.vpc_id,
|
|
54
|
+
:config => config)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
permission = IpPermission.new(security_group, p[:ip_protocol], ports,
|
|
58
|
+
:ip_ranges => ip_ranges,
|
|
59
|
+
:groups => groups,
|
|
60
|
+
:egress => egress?,
|
|
61
|
+
:config => config)
|
|
62
|
+
|
|
63
|
+
yield(permission)
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class IngressIpPermissionCollection < IpPermissionCollection; end
|
|
71
|
+
|
|
72
|
+
class EgressIpPermissionCollection < IpPermissionCollection
|
|
73
|
+
|
|
74
|
+
def initialize security_group, options = {}
|
|
75
|
+
super(security_group, options.merge(:egress => true))
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,135 @@
|
|
|
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 all EC2 security groups in an AWS account.
|
|
18
|
+
class SecurityGroupCollection < Collection
|
|
19
|
+
|
|
20
|
+
include TaggedCollection
|
|
21
|
+
|
|
22
|
+
# Creates a new
|
|
23
|
+
# @param [String] name The name of the security group to create.
|
|
24
|
+
# @param [Hash] options
|
|
25
|
+
# @option options [String] :description An informal description
|
|
26
|
+
# of this security group. Accepts alphanumeric characters, spaces,
|
|
27
|
+
# dashes, and underscores. If left blank the description will be set
|
|
28
|
+
# to the name.
|
|
29
|
+
#
|
|
30
|
+
# @option options [VPC,String] :vpc (nil) A VPC or VPC id string to
|
|
31
|
+
# create the security group in. When specified a VPC security
|
|
32
|
+
# group is created.
|
|
33
|
+
#
|
|
34
|
+
# @return [SecurityGroup]
|
|
35
|
+
#
|
|
36
|
+
def create name, options = {}
|
|
37
|
+
|
|
38
|
+
description = options[:description] || name
|
|
39
|
+
|
|
40
|
+
create_opts = {}
|
|
41
|
+
create_opts[:group_name] = name
|
|
42
|
+
create_opts[:description] = description
|
|
43
|
+
|
|
44
|
+
vpc_id = options[:vpc]
|
|
45
|
+
vpc_id ||= options[:vpc_id] # for backwards compatability
|
|
46
|
+
vpc_id ||= filter_value_for('vpc-id')
|
|
47
|
+
vpc_id = vpc_id.id if vpc_id.is_a?(VPC)
|
|
48
|
+
|
|
49
|
+
create_opts[:vpc_id] = vpc_id if vpc_id
|
|
50
|
+
|
|
51
|
+
response = client.create_security_group(create_opts)
|
|
52
|
+
|
|
53
|
+
SecurityGroup.new(response.group_id, {
|
|
54
|
+
:name => name,
|
|
55
|
+
:description => description,
|
|
56
|
+
:vpc_id => create_opts[:vpc_id],
|
|
57
|
+
:config => config })
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @param [String] group_id The group id of a security group.
|
|
62
|
+
# @return [SecurityGroup] The group with the given id.
|
|
63
|
+
def [] group_id
|
|
64
|
+
SecurityGroup.new(group_id, :config => config)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Specify one or more criteria to filter security groups by.
|
|
68
|
+
# A subsequent call to #each will limit the security groups returned
|
|
69
|
+
# by the set of filters.
|
|
70
|
+
#
|
|
71
|
+
# If you supply multiple values to #filter then these values are
|
|
72
|
+
# treated as an OR condition. To return security groups named
|
|
73
|
+
# 'test' or 'fake':
|
|
74
|
+
#
|
|
75
|
+
# security_groups.filter('group-name', 'test', 'fake')
|
|
76
|
+
#
|
|
77
|
+
# If you want to and conditions together you need to chain calls to
|
|
78
|
+
# filter. To limit security groups to those with a name like
|
|
79
|
+
# 'test' and like 'ruby':
|
|
80
|
+
#
|
|
81
|
+
# security_groups.
|
|
82
|
+
# filter('group-name', '*test*').
|
|
83
|
+
# filter('group-name', '*ruby*').each do |group|
|
|
84
|
+
# #...
|
|
85
|
+
# end
|
|
86
|
+
#
|
|
87
|
+
# Note that * matches one or more characters and ? matches any one
|
|
88
|
+
# character.
|
|
89
|
+
#
|
|
90
|
+
# === Valid Filters
|
|
91
|
+
#
|
|
92
|
+
# * description - Description of the security group.
|
|
93
|
+
# * group-id - ID of the security group.
|
|
94
|
+
# * group-name - Name of the security group.
|
|
95
|
+
# * ip-permission.cidr - CIDR range that has been granted the
|
|
96
|
+
# permission.
|
|
97
|
+
# * ip-permission.from-port - Start of port range for the TCP and UDP
|
|
98
|
+
# protocols, or an ICMP type number.
|
|
99
|
+
# * ip-permission.group-name - Name of security group that has been
|
|
100
|
+
# granted the permission.
|
|
101
|
+
# * ip-permission.protocol - IP protocol for the permission. Valid
|
|
102
|
+
# values include 'tcp', 'udp', 'icmp' or a protocol number.
|
|
103
|
+
# * ip-permission.to-port - End of port range for the TCP and UDP
|
|
104
|
+
# protocols, or an ICMP code.
|
|
105
|
+
# * ip-permission.user-id - ID of AWS account that has been granted
|
|
106
|
+
# the permission.
|
|
107
|
+
# * owner-id - AWS account ID of the owner of the security group.
|
|
108
|
+
# * tag-key - Key of a tag assigned to the security group.
|
|
109
|
+
# * tag-value - Value of a tag assigned to the security group.
|
|
110
|
+
#
|
|
111
|
+
# @return [SecurityGroupCollection] A new collection that represents
|
|
112
|
+
# a subset of the security groups associated with this account.
|
|
113
|
+
|
|
114
|
+
# Yields once for each security group in this account.
|
|
115
|
+
#
|
|
116
|
+
# @yield [group]
|
|
117
|
+
# @yieldparam [SecurityGroup] group
|
|
118
|
+
# @return [nil]
|
|
119
|
+
def each &block
|
|
120
|
+
|
|
121
|
+
response = filtered_request(:describe_security_groups)
|
|
122
|
+
response.security_group_info.each do |info|
|
|
123
|
+
|
|
124
|
+
group = SecurityGroup.new_from(:describe_security_groups, info,
|
|
125
|
+
info.group_id, :config => config)
|
|
126
|
+
|
|
127
|
+
yield(group)
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
nil
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
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 snapshot.
|
|
18
|
+
#
|
|
19
|
+
# @example Taking a snapshot from a volume
|
|
20
|
+
# snapshot = volume.create_snapshot("Database Backup 12/21/2010")
|
|
21
|
+
# sleep 1 until [:completed, :error].include?(snapshot.status)
|
|
22
|
+
#
|
|
23
|
+
# @example Managing snapshot permissions
|
|
24
|
+
# unless snapshot.public?
|
|
25
|
+
# snapshot.permissions.add("12345678901")
|
|
26
|
+
# end
|
|
27
|
+
#
|
|
28
|
+
# @attr_reader [String] volume_id The ID of the volume this
|
|
29
|
+
# snapshot was created from.
|
|
30
|
+
#
|
|
31
|
+
# @attr_reader [Symbol] status The status of the snapshot.
|
|
32
|
+
# Possible values:
|
|
33
|
+
#
|
|
34
|
+
# * +:pending+
|
|
35
|
+
# * +:completed+
|
|
36
|
+
# * +:error+
|
|
37
|
+
#
|
|
38
|
+
# @attr_reader [Time] start_time The time at which the snapshot
|
|
39
|
+
# was initiated.
|
|
40
|
+
#
|
|
41
|
+
# @attr_reader [Integer] progress The progress of the snapshot
|
|
42
|
+
# as a percentage.
|
|
43
|
+
#
|
|
44
|
+
# @attr_reader [String] owner_id The AWS account ID of the
|
|
45
|
+
# snapshot owner.
|
|
46
|
+
#
|
|
47
|
+
# @attr_reader [Integer] volume_size The size of the volume from
|
|
48
|
+
# which the snapshot was created.
|
|
49
|
+
#
|
|
50
|
+
# @attr_reader [String] description The description of the
|
|
51
|
+
# snapshot provided at snapshot initiation.
|
|
52
|
+
class Snapshot < Resource
|
|
53
|
+
|
|
54
|
+
include TaggedItem
|
|
55
|
+
include HasPermissions
|
|
56
|
+
|
|
57
|
+
# @private
|
|
58
|
+
def initialize id, options = {}
|
|
59
|
+
@id = id
|
|
60
|
+
super(options)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @return [String] Returns the snapshot's ID.
|
|
64
|
+
attr_reader :id
|
|
65
|
+
|
|
66
|
+
attribute :status, :to_sym => true
|
|
67
|
+
|
|
68
|
+
attribute :start_time, :static => true
|
|
69
|
+
|
|
70
|
+
attribute :progress do
|
|
71
|
+
translates_output {|value| value.to_i if value }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
attribute :owner_id, :static => true
|
|
75
|
+
|
|
76
|
+
attribute :volume_size, :static => true
|
|
77
|
+
|
|
78
|
+
attribute :volume_id, :static => true
|
|
79
|
+
|
|
80
|
+
attribute :owner_alias, :static => true
|
|
81
|
+
|
|
82
|
+
attribute :description, :static => true
|
|
83
|
+
|
|
84
|
+
alias_method :create_volume_permissions, :permissions
|
|
85
|
+
|
|
86
|
+
populates_from(:create_snapshot) do |resp|
|
|
87
|
+
resp if resp.snapshot_id == id
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
populates_from(:describe_snapshots) do |resp|
|
|
91
|
+
resp.snapshot_index[id]
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Deletes the snapshot.
|
|
95
|
+
# @return [nil]
|
|
96
|
+
def delete
|
|
97
|
+
client.delete_snapshot(:snapshot_id => id)
|
|
98
|
+
nil
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Creates a volume from the snapshot.
|
|
102
|
+
#
|
|
103
|
+
# @param [AvailabilityZone or String] availability_zone The
|
|
104
|
+
# Availability Zone in which to create the new volume. See
|
|
105
|
+
# {EC2#availability_zones} for how to get a list of
|
|
106
|
+
# availability zones.
|
|
107
|
+
#
|
|
108
|
+
# @param [Hash] options Additional options for creating the volume
|
|
109
|
+
#
|
|
110
|
+
# @option options [Integer] size The desired size (in gigabytes)
|
|
111
|
+
# for the volume.
|
|
112
|
+
#
|
|
113
|
+
# @return [Volume] The newly created volume
|
|
114
|
+
def create_volume availability_zone, options = {}
|
|
115
|
+
volumes = VolumeCollection.new(:config => config)
|
|
116
|
+
volumes.create(options.merge(
|
|
117
|
+
:availability_zone => availability_zone,
|
|
118
|
+
:snapshot => self
|
|
119
|
+
))
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# @return [Boolean] True if the snapshot exists.
|
|
123
|
+
def exists?
|
|
124
|
+
resp =
|
|
125
|
+
client.describe_snapshots(:filters => [{ :name => 'snapshot-id',
|
|
126
|
+
:values => [id] }]) and
|
|
127
|
+
!resp.snapshot_set.empty?
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# @return [Volume] The volume this snapshot was created from.
|
|
131
|
+
def volume
|
|
132
|
+
Volume.new(volume_id, :config => config) if volume_id
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# @private
|
|
136
|
+
def __permissions_attribute__
|
|
137
|
+
"createVolumePermission"
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
end
|
|
143
|
+
end
|