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,78 @@
|
|
|
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 InternetGateway < Resource
|
|
17
|
+
|
|
18
|
+
# Represents the attachment between an internet gateway and a VPC.
|
|
19
|
+
#
|
|
20
|
+
# == Creating Attachments
|
|
21
|
+
#
|
|
22
|
+
# To create an attachment, just assign an internet gateway to a VPC
|
|
23
|
+
# or visa versa.
|
|
24
|
+
#
|
|
25
|
+
# # attaches a gateway to a vpc
|
|
26
|
+
# internet_gateway.vpc = vpc
|
|
27
|
+
#
|
|
28
|
+
# # this can also be done in reverse
|
|
29
|
+
# vpc.internet_gateway = internet_gateway
|
|
30
|
+
#
|
|
31
|
+
# == Enumerating Attachments
|
|
32
|
+
#
|
|
33
|
+
# You can enumerate the attachments for an {InternetGateway} like so:
|
|
34
|
+
#
|
|
35
|
+
# internet_gateway.attachments.each do |attachment|
|
|
36
|
+
# puts "#{attachment.internet_gateway.id} => #{attachment.vpc.id}"
|
|
37
|
+
# end
|
|
38
|
+
#
|
|
39
|
+
# == Deleting Attachments
|
|
40
|
+
#
|
|
41
|
+
# You can delete an attachment from the Attachment object:
|
|
42
|
+
#
|
|
43
|
+
# internet_gateway.attachments.each(&:delete)
|
|
44
|
+
#
|
|
45
|
+
# You can also delete an attachment by assigning a nil value:
|
|
46
|
+
#
|
|
47
|
+
# # removes the current attachment to the vpc is one exists
|
|
48
|
+
# internet_gateway.vpc = nil
|
|
49
|
+
#
|
|
50
|
+
class Attachment
|
|
51
|
+
|
|
52
|
+
# @private
|
|
53
|
+
def initialize internet_gateway, details
|
|
54
|
+
@internet_gateway = internet_gateway
|
|
55
|
+
@vpc = VPC.new(details.vpc_id, :config => internet_gateway.config)
|
|
56
|
+
@state = details.state.to_sym
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [InternetGateway]
|
|
60
|
+
attr_reader :internet_gateway
|
|
61
|
+
|
|
62
|
+
# @return [VPC]
|
|
63
|
+
attr_reader :vpc
|
|
64
|
+
|
|
65
|
+
# @return [Symbol]
|
|
66
|
+
attr_reader :state
|
|
67
|
+
|
|
68
|
+
# Deletes this attachment.
|
|
69
|
+
# @return (see InternetGateway#detach)
|
|
70
|
+
def delete
|
|
71
|
+
internet_gateway.detach(vpc)
|
|
72
|
+
end
|
|
73
|
+
alias_method :detach, :delete
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|
+
class InternetGatewayCollection < Collection
|
|
18
|
+
|
|
19
|
+
include TaggedCollection
|
|
20
|
+
include Core::Collection::Simple
|
|
21
|
+
|
|
22
|
+
# Creates a new Internet gateway in your AWS account. After creating
|
|
23
|
+
# the gateway you can attach it to a VPC.
|
|
24
|
+
#
|
|
25
|
+
# @return [InternetGateway]
|
|
26
|
+
#
|
|
27
|
+
def create
|
|
28
|
+
response = client.create_internet_gateway
|
|
29
|
+
self[response.internet_gateway.internet_gateway_id]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @param [String] internet_gateway_id
|
|
33
|
+
# @return [InternetGateway]
|
|
34
|
+
def [] internet_gateway_id
|
|
35
|
+
InternetGateway.new(internet_gateway_id, :config => config)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
protected
|
|
39
|
+
|
|
40
|
+
def _each_item options = {}, &block
|
|
41
|
+
response = filtered_request(:describe_internet_gateways, options, &block)
|
|
42
|
+
response.internet_gateway_set.each do |g|
|
|
43
|
+
|
|
44
|
+
gateway = InternetGateway.new_from(:describe_internet_gateways, g,
|
|
45
|
+
g.internet_gateway_id, :config => config)
|
|
46
|
+
|
|
47
|
+
yield(gateway)
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
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
|
+
|
|
17
|
+
# Represents an EC2 key pair.
|
|
18
|
+
# @attr_reader [String] fingerprint A SHA-1 digest of the DER encoded
|
|
19
|
+
# private key
|
|
20
|
+
class KeyPair < Resource
|
|
21
|
+
|
|
22
|
+
def initialize name, options = {}
|
|
23
|
+
@name = name.to_s
|
|
24
|
+
@private_key = options[:private_key]
|
|
25
|
+
super
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @return [String] The name of the key pair.
|
|
29
|
+
attr_reader :name
|
|
30
|
+
|
|
31
|
+
attribute :fingerprint, :from => :key_fingerprint, :static => true
|
|
32
|
+
|
|
33
|
+
populates_from(:create_key_pair, :import_key_pair) do |resp|
|
|
34
|
+
resp if resp.key_name == name
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
populates_from(:describe_key_pairs) do |resp|
|
|
38
|
+
resp.key_set.find{|k| k.key_name == name }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @return [Boolean] True if the key pair exists.
|
|
42
|
+
def exists?
|
|
43
|
+
resp = client.describe_key_pairs(:filters => [
|
|
44
|
+
{ :name => "key-name", :values => [name] }
|
|
45
|
+
])
|
|
46
|
+
!resp.key_set.empty?
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Returns the private key. Raises an exception if called
|
|
50
|
+
# against an existing key. You can only get the private key
|
|
51
|
+
# at the time of creation.
|
|
52
|
+
#
|
|
53
|
+
# @see KeyPairCollection#import
|
|
54
|
+
# @note Only call this method on newly created keys.
|
|
55
|
+
# @return [String] An unencrypted PEM encoded RSA private key.
|
|
56
|
+
def private_key
|
|
57
|
+
unless @private_key
|
|
58
|
+
raise 'you can only get the private key for just-created keypairs'
|
|
59
|
+
end
|
|
60
|
+
@private_key
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Deletes this key pair from EC2.
|
|
64
|
+
# @return [true]
|
|
65
|
+
def delete
|
|
66
|
+
client.delete_key_pair(:key_name => name)
|
|
67
|
+
true
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
protected
|
|
71
|
+
def response_id_method
|
|
72
|
+
:key_name
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
protected
|
|
76
|
+
def find_in_response(resp)
|
|
77
|
+
resp.key_index[name]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
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 'base64'
|
|
15
|
+
require 'digest/md5'
|
|
16
|
+
|
|
17
|
+
module AWS
|
|
18
|
+
class EC2
|
|
19
|
+
|
|
20
|
+
# Represents all key pairs in your account. You can use this collection
|
|
21
|
+
# to create, import and find key pairs.
|
|
22
|
+
class KeyPairCollection < Collection
|
|
23
|
+
|
|
24
|
+
# @param [String] key_name A name for the key pair.
|
|
25
|
+
# @return [KeyPair] Returns a new key pair.
|
|
26
|
+
def create key_name
|
|
27
|
+
create_or_import(:create_key_pair, :key_name => key_name)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Imports the public key from an RSA key pair that you created with
|
|
31
|
+
# a third-party tool. Compare this with {#create}, in which EC2
|
|
32
|
+
# creates the key pair and gives the keys to you (EC2 keeps a copy
|
|
33
|
+
# of the public key). With ImportKeyPair, you create the key pair
|
|
34
|
+
# and give EC2 just the public key. The private key is never
|
|
35
|
+
# transferred between you and EC2.
|
|
36
|
+
#
|
|
37
|
+
# === Supported formats:
|
|
38
|
+
#
|
|
39
|
+
# * OpenSSH public key format (e.g., the format in
|
|
40
|
+
# ~/.ssh/authorized_keys)
|
|
41
|
+
# * Base64 encoded DER format
|
|
42
|
+
# * SSH public key file format as specified in RFC4716
|
|
43
|
+
#
|
|
44
|
+
# DSA keys are *not* supported. Make sure your key generator is
|
|
45
|
+
# set up to create RSA keys. Supported lengths: 1024, 2048, and 4096.
|
|
46
|
+
#
|
|
47
|
+
# @param [String] key_name A name for this key pair.
|
|
48
|
+
# @param [String] public_key The RSA public key.
|
|
49
|
+
# @return [KeyPair] Returns a new key pair.
|
|
50
|
+
def import key_name, public_key
|
|
51
|
+
create_or_import(:import_key_pair,
|
|
52
|
+
:key_name => key_name,
|
|
53
|
+
:public_key_material => Base64.encode64(public_key.to_s))
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @return [KeyPair] key_name The name of the key pair.
|
|
57
|
+
def [] key_name
|
|
58
|
+
super
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Yields once for each key pair in your account.
|
|
62
|
+
# @return [nil]
|
|
63
|
+
def each &block
|
|
64
|
+
response = filtered_request(:describe_key_pairs)
|
|
65
|
+
response.key_set.each do |kp|
|
|
66
|
+
yield(KeyPair.new(kp.key_name,
|
|
67
|
+
:fingerprint => kp.key_fingerprint,
|
|
68
|
+
:config => config))
|
|
69
|
+
end
|
|
70
|
+
nil
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @private
|
|
74
|
+
protected
|
|
75
|
+
def member_class
|
|
76
|
+
KeyPair
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# @private
|
|
80
|
+
private
|
|
81
|
+
def create_or_import client_method, options
|
|
82
|
+
|
|
83
|
+
# stringify option values
|
|
84
|
+
options = options.inject({}) {|h,v| h[v.first] = v.last.to_s; h }
|
|
85
|
+
response = client.send(client_method, options)
|
|
86
|
+
|
|
87
|
+
options = {}
|
|
88
|
+
options[:fingerprint] = response.data[:key_fingerprint]
|
|
89
|
+
if response[:key_material]
|
|
90
|
+
options[:private_key] = response.data[:key_material]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
KeyPair.new(response.key_name, options.merge(:config => config))
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,256 @@
|
|
|
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_acl/entry'
|
|
15
|
+
require 'aws/ec2/network_acl/association'
|
|
16
|
+
|
|
17
|
+
module AWS
|
|
18
|
+
class EC2
|
|
19
|
+
|
|
20
|
+
# Represents a network ACL in EC2.
|
|
21
|
+
#
|
|
22
|
+
# @attr_reader [String] vpc_id
|
|
23
|
+
#
|
|
24
|
+
# @attr_reader [Boolean] default Returns true if this is the default
|
|
25
|
+
# network ACL.
|
|
26
|
+
#
|
|
27
|
+
class NetworkACL < Resource
|
|
28
|
+
|
|
29
|
+
include TaggedItem
|
|
30
|
+
|
|
31
|
+
def initialize network_acl_id, options = {}
|
|
32
|
+
@network_acl_id = network_acl_id
|
|
33
|
+
super
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @return [String]
|
|
37
|
+
attr_reader :network_acl_id
|
|
38
|
+
|
|
39
|
+
alias_method :id, :network_acl_id
|
|
40
|
+
|
|
41
|
+
attribute :vpc_id, :static => true
|
|
42
|
+
|
|
43
|
+
attribute :default, :static => true
|
|
44
|
+
|
|
45
|
+
alias_method :default?, :default
|
|
46
|
+
|
|
47
|
+
attribute :entry_set
|
|
48
|
+
|
|
49
|
+
protected :entry_set
|
|
50
|
+
|
|
51
|
+
attribute :association_set
|
|
52
|
+
|
|
53
|
+
protected :association_set
|
|
54
|
+
|
|
55
|
+
populates_from(:create_network_acl) do |resp|
|
|
56
|
+
resp.network_acl if resp.network_acl.network_acl_id == network_acl_id
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
populates_from(:describe_network_acls) do |resp|
|
|
60
|
+
resp.network_acl_set.find{|acl| acl.network_acl_id == network_acl_id }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @return [VPC] Returns the VPC this network ACL belongs to.
|
|
64
|
+
def vpc
|
|
65
|
+
VPC.new(vpc_id, :config => config)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @return [Array<Subnet>] Returns an array of subnets ({Subnet})
|
|
69
|
+
# that currently use this network ACL.
|
|
70
|
+
def subnets
|
|
71
|
+
associations.map(&:subnet)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @return [Array<NetworkACL::Association>] Returns an array of
|
|
75
|
+
# {NetworkACL::Association} objects (association to subnets).
|
|
76
|
+
def associations
|
|
77
|
+
association_set.map do |assoc|
|
|
78
|
+
|
|
79
|
+
subnet = Subnet.new(assoc.subnet_id,
|
|
80
|
+
:vpc_id => vpc_id,
|
|
81
|
+
:config => config)
|
|
82
|
+
|
|
83
|
+
Association.new(assoc.network_acl_association_id, self, subnet)
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# @return [Array<NetworkACL::Entry>] Returns an array of
|
|
89
|
+
# all entries for this network ACL.
|
|
90
|
+
def entries
|
|
91
|
+
entry_set.map do |entry_details|
|
|
92
|
+
Entry.new(self, entry_details)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Adds an entry to this network ACL.
|
|
97
|
+
#
|
|
98
|
+
# @param [Hash] options
|
|
99
|
+
#
|
|
100
|
+
# @option options [required,Integer] :rule_number Rule number to
|
|
101
|
+
# assign to the entry (e.g., 100). ACL entries are processed in
|
|
102
|
+
# ascending order by rule number.
|
|
103
|
+
#
|
|
104
|
+
# @option options [required,:allow,:deny] :action Whether to
|
|
105
|
+
# allow or deny traffic that matches the rule.
|
|
106
|
+
#
|
|
107
|
+
# @option options [required,Integer] :protocol IP protocol the rule
|
|
108
|
+
# applies to. You can use -1 to mean all protocols. You can see a
|
|
109
|
+
# list of # supported protocol numbers here:
|
|
110
|
+
# http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
|
|
111
|
+
#
|
|
112
|
+
# @option options [required,String] :cidr_block The CIDR range to
|
|
113
|
+
# allow or deny, in CIDR notation (e.g., 172.16.0.0/24).
|
|
114
|
+
#
|
|
115
|
+
# @option options [Boolean] :egress (false)
|
|
116
|
+
# Whether this rule applies to egress traffic from the subnet (true)
|
|
117
|
+
# or ingress traffic to the subnet (false).
|
|
118
|
+
#
|
|
119
|
+
# @option options [Range<Integer>] :port_range A numeric range
|
|
120
|
+
# of ports. Required if specifying TCP (6) or UDP (17) for the
|
|
121
|
+
# :protocol.
|
|
122
|
+
#
|
|
123
|
+
# @option options [Integer] :icmp_code For the ICMP protocol, the
|
|
124
|
+
# ICMP code. You can use -1 to specify all ICMP codes for the given
|
|
125
|
+
# ICMP type.
|
|
126
|
+
#
|
|
127
|
+
# @option options [Integer] :icmp_type For the ICMP protocol,
|
|
128
|
+
# the ICMP type. You can use -1 to specify all ICMP types.
|
|
129
|
+
#
|
|
130
|
+
# @return [nil]
|
|
131
|
+
#
|
|
132
|
+
def create_entry options = {}
|
|
133
|
+
client.create_network_acl_entry(entry_options(options))
|
|
134
|
+
nil
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# Replaces the network ACL entry with the given :rule_number.
|
|
138
|
+
#
|
|
139
|
+
# @param [Hash] options
|
|
140
|
+
#
|
|
141
|
+
# @option options [required,Integer] :rule_number Rule number to
|
|
142
|
+
# assign to the entry (e.g., 100). ACL entries are processed in
|
|
143
|
+
# ascending order by rule number.
|
|
144
|
+
#
|
|
145
|
+
# @option options [required,:allow,:deny] :action Whether to
|
|
146
|
+
# allow or deny traffic that matches the rule.
|
|
147
|
+
#
|
|
148
|
+
# @option options [required,Integer] :protocol IP protocol the rule
|
|
149
|
+
# applies to. You can use -1 to mean all protocols. You can see a
|
|
150
|
+
# list of # supported protocol numbers here:
|
|
151
|
+
# http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
|
|
152
|
+
#
|
|
153
|
+
# @option options [required,String] :cidr_block The CIDR range to
|
|
154
|
+
# allow or deny, in CIDR notation (e.g., 172.16.0.0/24).
|
|
155
|
+
#
|
|
156
|
+
# @option options [Boolean] :egress (false)
|
|
157
|
+
# Whether this rule applies to egress traffic from the subnet (true)
|
|
158
|
+
# or ingress traffic to the subnet (false).
|
|
159
|
+
#
|
|
160
|
+
# @option options [Range<Integer>] :port_range A numeric range
|
|
161
|
+
# of ports. Required if specifying TCP (6) or UDP (17) for the
|
|
162
|
+
# :protocol.
|
|
163
|
+
#
|
|
164
|
+
# @option options [Integer] :icmp_code For the ICMP protocol, the
|
|
165
|
+
# ICMP code. You can use -1 to specify all ICMP codes for the given
|
|
166
|
+
# ICMP type.
|
|
167
|
+
#
|
|
168
|
+
# @option options [Integer] :icmp_type For the ICMP protocol,
|
|
169
|
+
# the ICMP type. You can use -1 to specify all ICMP types.
|
|
170
|
+
#
|
|
171
|
+
# @return [nil]
|
|
172
|
+
#
|
|
173
|
+
def replace_entry options = {}
|
|
174
|
+
client.replace_network_acl_entry(entry_options(options))
|
|
175
|
+
nil
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# Deletes an entry from this network ACL. To delete an entry
|
|
179
|
+
# you need to know its rule number and if it is an egress or ingress
|
|
180
|
+
# rule.
|
|
181
|
+
#
|
|
182
|
+
# # delete ingress rule 10
|
|
183
|
+
# network_acl.delete_entry :egress, 10
|
|
184
|
+
#
|
|
185
|
+
# # delete egress rules 5
|
|
186
|
+
# network_acl.delete_entry :ingress, 5
|
|
187
|
+
#
|
|
188
|
+
# @param [:ingress,:egress] egress_or_ingress Specifies if you want to
|
|
189
|
+
# delete an ingress or an egress rule.
|
|
190
|
+
#
|
|
191
|
+
# @param [Integer] rule_number Which rule to delete.
|
|
192
|
+
#
|
|
193
|
+
# @return [nil]
|
|
194
|
+
#
|
|
195
|
+
def delete_entry egress_or_ingress, rule_number
|
|
196
|
+
|
|
197
|
+
unless [:ingress, :egress].include?(egress_or_ingress)
|
|
198
|
+
msg = "expected :ingress or :egress for egress_or_ingress param"
|
|
199
|
+
raise ArgumentError, msg
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
client_opts = {}
|
|
203
|
+
client_opts[:network_acl_id] = network_acl_id
|
|
204
|
+
client_opts[:egress] = egress_or_ingress == :egress
|
|
205
|
+
client_opts[:rule_number] = rule_number
|
|
206
|
+
|
|
207
|
+
client.delete_network_acl_entry(client_opts)
|
|
208
|
+
|
|
209
|
+
nil
|
|
210
|
+
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# Deletes the current network ACL. You can not delete the default
|
|
214
|
+
# network ACL.
|
|
215
|
+
# @return [nil]
|
|
216
|
+
def delete
|
|
217
|
+
client.delete_network_acl(:network_acl_id => network_acl_id)
|
|
218
|
+
nil
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
protected
|
|
222
|
+
|
|
223
|
+
def entry_options options
|
|
224
|
+
|
|
225
|
+
unless [true,false].include?(options[:egress])
|
|
226
|
+
msg = "expected :egress option to be set to true or false"
|
|
227
|
+
raise ArgumentError, msg
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
entry_opts = {}
|
|
231
|
+
entry_opts[:network_acl_id] = network_acl_id
|
|
232
|
+
entry_opts[:rule_number] = options[:rule_number]
|
|
233
|
+
entry_opts[:protocol] = options[:protocol].to_s.downcase
|
|
234
|
+
entry_opts[:rule_action] = options[:action].to_s
|
|
235
|
+
entry_opts[:egress] = options[:egress] if options.key?(:egress)
|
|
236
|
+
entry_opts[:cidr_block] = options[:cidr_block]
|
|
237
|
+
|
|
238
|
+
if options[:icmp_code] or options[:icmp_type]
|
|
239
|
+
entry_opts[:icmp_type_code] = {}
|
|
240
|
+
entry_opts[:icmp_type_code][:type] = options[:icmp_type]
|
|
241
|
+
entry_opts[:icmp_type_code][:code] = options[:icmp_code]
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
if options[:port_range]
|
|
245
|
+
entry_opts[:port_range] = {}
|
|
246
|
+
entry_opts[:port_range][:from] = options[:port_range].first
|
|
247
|
+
entry_opts[:port_range][:to] = options[:port_range].last
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
entry_opts
|
|
251
|
+
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|