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,45 @@
|
|
|
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 ELB
|
|
16
|
+
|
|
17
|
+
# @private
|
|
18
|
+
module ListenerOpts
|
|
19
|
+
|
|
20
|
+
# convert protocols from symbols to strings (e.g. :http to 'HTTP')
|
|
21
|
+
protected
|
|
22
|
+
def format_listener_opts options
|
|
23
|
+
|
|
24
|
+
# accept the :load_balancer_port option by :port
|
|
25
|
+
options[:load_balancer_port] = options.delete(:port) if
|
|
26
|
+
options[:port]
|
|
27
|
+
|
|
28
|
+
# convert symbolized protocol names into upper-cased strings
|
|
29
|
+
[:protocol, :instance_protocol].each do |opt|
|
|
30
|
+
options[opt] = options[opt].to_s.upcase if options[opt]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# convert iam server certificates into the ssl certificate id
|
|
34
|
+
if cert = options.delete(:server_certificate)
|
|
35
|
+
options[:ssl_certificate_id] = cert.is_a?(IAM::ServerCertificate) ?
|
|
36
|
+
cert.arn : cert
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
options
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,281 @@
|
|
|
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 ELB
|
|
16
|
+
|
|
17
|
+
# @attr_reader [String] name The name of the load balancer.
|
|
18
|
+
#
|
|
19
|
+
# @attr_reader [Array<String>] availability_zone_names Return the names of
|
|
20
|
+
# the availability zones this load balancer routes traffic to.
|
|
21
|
+
#
|
|
22
|
+
# @attr_reader [String] canonical_hosted_zone_name Provides the name of
|
|
23
|
+
# the Amazon Route 53 hosted zone that is associated with the load
|
|
24
|
+
# balancer. For more information: {http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/index.html?using-domain-names-with-elb.html}.
|
|
25
|
+
#
|
|
26
|
+
# @attr_reader [String] canonical_hosted_zone_name_id Provides the ID of
|
|
27
|
+
# the Amazon Route 53 hosted zone name that is associated with the
|
|
28
|
+
# load balancer. For more information: {http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/index.html?using-domain-names-with-elb.html}.
|
|
29
|
+
#
|
|
30
|
+
# @attr_reader [String] dns_name Specifies the external DNS name
|
|
31
|
+
# associated with this load balancer.
|
|
32
|
+
#
|
|
33
|
+
# @attr_reader [Hash] policy_descriptions Returns a hash of
|
|
34
|
+
# +:app_cookie_stickiness_policies+, +:lb_cookie_stickiness_policies+
|
|
35
|
+
# and +:other_policies+. See also {#policies}.
|
|
36
|
+
#
|
|
37
|
+
# @attr_reader [String,nil] scheme Specifies the type of LoadBalancer.
|
|
38
|
+
# This attribute it set only for LoadBalancers attached to an Amazon VPC.
|
|
39
|
+
# If the Scheme is 'internet-facing', the LoadBalancer has a publicly
|
|
40
|
+
# resolvable DNS name that resolves to public IP addresses.
|
|
41
|
+
# If the Scheme is 'internal', the LoadBalancer has a publicly
|
|
42
|
+
# resolvable DNS name that resolves to private IP addresses.
|
|
43
|
+
#
|
|
44
|
+
# @attr_reader [Array<String>] subnet_ids Provides a list of VPC subnet IDs
|
|
45
|
+
# for the LoadBalancer.
|
|
46
|
+
#
|
|
47
|
+
# @attr_reader [Hash] health_check
|
|
48
|
+
# Returns a hash of the various health probes conducted on the
|
|
49
|
+
# load balancer instances. The following entries are returned:
|
|
50
|
+
# * +:healthy_threshold+
|
|
51
|
+
# * +:unhealthy_threshold+
|
|
52
|
+
# * +:interval+
|
|
53
|
+
# * +:target+
|
|
54
|
+
# * +:timeout+
|
|
55
|
+
# See {#configure_health_check} for more details on what each of the
|
|
56
|
+
# configuration values mean.
|
|
57
|
+
#
|
|
58
|
+
# @return [Hash]
|
|
59
|
+
#
|
|
60
|
+
#
|
|
61
|
+
class LoadBalancer < Core::Resource
|
|
62
|
+
|
|
63
|
+
def initialize name, options = {}
|
|
64
|
+
super(options.merge(:name => name.to_s))
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
attribute :name, :from => :load_balancer_name, :static => true
|
|
68
|
+
|
|
69
|
+
# see #availability_zones
|
|
70
|
+
attribute :availability_zone_names, :from => :availability_zones
|
|
71
|
+
|
|
72
|
+
# see #backend_server_policies
|
|
73
|
+
attribute :backend_server_descriptions
|
|
74
|
+
|
|
75
|
+
attribute :canonical_hosted_zone_name, :static => true
|
|
76
|
+
|
|
77
|
+
attribute :canonical_hosted_zone_name_id, :static => true
|
|
78
|
+
|
|
79
|
+
attribute :created_time, :static => true
|
|
80
|
+
|
|
81
|
+
attribute :dns_name, :static => true
|
|
82
|
+
|
|
83
|
+
attribute :health_check, :alias => :health_check_configuration
|
|
84
|
+
|
|
85
|
+
# see #instances
|
|
86
|
+
attribute :instance_descriptions, :from => :instances
|
|
87
|
+
|
|
88
|
+
# see #listeners
|
|
89
|
+
attribute :listener_descriptions
|
|
90
|
+
|
|
91
|
+
attribute :policy_descriptions, :from => :policies
|
|
92
|
+
|
|
93
|
+
attribute :scheme, :static => true
|
|
94
|
+
|
|
95
|
+
attribute :subnet_ids, :from => :subnets, :static => true
|
|
96
|
+
|
|
97
|
+
attribute :security_group_ids, :from => :security_groups, :static => true
|
|
98
|
+
|
|
99
|
+
attribute :source_security_group_owner_alias,
|
|
100
|
+
:from => [:source_security_group, :owner_alias],
|
|
101
|
+
:static => true
|
|
102
|
+
|
|
103
|
+
attribute :source_security_group_name,
|
|
104
|
+
:from => [:source_security_group, :group_name],
|
|
105
|
+
:static => true
|
|
106
|
+
|
|
107
|
+
populates_from(:describe_load_balancers) do |resp|
|
|
108
|
+
resp.data[:load_balancer_descriptions].find do |lb|
|
|
109
|
+
lb[:load_balancer_name] == name
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# A collection that help maanage the availability zones for
|
|
114
|
+
# this load balancer.
|
|
115
|
+
#
|
|
116
|
+
# @example enable an availability zone
|
|
117
|
+
#
|
|
118
|
+
# load_balancer.availability_zones.enable('us-east-1b')
|
|
119
|
+
#
|
|
120
|
+
# @example disable an availability zone
|
|
121
|
+
#
|
|
122
|
+
# load_balancer.availability_zones.disable('us-east-1b')
|
|
123
|
+
#
|
|
124
|
+
# @example list enabled availability zoens
|
|
125
|
+
#
|
|
126
|
+
# load_balancer.availability_zones.each do |zone|
|
|
127
|
+
# puts zone.name
|
|
128
|
+
# end
|
|
129
|
+
#
|
|
130
|
+
# @return [AvailabilityZoneCollection] Returns a collection that
|
|
131
|
+
# represents this load balancer's availability zones. You can
|
|
132
|
+
# use this collection to enable and disable availability zones.
|
|
133
|
+
def availability_zones
|
|
134
|
+
AvailabilityZoneCollection.new(self)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# @return [ListenerCollection]
|
|
138
|
+
def listeners
|
|
139
|
+
ListenerCollection.new(self)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# @return [PolicyCollection]
|
|
143
|
+
def policies
|
|
144
|
+
LoadBalancerPolicyCollection.new(self)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# @return [InstanceCollection]
|
|
148
|
+
def instances
|
|
149
|
+
InstanceCollection.new(self)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @return [BackendServerPolicyCollection]
|
|
153
|
+
def backend_server_policies
|
|
154
|
+
BackendServerPolicyCollection.new(self)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Updates the configuration that drives the instance health checks.
|
|
158
|
+
#
|
|
159
|
+
# You only need to pass the options you want to change. You can
|
|
160
|
+
# call {#health_check} if you want to see what the
|
|
161
|
+
# current configuration values are.
|
|
162
|
+
#
|
|
163
|
+
# @param [Hash] options
|
|
164
|
+
#
|
|
165
|
+
# @option options [Integer] :healthy_threshold Specifies the number of
|
|
166
|
+
# consecutive health probe successes required before moving the
|
|
167
|
+
# instance to the Healthy state.
|
|
168
|
+
#
|
|
169
|
+
# @option options [Integer] :unhealthy_threshold Specifies the number
|
|
170
|
+
# of consecutive health probe failures required before moving the
|
|
171
|
+
# instance to the Unhealthy state.
|
|
172
|
+
#
|
|
173
|
+
# @option options [Integer] :interval Specifies the approximate
|
|
174
|
+
# interval, in seconds, between health checks of an individual
|
|
175
|
+
# instance.
|
|
176
|
+
#
|
|
177
|
+
# @option options [Integer] :timeout Specifies the amount of time, in
|
|
178
|
+
# seconds, during which no response means a failed health probe.
|
|
179
|
+
# This value must be less than the +:interval+ value.
|
|
180
|
+
#
|
|
181
|
+
# @option options [String] :target Specifies the instance being checked.
|
|
182
|
+
#
|
|
183
|
+
# This option should be formatted like: "TCP:80"
|
|
184
|
+
#
|
|
185
|
+
# * The protocol is either TCP, HTTP, HTTPS, or SSL.
|
|
186
|
+
# * The range of valid ports is one (1) through 65535.
|
|
187
|
+
#
|
|
188
|
+
# TCP is the default, specified as a TCP: port pair, for example
|
|
189
|
+
# "TCP:5000". In this case a healthcheck simply attempts to open a
|
|
190
|
+
# TCP connection to the instance on the specified port. Failure to
|
|
191
|
+
# connect within the configured timeout is considered unhealthy.
|
|
192
|
+
#
|
|
193
|
+
# SSL is also specified as SSL: port pair, for example, SSL:5000.
|
|
194
|
+
# For HTTP or HTTPS protocol, the situation is different. You have
|
|
195
|
+
# to include a ping path in the string. HTTP is specified as a
|
|
196
|
+
# HTTP:port;/;PathToPing; grouping, for example
|
|
197
|
+
# "HTTP:80/weather/us/wa/seattle". In this case, a HTTP GET request
|
|
198
|
+
# is issued to the instance on the given port and path. Any answer
|
|
199
|
+
# other than "200 OK" within the timeout period is considered
|
|
200
|
+
# unhealthy.
|
|
201
|
+
#
|
|
202
|
+
# The total length of the HTTP ping target needs to be 1024 16-bit
|
|
203
|
+
# Unicode characters or less.
|
|
204
|
+
#
|
|
205
|
+
def configure_health_check options = {}
|
|
206
|
+
|
|
207
|
+
new_config = health_check.merge(options)
|
|
208
|
+
|
|
209
|
+
response = client.configure_health_check(
|
|
210
|
+
:load_balancer_name => name,
|
|
211
|
+
:health_check => new_config)
|
|
212
|
+
|
|
213
|
+
new_config
|
|
214
|
+
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
# @note VPC only
|
|
218
|
+
# @return [Array<EC2::Subnet>] Returns an array of VPC subnets
|
|
219
|
+
# for this load balancer.
|
|
220
|
+
def subnets
|
|
221
|
+
subnet_ids.map{|id| EC2::Subnet.new(id, :config => config) }
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
# @note VPC only
|
|
225
|
+
# Returns the VPC security groups assigned to this load balancer.
|
|
226
|
+
# @return [Array<EC2::SecurityGroup>]
|
|
227
|
+
def security_groups
|
|
228
|
+
security_group_ids.collect do |id|
|
|
229
|
+
EC2::SecurityGroup.new(id, :config => config)
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
# Generally you don't need to call this method, rather you can
|
|
234
|
+
# just pass the load balancer as a source to the various
|
|
235
|
+
# authorize and revoke methods of {EC2::SecurityGroup}:
|
|
236
|
+
#
|
|
237
|
+
# security_group.authorize_ingress(load_balancer)
|
|
238
|
+
#
|
|
239
|
+
# security_group.revoke_ingress(load_balancer)
|
|
240
|
+
#
|
|
241
|
+
# @return [Hash] Returns a hash that can be passed to the following
|
|
242
|
+
# {EC2::SecurityGroup} methods as a source:
|
|
243
|
+
#
|
|
244
|
+
# * {EC2::SecurityGroup#authorize_ingress}
|
|
245
|
+
# * {EC2::SecurityGroup#authorize_egress}
|
|
246
|
+
#
|
|
247
|
+
def source_security_group
|
|
248
|
+
{
|
|
249
|
+
:group_name => source_security_group_name,
|
|
250
|
+
:user_id => source_security_group_owner_alias,
|
|
251
|
+
}
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# @return [Boolean] Returns true if the load balancer exists.
|
|
255
|
+
def exists?
|
|
256
|
+
client.describe_load_balancers(:load_balancer_names => [name])
|
|
257
|
+
true
|
|
258
|
+
rescue Errors::LoadBalancerNotFound
|
|
259
|
+
false
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# Deletes the load balancer.
|
|
263
|
+
# @return [nil]
|
|
264
|
+
def delete
|
|
265
|
+
client.delete_load_balancer(:load_balancer_name => name)
|
|
266
|
+
nil
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
protected
|
|
270
|
+
|
|
271
|
+
def resource_identifiers
|
|
272
|
+
[[:load_balancer_name, name]]
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def get_resource attr_name
|
|
276
|
+
client.describe_load_balancers(:load_balancer_names => [name])
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
end
|
|
@@ -0,0 +1,134 @@
|
|
|
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 ELB
|
|
16
|
+
|
|
17
|
+
class LoadBalancerCollection
|
|
18
|
+
|
|
19
|
+
include ListenerOpts
|
|
20
|
+
include Core::Collection::Simple
|
|
21
|
+
|
|
22
|
+
# Creates and returns a load balancer. A load balancer requires:
|
|
23
|
+
#
|
|
24
|
+
# * a unique name
|
|
25
|
+
# * at least one availability zone
|
|
26
|
+
# * at least one listener
|
|
27
|
+
#
|
|
28
|
+
# An example that creates a load balancer in two availability zones
|
|
29
|
+
# with a single listener:
|
|
30
|
+
#
|
|
31
|
+
# load_balancer = elb.load_balancers.create('my-load-balancer',
|
|
32
|
+
# :availability_zones => %w(us-east-1a us-east-1b),
|
|
33
|
+
# :listeners => [{
|
|
34
|
+
# :port => 80,
|
|
35
|
+
# :protocol => :http,
|
|
36
|
+
# :instance_port => 80,
|
|
37
|
+
# :instance_protocol => :http,
|
|
38
|
+
# }])
|
|
39
|
+
#
|
|
40
|
+
# @param [String] name The name of your load balancer. The name must
|
|
41
|
+
# be unique within your set of load balancers.
|
|
42
|
+
#
|
|
43
|
+
# @param [Hash] options
|
|
44
|
+
#
|
|
45
|
+
# @option options [required,Array] :availability_zones An array of
|
|
46
|
+
# one or more availability zones. Values may be availability zone
|
|
47
|
+
# name strings, or {AWS::EC2::AvailabilityZone} objects.
|
|
48
|
+
#
|
|
49
|
+
# @option options [required,Array<Hash>] :listeners An array of load
|
|
50
|
+
# balancer listener options. Each value must be an array with the
|
|
51
|
+
# following keys:
|
|
52
|
+
# * +:port+
|
|
53
|
+
# * +:protocol+
|
|
54
|
+
# * +:instance_port+
|
|
55
|
+
# * +:instance_protocol+
|
|
56
|
+
#
|
|
57
|
+
# Port values should be integers, and protocols should be symbols or
|
|
58
|
+
# strings (e.g. :http, or 'HTTP'). See {ListenerCollection#create}
|
|
59
|
+
# for more detailed description of each option.
|
|
60
|
+
#
|
|
61
|
+
# @option options [String,IAM::ServerCertificate] :server_certificate (nil)
|
|
62
|
+
# The ARN string of an IAM::ServerCertifcate or an
|
|
63
|
+
# IAM::ServerCertificate object. Reqruied for HTTPs listeners.
|
|
64
|
+
#
|
|
65
|
+
# @option options [Array] :subnets An list of VPC subets to attach the
|
|
66
|
+
# load balancer to. This can be an array of subnet ids (strings) or
|
|
67
|
+
# {EC2::Subnet} objects. VPC only.
|
|
68
|
+
#
|
|
69
|
+
# @option options [Array] :security_groups The security groups assigned to
|
|
70
|
+
# your load balancer within your VPC. This can be an array of
|
|
71
|
+
# security group ids or {EC2::SecurityGroup} objects. VPC only.
|
|
72
|
+
#
|
|
73
|
+
# @option options [String] :scheme ('internal' The type of a load
|
|
74
|
+
# balancer. Accepts 'internet-facing' or 'internal'. VPC only.
|
|
75
|
+
#
|
|
76
|
+
def create name, options = {}
|
|
77
|
+
|
|
78
|
+
if listeners = options[:listeners]
|
|
79
|
+
options[:listeners] = [listeners].flatten.map do |listener|
|
|
80
|
+
format_listener_opts(listener)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
if zones = options[:availability_zones]
|
|
85
|
+
options[:availability_zones] = [zones].flatten.map do |zone|
|
|
86
|
+
zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
if groups = options[:security_groups]
|
|
91
|
+
options[:security_groups] = [groups].flatten.map do |group|
|
|
92
|
+
group.is_a?(EC2::SecurityGroup) ? group.id : group
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if subnets = options[:subnets]
|
|
97
|
+
options[:subnets] = [subnets].flatten.map do |subnet|
|
|
98
|
+
subnet.is_a?(EC2::Subnet) ? subnet.id : subnet
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
options[:load_balancer_name] = name.to_s
|
|
103
|
+
|
|
104
|
+
resp = client.create_load_balancer(options)
|
|
105
|
+
|
|
106
|
+
LoadBalancer.new(name, :dns_name => resp[:dns_name], :config => config)
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# @return [LoadBalancer] Returns the load balancer with the given
|
|
111
|
+
# name. This does not make a request, just returns a reference.
|
|
112
|
+
def [] name
|
|
113
|
+
LoadBalancer.new(name, :config => config)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
protected
|
|
117
|
+
def _each_item options = {}, &block
|
|
118
|
+
response = client.describe_load_balancers(options)
|
|
119
|
+
response.data[:load_balancer_descriptions].each do |description|
|
|
120
|
+
|
|
121
|
+
load_balancer = LoadBalancer.new_from(
|
|
122
|
+
:describe_load_balancers,
|
|
123
|
+
description,
|
|
124
|
+
description[:load_balancer_name],
|
|
125
|
+
:config => config)
|
|
126
|
+
|
|
127
|
+
yield(load_balancer)
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|