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,18 @@
|
|
|
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
|
+
AWS::Core::Configuration.module_eval do
|
|
15
|
+
|
|
16
|
+
add_service 'ELB', 'elb', 'elasticloadbalancing.us-east-1.amazonaws.com'
|
|
17
|
+
|
|
18
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
module Errors
|
|
17
|
+
|
|
18
|
+
extend Core::LazyErrorClasses
|
|
19
|
+
|
|
20
|
+
def self.error_class code
|
|
21
|
+
super(code.sub(/^ElasticLoadBalancing\./, ''))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
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 InstanceCollection
|
|
18
|
+
|
|
19
|
+
include Core::Collection::Simple
|
|
20
|
+
|
|
21
|
+
def initialize load_balancer, options = {}
|
|
22
|
+
@load_balancer = load_balancer
|
|
23
|
+
super
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Returns an {EC2::Instance} object with 3 extra methods added:
|
|
27
|
+
#
|
|
28
|
+
# * +#load_balancer+
|
|
29
|
+
#
|
|
30
|
+
# * +#remove_from_load_balancer+
|
|
31
|
+
#
|
|
32
|
+
# * +#elb_health+
|
|
33
|
+
#
|
|
34
|
+
# See {#health} for more information about what +#elb_health+ returns.
|
|
35
|
+
#
|
|
36
|
+
# @return [EC2::Instance] Return an EC2::Instance object with additional
|
|
37
|
+
# methods added.
|
|
38
|
+
#
|
|
39
|
+
def [] instance_id
|
|
40
|
+
|
|
41
|
+
load_balancer = self.load_balancer
|
|
42
|
+
|
|
43
|
+
instance = EC2.new(:config => config).instances[instance_id]
|
|
44
|
+
|
|
45
|
+
Core::MetaUtils.extend_method(instance, :load_balancer) do
|
|
46
|
+
load_balancer
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
Core::MetaUtils.extend_method(instance, :elb_health) do
|
|
50
|
+
health = load_balancer.instances.health(id).first
|
|
51
|
+
health.delete(:instance)
|
|
52
|
+
health
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
Core::MetaUtils.extend_method(instance, :remove_from_load_balancer) do
|
|
56
|
+
load_balancer.instances.deregister(self)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
instance
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Returns an array of instance health descriptions. Each description
|
|
64
|
+
# is a hash with the following entries:
|
|
65
|
+
#
|
|
66
|
+
# * +:instance+ - The {EC2::Instance} being described.
|
|
67
|
+
#
|
|
68
|
+
# * +:description+ - Provides a description of the instance.
|
|
69
|
+
#
|
|
70
|
+
# * +:state+ - Specifies the current state of the instance.
|
|
71
|
+
#
|
|
72
|
+
# * +:reason_code+ - Provides information about the cause of
|
|
73
|
+
# OutOfService instances. Specifically, it indicates whether the
|
|
74
|
+
# cause is Elastic Load Balancing or the instance behind the
|
|
75
|
+
# load balancer.
|
|
76
|
+
#
|
|
77
|
+
# You can get the health of all instances for this load balancer
|
|
78
|
+
# by passing no arguments to this method:
|
|
79
|
+
#
|
|
80
|
+
# # get the health of all instances in the collection
|
|
81
|
+
# load_balancer.instances.health.each do |instance_health|
|
|
82
|
+
# puts "Instance: " + instance_health[:instance].id
|
|
83
|
+
# puts "description: " + instance_health[:description]
|
|
84
|
+
# puts "state: " + instance_health[:state]
|
|
85
|
+
# puts "reason code: " + instance_health[:reason_code]
|
|
86
|
+
# end
|
|
87
|
+
#
|
|
88
|
+
# If you want the health of a specific list of instances, pass
|
|
89
|
+
# instance ids or instance objects to this method:
|
|
90
|
+
#
|
|
91
|
+
# # get the health for a few specific instances
|
|
92
|
+
# load_balancer.instances.health('i-12345', 'i-67890').each{|h| ... }
|
|
93
|
+
#
|
|
94
|
+
# == Health for a Single Instance
|
|
95
|
+
#
|
|
96
|
+
# If you want the health of a single instance you can use the {#[]}
|
|
97
|
+
# instead:
|
|
98
|
+
#
|
|
99
|
+
# load_balancer.instances['i-123456'].elb_health
|
|
100
|
+
# # => { :state => ..., :reason_code => ..., :description => ... }
|
|
101
|
+
#
|
|
102
|
+
# @param [String,EC2::Instance] instances A list of instances to
|
|
103
|
+
# receive health information for.
|
|
104
|
+
#
|
|
105
|
+
# @return [Array<Hash>] Returns an array of hashes. Each hash represents
|
|
106
|
+
# the health of a single instance. Each hash includes the following
|
|
107
|
+
# entries:
|
|
108
|
+
#
|
|
109
|
+
def health *instances
|
|
110
|
+
|
|
111
|
+
instance_ids = instance_ids(instances)
|
|
112
|
+
|
|
113
|
+
opts = {}
|
|
114
|
+
opts[:load_balancer_name] = load_balancer.name
|
|
115
|
+
opts[:instances] = instance_ids unless instance_ids.empty?
|
|
116
|
+
|
|
117
|
+
client.describe_instance_health(opts).instance_states.map do |state|
|
|
118
|
+
{
|
|
119
|
+
:instance => self[state.instance_id],
|
|
120
|
+
:description => state.description,
|
|
121
|
+
:state => state.state,
|
|
122
|
+
:reason_code => state.reason_code,
|
|
123
|
+
}
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# @return [LoadBalancer] Returns the load balancer this collection
|
|
129
|
+
# belongs to.
|
|
130
|
+
attr_reader :load_balancer
|
|
131
|
+
|
|
132
|
+
def register *instances
|
|
133
|
+
|
|
134
|
+
client.register_instances_with_load_balancer(
|
|
135
|
+
:load_balancer_name => load_balancer.name,
|
|
136
|
+
:instances => instance_ids(instances))
|
|
137
|
+
|
|
138
|
+
nil
|
|
139
|
+
|
|
140
|
+
end
|
|
141
|
+
alias_method :add, :register
|
|
142
|
+
|
|
143
|
+
def deregister *instances
|
|
144
|
+
|
|
145
|
+
client.deregister_instances_from_load_balancer(
|
|
146
|
+
:load_balancer_name => load_balancer.name,
|
|
147
|
+
:instances => instance_ids(instances))
|
|
148
|
+
|
|
149
|
+
nil
|
|
150
|
+
|
|
151
|
+
end
|
|
152
|
+
alias_method :remove, :deregister
|
|
153
|
+
|
|
154
|
+
protected
|
|
155
|
+
def instance_ids instances
|
|
156
|
+
instances.flatten.collect do |instance|
|
|
157
|
+
case instance
|
|
158
|
+
when EC2::Instance then { :instance_id => instance.id }
|
|
159
|
+
else { :instance_id => instance }
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
protected
|
|
165
|
+
def _each_item options = {}
|
|
166
|
+
load_balancer.instance_descriptions.each do |instance|
|
|
167
|
+
yield(self[instance[:instance_id]])
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
@@ -0,0 +1,190 @@
|
|
|
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 Listener
|
|
18
|
+
|
|
19
|
+
include Core::Model
|
|
20
|
+
|
|
21
|
+
# @param [LoadBalancer] load_balancer The load balancer this listener
|
|
22
|
+
# belongs to.
|
|
23
|
+
#
|
|
24
|
+
# @param [Integer] port The external load balancer port number.
|
|
25
|
+
#
|
|
26
|
+
# @param [Hash] options
|
|
27
|
+
#
|
|
28
|
+
# @option (see ListenerCollection#create)
|
|
29
|
+
#
|
|
30
|
+
def initialize load_balancer, port, options = {}
|
|
31
|
+
|
|
32
|
+
@load_balancer = load_balancer
|
|
33
|
+
@port = port.to_i
|
|
34
|
+
@protocol = options[:protocol]
|
|
35
|
+
@instance_port = options[:instance_port]
|
|
36
|
+
@instance_protocol = options[:instance_protocol]
|
|
37
|
+
|
|
38
|
+
super
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @return [LoadBalancer]
|
|
43
|
+
attr_reader :load_balancer
|
|
44
|
+
|
|
45
|
+
# @return [Integer]
|
|
46
|
+
attr_reader :port
|
|
47
|
+
|
|
48
|
+
# @return [Symbol] Returns the protocl for this listener.
|
|
49
|
+
def protocol
|
|
50
|
+
proto = @protocol ||= _description[:listener][:protocol]
|
|
51
|
+
proto.to_s.downcase.to_sym
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @return [Integer]
|
|
55
|
+
def instance_port
|
|
56
|
+
@instance_port ||= _description[:listener][:instance_port]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [Symbol]
|
|
60
|
+
def instance_protocol
|
|
61
|
+
proto = @instance_protocol ||= _description[:listener][:instance_protocol]
|
|
62
|
+
proto.to_s.downcase.to_sym
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Sets the certificate that terminates the specified listener's SSL
|
|
66
|
+
# connections. The specified certificate replaces any prior
|
|
67
|
+
# certificate for this listener.
|
|
68
|
+
#
|
|
69
|
+
# @param [String,IAM::ServerCertificate] server_certificate The ARN
|
|
70
|
+
# of an IAM::ServerCertificate or an IAM::ServerCertificate object.
|
|
71
|
+
#
|
|
72
|
+
# @return [nil]
|
|
73
|
+
#
|
|
74
|
+
def server_certificate= server_certificate
|
|
75
|
+
|
|
76
|
+
arn = server_certificate.is_a?(IAM::ServerCertificate) ?
|
|
77
|
+
server_certificate.arn : server_certificate
|
|
78
|
+
|
|
79
|
+
client.set_load_balancer_listener_ssl_certificate(
|
|
80
|
+
:load_balancer_name => load_balancer.name,
|
|
81
|
+
:load_balancer_port => port,
|
|
82
|
+
:ssl_certificate_id => arn)
|
|
83
|
+
|
|
84
|
+
nil
|
|
85
|
+
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# @return [IAM::ServerCertificate,nil] Returns the IAM::ServerCertificate
|
|
89
|
+
# associated with this listener, or nil if there is none.
|
|
90
|
+
def server_certificate
|
|
91
|
+
desc = _description
|
|
92
|
+
if desc[:listener][:ssl_certificate_id]
|
|
93
|
+
AWS.memoize do
|
|
94
|
+
arn = desc[:listener][:ssl_certificate_id]
|
|
95
|
+
iam = IAM.new(:config => config)
|
|
96
|
+
iam.server_certificates.find{|cert| cert.arn == arn }
|
|
97
|
+
end
|
|
98
|
+
else
|
|
99
|
+
nil
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @return [LoadBalancerPolicy,nil] Returns the current policy for this
|
|
104
|
+
# listener. Returns nil if no load balancer policy has been
|
|
105
|
+
# associated with it.
|
|
106
|
+
def policy
|
|
107
|
+
policy_name = _description[:policy_names].first
|
|
108
|
+
policy_name ? load_balancer.policies[policy_name] : nil
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @param [String,LoadBalancerPolicy] policy_or_policy_name Sets
|
|
112
|
+
# the policy for this listener.
|
|
113
|
+
# @return [LoadBalancerPolicy]
|
|
114
|
+
def policy= policy_or_policy_name
|
|
115
|
+
|
|
116
|
+
policy_name = policy_or_policy_name.is_a?(LoadBalancerPolicy) ?
|
|
117
|
+
policy_or_policy_name.name : policy_or_policy_name.to_s
|
|
118
|
+
|
|
119
|
+
client.set_load_balancer_policies_of_listener(
|
|
120
|
+
:load_balancer_name => load_balancer.name,
|
|
121
|
+
:load_balancer_port => port,
|
|
122
|
+
:policy_names => [policy_name])
|
|
123
|
+
|
|
124
|
+
LoadBalancerPolicy.new(load_balancer, policy_name, :config => config)
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Removes the current policy from this listener.
|
|
129
|
+
# @return [nil]
|
|
130
|
+
def remove_policy
|
|
131
|
+
|
|
132
|
+
client.set_load_balancer_policies_of_listener(
|
|
133
|
+
:load_balancer_name => load_balancer.name,
|
|
134
|
+
:load_balancer_port => port,
|
|
135
|
+
:policy_names => [])
|
|
136
|
+
|
|
137
|
+
nil
|
|
138
|
+
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Returns true if this listener exists.
|
|
142
|
+
#
|
|
143
|
+
# load_balancer = ELB.new.load_balancers['my-load-balancer']
|
|
144
|
+
# listener = load_balancer.listeners[80] # port 80
|
|
145
|
+
# listener.exists?
|
|
146
|
+
#
|
|
147
|
+
# @return [Boolean] Returns true if the load balancer has a listener
|
|
148
|
+
# on this port.
|
|
149
|
+
def exists?
|
|
150
|
+
!_description.nil?
|
|
151
|
+
rescue AWS::Core::Resource::NotFound
|
|
152
|
+
false
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Deletes the listener from its load balancer.
|
|
156
|
+
# @return [nil]
|
|
157
|
+
def delete
|
|
158
|
+
|
|
159
|
+
client.delete_load_balancer_listeners(
|
|
160
|
+
:load_balancer_name => load_balancer.name,
|
|
161
|
+
:load_balancer_ports => [port])
|
|
162
|
+
|
|
163
|
+
nil
|
|
164
|
+
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# @private
|
|
168
|
+
def inspect
|
|
169
|
+
"#{self.class.name} port:#{port}>"
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# @private
|
|
173
|
+
def eql? other
|
|
174
|
+
other.is_a?(Listener) and
|
|
175
|
+
other.load_balancer == load_balancer and
|
|
176
|
+
other.port == port
|
|
177
|
+
end
|
|
178
|
+
alias_method :==, :eql?
|
|
179
|
+
|
|
180
|
+
protected
|
|
181
|
+
|
|
182
|
+
def _description
|
|
183
|
+
load_balancer.listener_descriptions.find do |desc|
|
|
184
|
+
desc[:listener][:load_balancer_port] == port
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
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 ListenerCollection
|
|
18
|
+
|
|
19
|
+
include ListenerOpts
|
|
20
|
+
include Core::Collection::Simple
|
|
21
|
+
|
|
22
|
+
def initialize load_balancer, options = {}
|
|
23
|
+
@load_balancer = load_balancer
|
|
24
|
+
super
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [LoadBalancer]
|
|
28
|
+
attr_reader :load_balancer
|
|
29
|
+
|
|
30
|
+
# @param [Hash] options
|
|
31
|
+
#
|
|
32
|
+
# @option options [Integer] :port Specifies the external
|
|
33
|
+
# load balancer port number. This property cannot be modified for
|
|
34
|
+
# the life of the LoadBalancer.
|
|
35
|
+
#
|
|
36
|
+
# @option options [String,Symbol] :protocol Specifies the load balancer
|
|
37
|
+
# transport protocol to use for routing. Valid values include:
|
|
38
|
+
#
|
|
39
|
+
# @option options [Integer] :instance_port Specifies the TCP port on
|
|
40
|
+
# which the instance server is listening. This property cannot be
|
|
41
|
+
# modified for the life of the load balancer.
|
|
42
|
+
#
|
|
43
|
+
# @option options [String,Symbol] :instance_protocol Specifies the
|
|
44
|
+
# protocol to use for routing traffic to back-end instances. Valid
|
|
45
|
+
# values include:
|
|
46
|
+
#
|
|
47
|
+
# * :http, 'HTTP'
|
|
48
|
+
# * :https, 'HTTPS'
|
|
49
|
+
# * :tcp, 'TCP'
|
|
50
|
+
# * :ssl, 'SSL'
|
|
51
|
+
#
|
|
52
|
+
# This property cannot be modified for the life of the load balacner.
|
|
53
|
+
#
|
|
54
|
+
# NOTE: If the front-end protocol is HTTP or HTTPS, +:instance_protocol+
|
|
55
|
+
# has to be at the same protocol layer, i.e., HTTP or HTTPS. Likewise,
|
|
56
|
+
# if the front-end protocol is TCP or SSL, +:instance_protocol+ has
|
|
57
|
+
# to be TCP or SSL.
|
|
58
|
+
#
|
|
59
|
+
# NOTE: If there is another listener with the same +:instance_port+
|
|
60
|
+
# whose +:instance_protocol+ is secure, i.e., HTTPS or SSL, the
|
|
61
|
+
# listener's +:instance_protocol+ has to be secure, i.e., HTTPS
|
|
62
|
+
# or SSL. If there is another listener with the same +:instance_port+
|
|
63
|
+
# whose +:instance_protocol+ is HTTP or TCP, the listener's
|
|
64
|
+
# +:instance_protocol+ must be either HTTP or TCP.
|
|
65
|
+
#
|
|
66
|
+
# * :tcp, 'TCP'
|
|
67
|
+
# * :http, 'HTTP'
|
|
68
|
+
#
|
|
69
|
+
# This property cannot be modified for the life of the load balancer.
|
|
70
|
+
#
|
|
71
|
+
# @option options [String,IAM::ServerCertificate] :server_certificate The
|
|
72
|
+
# ARN string of an IAM::ServerCertifcate or an IAM::ServerCertificate
|
|
73
|
+
# object. Reqruied for HTTPs listeners.
|
|
74
|
+
#
|
|
75
|
+
# @return [Listener]
|
|
76
|
+
def create options = {}
|
|
77
|
+
|
|
78
|
+
format_listener_opts(options)
|
|
79
|
+
|
|
80
|
+
client.create_load_balancer_listeners(
|
|
81
|
+
:load_balancer_name => load_balancer.name,
|
|
82
|
+
:listeners => [options])
|
|
83
|
+
|
|
84
|
+
Listener.new(load_balancer,
|
|
85
|
+
options[:load_balancer_port],
|
|
86
|
+
options.merge(:config => config))
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# @return [Listener]
|
|
91
|
+
def [] port
|
|
92
|
+
Listener.new(load_balancer, port, :config => config)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
protected
|
|
96
|
+
def _each_item options = {}
|
|
97
|
+
load_balancer.listener_descriptions.each do |description|
|
|
98
|
+
|
|
99
|
+
port = description[:listener][:load_balancer_port]
|
|
100
|
+
|
|
101
|
+
options = {}
|
|
102
|
+
options[:config] = config
|
|
103
|
+
options.merge!(description[:listener])
|
|
104
|
+
|
|
105
|
+
yield(Listener.new(load_balancer, port, options))
|
|
106
|
+
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
end
|
|
113
|
+
end
|