aws-sdk-v1 1.52.0
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.
- checksums.yaml +7 -0
- data/.yardopts +7 -0
- data/LICENSE.txt +12 -0
- data/README.md +337 -0
- data/bin/aws-rb +179 -0
- data/ca-bundle.crt +3554 -0
- data/endpoints.json +1671 -0
- data/lib/aws-sdk-v1.rb +2 -0
- data/lib/aws-sdk.rb +1 -0
- data/lib/aws.rb +14 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +1070 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +372 -0
- data/lib/aws/api_config/CloudFront-2013-05-12.yml +2448 -0
- data/lib/aws/api_config/CloudFront-2013-08-26.yml +2599 -0
- data/lib/aws/api_config/CloudFront-2013-09-27.yml +2765 -0
- data/lib/aws/api_config/CloudFront-2013-11-11.yml +2886 -0
- data/lib/aws/api_config/CloudFront-2013-11-22.yml +2918 -0
- data/lib/aws/api_config/CloudFront-2014-01-31.yml +2934 -0
- data/lib/aws/api_config/CloudFront-2014-05-31.yml +3100 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/CloudSearch-2013-01-01.yml +1164 -0
- data/lib/aws/api_config/CloudTrail-2013-11-01.yml +130 -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/DirectConnect-2012-10-25.yml +735 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1168 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +2105 -0
- data/lib/aws/api_config/EC2-2013-08-15.yml +4708 -0
- data/lib/aws/api_config/EC2-2013-10-01.yml +4726 -0
- data/lib/aws/api_config/EC2-2013-10-15.yml +4651 -0
- data/lib/aws/api_config/EC2-2014-02-01.yml +4755 -0
- data/lib/aws/api_config/EC2-2014-05-01.yml +4812 -0
- data/lib/aws/api_config/ELB-2012-06-01.yml +766 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +972 -0
- data/lib/aws/api_config/ElastiCache-2013-06-15.yml +1188 -0
- data/lib/aws/api_config/ElastiCache-2014-03-24.yml +1375 -0
- data/lib/aws/api_config/ElastiCache-2014-07-15.yml +1385 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +854 -0
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +3082 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +649 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1339 -0
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
- data/lib/aws/api_config/Kinesis-2013-12-02.yml +201 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2025 -0
- data/lib/aws/api_config/RDS-2013-05-15.yml +2464 -0
- data/lib/aws/api_config/RDS-2013-09-09.yml +2640 -0
- data/lib/aws/api_config/Redshift-2012-12-01.yml +2161 -0
- data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
- data/lib/aws/api_config/Route53-2013-04-01.yml +889 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +448 -0
- data/lib/aws/api_config/SQS-2012-11-05.yml +404 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +151 -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 +2388 -0
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
- data/lib/aws/api_config/StorageGateway-2013-06-30.yml +1025 -0
- data/lib/aws/api_config/Support-2013-04-15.yml +489 -0
- data/lib/aws/auto_scaling.rb +163 -0
- data/lib/aws/auto_scaling/activity.rb +102 -0
- data/lib/aws/auto_scaling/activity_collection.rb +81 -0
- data/lib/aws/auto_scaling/client.rb +48 -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 +421 -0
- data/lib/aws/auto_scaling/group_collection.rb +96 -0
- data/lib/aws/auto_scaling/group_options.rb +155 -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 +162 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +160 -0
- data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +183 -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 +65 -0
- data/lib/aws/auto_scaling/scheduled_action.rb +141 -0
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +202 -0
- data/lib/aws/auto_scaling/tag.rb +59 -0
- data/lib/aws/auto_scaling/tag_collection.rb +114 -0
- data/lib/aws/cloud_formation.rb +272 -0
- data/lib/aws/cloud_formation/client.rb +48 -0
- data/lib/aws/cloud_formation/config.rb +18 -0
- data/lib/aws/cloud_formation/errors.rb +22 -0
- data/lib/aws/cloud_formation/stack.rb +266 -0
- data/lib/aws/cloud_formation/stack_collection.rb +232 -0
- data/lib/aws/cloud_formation/stack_event.rb +73 -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 +83 -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 +72 -0
- data/lib/aws/cloud_front/client.rb +57 -0
- data/lib/aws/cloud_front/config.rb +18 -0
- data/lib/aws/cloud_front/errors.rb +22 -0
- data/lib/aws/cloud_search.rb +73 -0
- data/lib/aws/cloud_search/client.rb +40 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_trail.rb +72 -0
- data/lib/aws/cloud_trail/client.rb +35 -0
- data/lib/aws/cloud_trail/config.rb +18 -0
- data/lib/aws/cloud_trail/errors.rb +22 -0
- data/lib/aws/cloud_watch.rb +118 -0
- data/lib/aws/cloud_watch/alarm.rb +293 -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 +40 -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 +129 -0
- data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
- data/lib/aws/core.rb +716 -0
- data/lib/aws/core/async_handle.rb +90 -0
- data/lib/aws/core/cacheable.rb +77 -0
- data/lib/aws/core/client.rb +787 -0
- data/lib/aws/core/collection.rb +263 -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 +542 -0
- data/lib/aws/core/credential_providers.rb +639 -0
- data/lib/aws/core/data.rb +247 -0
- data/lib/aws/core/deprecations.rb +84 -0
- data/lib/aws/core/endpoints.rb +37 -0
- data/lib/aws/core/http/connection_pool.rb +369 -0
- data/lib/aws/core/http/curb_handler.rb +148 -0
- data/lib/aws/core/http/handler.rb +89 -0
- data/lib/aws/core/http/net_http_handler.rb +144 -0
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +259 -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/ini_parser.rb +42 -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 +108 -0
- data/lib/aws/core/log_formatter.rb +428 -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 +62 -0
- data/lib/aws/core/naming.rb +30 -0
- data/lib/aws/core/option_grammar.rb +738 -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 +941 -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/region.rb +85 -0
- data/lib/aws/core/region_collection.rb +80 -0
- data/lib/aws/core/resource.rb +413 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +215 -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 +154 -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 +83 -0
- data/lib/aws/core/signers/base.rb +46 -0
- data/lib/aws/core/signers/cloud_front.rb +56 -0
- data/lib/aws/core/signers/s3.rb +159 -0
- data/lib/aws/core/signers/version_2.rb +72 -0
- data/lib/aws/core/signers/version_3.rb +86 -0
- data/lib/aws/core/signers/version_3_https.rb +61 -0
- data/lib/aws/core/signers/version_4.rb +228 -0
- data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +191 -0
- data/lib/aws/core/uri_escape.rb +44 -0
- data/lib/aws/core/xml/frame.rb +245 -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 +56 -0
- data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
- data/lib/aws/core/xml/sax_handlers/rexml.rb +47 -0
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/data_pipeline.rb +72 -0
- data/lib/aws/data_pipeline/client.rb +36 -0
- data/lib/aws/data_pipeline/config.rb +18 -0
- data/lib/aws/data_pipeline/errors.rb +20 -0
- data/lib/aws/direct_connect.rb +73 -0
- data/lib/aws/direct_connect/client.rb +36 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/dynamo_db.rb +230 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +456 -0
- data/lib/aws/dynamo_db/batch_get.rb +213 -0
- data/lib/aws/dynamo_db/batch_write.rb +254 -0
- data/lib/aws/dynamo_db/binary.rb +35 -0
- data/lib/aws/dynamo_db/client.rb +129 -0
- data/lib/aws/dynamo_db/client/v20111205.rb +1266 -0
- data/lib/aws/dynamo_db/client/v20120810.rb +1409 -0
- data/lib/aws/dynamo_db/client_v2.rb +44 -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 +856 -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/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +492 -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 +428 -0
- data/lib/aws/ec2/attachment.rb +135 -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 +154 -0
- data/lib/aws/ec2/collection.rb +36 -0
- data/lib/aws/ec2/config.rb +21 -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 +209 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +93 -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 +87 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +270 -0
- data/lib/aws/ec2/image_collection.rb +219 -0
- data/lib/aws/ec2/instance.rb +803 -0
- data/lib/aws/ec2/instance_collection.rb +402 -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 +237 -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/reserved_instances.rb +57 -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 +45 -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 +482 -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 +133 -0
- data/lib/aws/ec2/snapshot.rb +143 -0
- data/lib/aws/ec2/snapshot_collection.rb +131 -0
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +119 -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 +67 -0
- data/lib/aws/ec2/tagged_item.rb +85 -0
- data/lib/aws/ec2/volume.rb +185 -0
- data/lib/aws/ec2/volume_collection.rb +102 -0
- data/lib/aws/ec2/vpc.rb +174 -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 +49 -0
- data/lib/aws/elastic_beanstalk/client.rb +36 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_transcoder.rb +29 -0
- data/lib/aws/elastic_transcoder/client.rb +48 -0
- data/lib/aws/elastic_transcoder/config.rb +18 -0
- data/lib/aws/elastic_transcoder/errors.rb +23 -0
- data/lib/aws/elasticache.rb +49 -0
- data/lib/aws/elasticache/client.rb +41 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elb.rb +66 -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 +35 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +168 -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 +280 -0
- data/lib/aws/elb/load_balancer_collection.rb +146 -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/emr.rb +87 -0
- data/lib/aws/emr/client.rb +35 -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 +307 -0
- data/lib/aws/emr/job_flow_collection.rb +183 -0
- data/lib/aws/errors.rb +162 -0
- data/lib/aws/glacier.rb +79 -0
- data/lib/aws/glacier/archive.rb +56 -0
- data/lib/aws/glacier/archive_collection.rb +146 -0
- data/lib/aws/glacier/client.rb +49 -0
- data/lib/aws/glacier/config.rb +19 -0
- data/lib/aws/glacier/errors.rb +22 -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 +408 -0
- data/lib/aws/iam/access_key.rb +185 -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 +49 -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 +111 -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/resource.rb +62 -0
- data/lib/aws/iam/server_certificate.rb +148 -0
- data/lib/aws/iam/server_certificate_collection.rb +138 -0
- data/lib/aws/iam/signing_certificate.rb +186 -0
- data/lib/aws/iam/signing_certificate_collection.rb +131 -0
- data/lib/aws/iam/user.rb +200 -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 +35 -0
- data/lib/aws/import_export/config.rb +19 -0
- data/lib/aws/import_export/errors.rb +22 -0
- data/lib/aws/kinesis.rb +53 -0
- data/lib/aws/kinesis/client.rb +35 -0
- data/lib/aws/kinesis/config.rb +18 -0
- data/lib/aws/kinesis/errors.rb +20 -0
- data/lib/aws/ops_works.rb +29 -0
- data/lib/aws/ops_works/client.rb +35 -0
- data/lib/aws/ops_works/config.rb +18 -0
- data/lib/aws/ops_works/errors.rb +20 -0
- data/lib/aws/rails.rb +195 -0
- data/lib/aws/rds.rb +70 -0
- data/lib/aws/rds/client.rb +42 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +215 -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/record.rb +139 -0
- data/lib/aws/record/abstract_base.rb +689 -0
- data/lib/aws/record/attributes.rb +388 -0
- data/lib/aws/record/conversion.rb +38 -0
- data/lib/aws/record/dirty_tracking.rb +287 -0
- data/lib/aws/record/errors.rb +143 -0
- data/lib/aws/record/exceptions.rb +51 -0
- data/lib/aws/record/hash_model.rb +204 -0
- data/lib/aws/record/hash_model/attributes.rb +195 -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 +453 -0
- data/lib/aws/record/model/attributes.rb +377 -0
- data/lib/aws/record/model/finder_methods.rb +232 -0
- data/lib/aws/record/model/scope.rb +212 -0
- data/lib/aws/record/naming.rb +31 -0
- data/lib/aws/record/scope.rb +203 -0
- data/lib/aws/record/validations.rb +694 -0
- data/lib/aws/record/validator.rb +246 -0
- data/lib/aws/record/validators/acceptance.rb +49 -0
- data/lib/aws/record/validators/block.rb +36 -0
- data/lib/aws/record/validators/confirmation.rb +41 -0
- data/lib/aws/record/validators/count.rb +106 -0
- data/lib/aws/record/validators/exclusion.rb +41 -0
- data/lib/aws/record/validators/format.rb +55 -0
- data/lib/aws/record/validators/inclusion.rb +54 -0
- data/lib/aws/record/validators/length.rb +105 -0
- data/lib/aws/record/validators/method.rb +31 -0
- data/lib/aws/record/validators/numericality.rb +136 -0
- data/lib/aws/record/validators/presence.rb +43 -0
- data/lib/aws/redshift.rb +51 -0
- data/lib/aws/redshift/client.rb +35 -0
- data/lib/aws/redshift/config.rb +18 -0
- data/lib/aws/redshift/errors.rb +22 -0
- data/lib/aws/route_53.rb +86 -0
- data/lib/aws/route_53/change_batch.rb +161 -0
- data/lib/aws/route_53/change_info.rb +72 -0
- data/lib/aws/route_53/client.rb +38 -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 +134 -0
- data/lib/aws/route_53/hosted_zone_collection.rb +101 -0
- data/lib/aws/route_53/resource_record_set.rb +251 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +156 -0
- data/lib/aws/s3/access_control_list.rb +265 -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 +162 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +473 -0
- data/lib/aws/s3/bucket_tag_collection.rb +111 -0
- data/lib/aws/s3/bucket_version_collection.rb +79 -0
- data/lib/aws/s3/cipher_io.rb +120 -0
- data/lib/aws/s3/client.rb +2067 -0
- data/lib/aws/s3/client/xml.rb +266 -0
- data/lib/aws/s3/config.rb +48 -0
- data/lib/aws/s3/cors_rule.rb +108 -0
- data/lib/aws/s3/cors_rule_collection.rb +194 -0
- data/lib/aws/s3/data_options.rb +191 -0
- data/lib/aws/s3/encryption_utils.rb +146 -0
- data/lib/aws/s3/errors.rb +94 -0
- data/lib/aws/s3/multipart_upload.rb +353 -0
- data/lib/aws/s3/multipart_upload_collection.rb +76 -0
- data/lib/aws/s3/object_collection.rb +353 -0
- data/lib/aws/s3/object_metadata.rb +103 -0
- data/lib/aws/s3/object_upload_collection.rb +77 -0
- data/lib/aws/s3/object_version.rb +154 -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 +85 -0
- data/lib/aws/s3/presign_v4.rb +136 -0
- data/lib/aws/s3/presigned_post.rb +554 -0
- data/lib/aws/s3/request.rb +62 -0
- data/lib/aws/s3/s3_object.rb +1784 -0
- data/lib/aws/s3/tree.rb +116 -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 +82 -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 +218 -0
- data/lib/aws/simple_db/attribute.rb +156 -0
- data/lib/aws/simple_db/attribute_collection.rb +240 -0
- data/lib/aws/simple_db/client.rb +67 -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 +123 -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 +654 -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_email_service.rb +443 -0
- data/lib/aws/simple_email_service/client.rb +37 -0
- data/lib/aws/simple_email_service/config.rb +18 -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 +230 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/simple_email_service/quotas.rb +66 -0
- data/lib/aws/simple_workflow.rb +227 -0
- data/lib/aws/simple_workflow/activity_task.rb +178 -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 +69 -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 +223 -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/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 +384 -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 +35 -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/message.rb +204 -0
- data/lib/aws/sns/originators/from_auto_scaling.rb +68 -0
- data/lib/aws/sns/policy.rb +47 -0
- data/lib/aws/sns/subscription.rb +165 -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 +80 -0
- data/lib/aws/sqs/client.rb +53 -0
- data/lib/aws/sqs/config.rb +20 -0
- data/lib/aws/sqs/errors.rb +125 -0
- data/lib/aws/sqs/policy.rb +48 -0
- data/lib/aws/sqs/queue.rb +856 -0
- data/lib/aws/sqs/queue_collection.rb +186 -0
- data/lib/aws/sqs/received_message.rb +190 -0
- data/lib/aws/sqs/received_sns_message.rb +116 -0
- data/lib/aws/storage_gateway.rb +72 -0
- data/lib/aws/storage_gateway/client.rb +42 -0
- data/lib/aws/storage_gateway/config.rb +18 -0
- data/lib/aws/storage_gateway/errors.rb +22 -0
- data/lib/aws/sts.rb +164 -0
- data/lib/aws/sts/client.rb +55 -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/session.rb +48 -0
- data/lib/aws/support.rb +29 -0
- data/lib/aws/support/client.rb +35 -0
- data/lib/aws/support/config.rb +18 -0
- data/lib/aws/support/errors.rb +20 -0
- data/lib/aws/version.rb +17 -0
- data/rails/init.rb +15 -0
- metadata +634 -0
@@ -0,0 +1,205 @@
|
|
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/route_table/route'
|
15
|
+
require 'aws/ec2/route_table/association'
|
16
|
+
|
17
|
+
module AWS
|
18
|
+
class EC2
|
19
|
+
|
20
|
+
class RouteTable < Resource
|
21
|
+
|
22
|
+
include TaggedItem
|
23
|
+
|
24
|
+
def initialize route_table_id, options = {}
|
25
|
+
@route_table_id = route_table_id
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [String]
|
30
|
+
attr_reader :route_table_id
|
31
|
+
|
32
|
+
alias_method :id, :route_table_id
|
33
|
+
|
34
|
+
attribute :vpc_id, :static => true
|
35
|
+
|
36
|
+
attribute :route_set
|
37
|
+
|
38
|
+
protected :route_set
|
39
|
+
|
40
|
+
attribute :association_set
|
41
|
+
|
42
|
+
protected :association_set
|
43
|
+
|
44
|
+
populates_from(:create_route_table) do |resp|
|
45
|
+
resp.route_table if resp.route_table.route_table_id == route_table_id
|
46
|
+
end
|
47
|
+
|
48
|
+
populates_from(:describe_route_tables) do |resp|
|
49
|
+
resp.route_table_set.find{|t| t.route_table_id == route_table_id }
|
50
|
+
end
|
51
|
+
|
52
|
+
# @return [Boolean] Returns true if this is the main (default)
|
53
|
+
# route table.
|
54
|
+
def main?
|
55
|
+
@main = !!associations.find{|a| a.main? } if @main.nil?
|
56
|
+
@main
|
57
|
+
end
|
58
|
+
|
59
|
+
# @return [VPC] Returns the VPC this route table belongs to.
|
60
|
+
def vpc
|
61
|
+
VPC.new(vpc_id, :config => config)
|
62
|
+
end
|
63
|
+
|
64
|
+
# @return [Array<Subnet>] Returns an array of subnets ({Subnet})
|
65
|
+
# that currently associated to this route table.
|
66
|
+
def subnets
|
67
|
+
|
68
|
+
subnets = associations.map(&:subnet)
|
69
|
+
|
70
|
+
# The default route table has a single association where #subnet
|
71
|
+
# returns nil (the main association). If this is not the main
|
72
|
+
# route table we can safely return the subnets.
|
73
|
+
return subnets unless subnets.include?(nil)
|
74
|
+
|
75
|
+
subnets.compact!
|
76
|
+
|
77
|
+
# This is the default route table and to get the complete list of
|
78
|
+
# subnets we have to find all subnets without an association
|
79
|
+
AWS.memoize do
|
80
|
+
|
81
|
+
# every subnet
|
82
|
+
all_subnets = vpc.subnets.to_a
|
83
|
+
|
84
|
+
# subnets assigned directly to a route table
|
85
|
+
associated_subnets = vpc.route_tables.
|
86
|
+
map(&:associations).flatten.
|
87
|
+
map(&:subnet).flatten.
|
88
|
+
compact
|
89
|
+
|
90
|
+
# subnets NOT assigned to a route table, these default as
|
91
|
+
# belonging to the default route table through the "main"
|
92
|
+
# association
|
93
|
+
unassociated_subnets = all_subnets.inject([]) do |list,subnet|
|
94
|
+
unless associated_subnets.include?(subnet)
|
95
|
+
list << subnet
|
96
|
+
end
|
97
|
+
list
|
98
|
+
end
|
99
|
+
|
100
|
+
subnets + unassociated_subnets
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
# @return [Array<RouteTable::Association>] Returns an array of
|
107
|
+
# {RouteTable::Association} objects (association to subnets).
|
108
|
+
def associations
|
109
|
+
association_set.collect do |details|
|
110
|
+
Association.new(self,
|
111
|
+
details[:route_table_association_id],
|
112
|
+
details[:subnet_id])
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# @return [Array<Route>] Returns an array of routes ({Route} objects)
|
117
|
+
# belonging to this route table.
|
118
|
+
def routes
|
119
|
+
route_set.map do |route_details|
|
120
|
+
Route.new(self, route_details)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
# Creates a new route in this route route. The route must be attached
|
125
|
+
# to a gateway, instance or network interface.
|
126
|
+
#
|
127
|
+
# @param [String] destination_cidr_block The CIDR address block
|
128
|
+
# used for the destination match. For example: 0.0.0.0/0.
|
129
|
+
# Routing decisions are based on the most specific match.
|
130
|
+
#
|
131
|
+
# @param [Hash] options
|
132
|
+
#
|
133
|
+
# @option options [InternetGateway,String] :internet_gateway
|
134
|
+
# An {InternetGateway} object or an internet gateway id string to
|
135
|
+
# attach the route to.
|
136
|
+
#
|
137
|
+
# @option options [Instance,String] :instance An {Instance} object
|
138
|
+
# or instance id string to attach the route to.
|
139
|
+
#
|
140
|
+
# @option options [NetworkInterface,String] :network_interface
|
141
|
+
# A {NetworkInterface} object or network interface id string to
|
142
|
+
# attach the route to.
|
143
|
+
#
|
144
|
+
# @return [nil]
|
145
|
+
#
|
146
|
+
def create_route destination_cidr_block, options = {}
|
147
|
+
client.create_route(route_options(destination_cidr_block, options))
|
148
|
+
nil
|
149
|
+
end
|
150
|
+
|
151
|
+
# Replaces an existing route within a route table in a VPC.
|
152
|
+
# @param (see #create_route)
|
153
|
+
# @option (see #create_route)
|
154
|
+
# @return [nil]
|
155
|
+
def replace_route destination_cidr_block, options = {}
|
156
|
+
client.replace_route(route_options(destination_cidr_block, options))
|
157
|
+
nil
|
158
|
+
end
|
159
|
+
|
160
|
+
# @param [String] destination_cidr_block The CIDR block address of the
|
161
|
+
# route to delete.
|
162
|
+
# @return [nil]
|
163
|
+
def delete_route destination_cidr_block
|
164
|
+
client.delete_route(route_options(destination_cidr_block))
|
165
|
+
nil
|
166
|
+
end
|
167
|
+
|
168
|
+
# Deletes this route table. The route table must not be
|
169
|
+
# associated with a subnet. You can't delete the main route table.
|
170
|
+
# @return [nil]
|
171
|
+
def delete
|
172
|
+
client.delete_route_table(:route_table_id => route_table_id)
|
173
|
+
nil
|
174
|
+
end
|
175
|
+
|
176
|
+
protected
|
177
|
+
|
178
|
+
def route_options destination_cidr_block, options = {}
|
179
|
+
|
180
|
+
client_opts = {}
|
181
|
+
client_opts[:route_table_id] = route_table_id
|
182
|
+
client_opts[:destination_cidr_block] = destination_cidr_block
|
183
|
+
|
184
|
+
if gateway = options[:internet_gateway]
|
185
|
+
gateway = gateway.id if gateway.is_a?(InternetGateway)
|
186
|
+
client_opts[:gateway_id] = gateway
|
187
|
+
end
|
188
|
+
|
189
|
+
if instance = options[:instance]
|
190
|
+
instance = instance.id if instance.is_a?(Instance)
|
191
|
+
client_opts[:instance_id] = instance
|
192
|
+
end
|
193
|
+
|
194
|
+
if interface = options[:network_interface]
|
195
|
+
interface = interface.id if interface.is_a?(NetworkInterface)
|
196
|
+
client_opts[:network_interface_id] = interface
|
197
|
+
end
|
198
|
+
|
199
|
+
client_opts
|
200
|
+
|
201
|
+
end
|
202
|
+
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
@@ -0,0 +1,119 @@
|
|
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 RouteTable < Resource
|
17
|
+
|
18
|
+
# Represents the association between a {RouteTable} and a {Subnet}.
|
19
|
+
#
|
20
|
+
# You can get a route table association 2 ways:
|
21
|
+
#
|
22
|
+
# * enumerating associations from a route table
|
23
|
+
# * Asking a subnet for its route table association
|
24
|
+
#
|
25
|
+
# ## Enumerating Associations
|
26
|
+
#
|
27
|
+
# Given a route table:
|
28
|
+
#
|
29
|
+
# route_table.associations.each do |assoc|
|
30
|
+
# if assoc.main? # main association does not have a subnet
|
31
|
+
# puts "#{assoc.id} : main association"
|
32
|
+
# else
|
33
|
+
# puts "#{assoc.id} : #{assoc.subnet.id}"
|
34
|
+
# end
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# ## Getting a Subnet Route Table Association
|
38
|
+
#
|
39
|
+
# All subnets are associated with a route table. If the association
|
40
|
+
# was never explicitly created, then they are associated by default
|
41
|
+
# with the main route table.
|
42
|
+
#
|
43
|
+
# subnet.route_table_association #=> AWS::EC2::RouteTable::Association
|
44
|
+
#
|
45
|
+
# subnet.route_table_association.main? #=> true/false
|
46
|
+
#
|
47
|
+
# ## Creating and Replacing a Route Table Association
|
48
|
+
#
|
49
|
+
# To replace a route table association start at the subnet end:
|
50
|
+
#
|
51
|
+
# subnet.route_table = some_other_route_table
|
52
|
+
#
|
53
|
+
# If this route table is associated (by default) to the main route
|
54
|
+
# table via the main (default) association a new association is created.
|
55
|
+
# If it was previously associated directly to a different route table
|
56
|
+
# then that association will be repalced.
|
57
|
+
#
|
58
|
+
# ## Deleting an Association
|
59
|
+
#
|
60
|
+
# You can delete all but the main route table association. When you
|
61
|
+
# delete an association, the subnet becomes associated with the
|
62
|
+
# main route table.
|
63
|
+
#
|
64
|
+
# # delete all explicit route table associations -- as a result
|
65
|
+
# # all subnets will default to the main route table
|
66
|
+
# vpc.subnets.each do |subnet|
|
67
|
+
# assoc = subnet.route_table_association
|
68
|
+
# assoc.delete unless assoc.main?
|
69
|
+
# end
|
70
|
+
#
|
71
|
+
class Association
|
72
|
+
|
73
|
+
# @api private
|
74
|
+
def initialize route_table, association_id, subnet_id
|
75
|
+
@route_table = route_table
|
76
|
+
@association_id = association_id
|
77
|
+
if subnet_id
|
78
|
+
@main = false
|
79
|
+
@subnet = Subnet.new(subnet_id,
|
80
|
+
:config => route_table.config)
|
81
|
+
else
|
82
|
+
@main = true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# @return [String] An identifier representing the association
|
87
|
+
# between the network ACL and subnet.
|
88
|
+
attr_reader :association_id
|
89
|
+
|
90
|
+
alias_method :id, :association_id
|
91
|
+
|
92
|
+
# @return [RouteTable]
|
93
|
+
attr_reader :route_table
|
94
|
+
|
95
|
+
# @return [Subnet,nil] Returns the subnet this association belongs.
|
96
|
+
# If this is the main (default) association, then this method
|
97
|
+
# returns nil.
|
98
|
+
attr_reader :subnet
|
99
|
+
|
100
|
+
# @return [Boolean] Returns true if this association is the main
|
101
|
+
# (default) association for all subnets within this route table's
|
102
|
+
# VPC.
|
103
|
+
attr_reader :main
|
104
|
+
|
105
|
+
alias_method :main?, :main
|
106
|
+
|
107
|
+
# Deletes the association between the route table and the subnet
|
108
|
+
# @return [nil]
|
109
|
+
def delete
|
110
|
+
route_table.client.disassociate_route_table(
|
111
|
+
:association_id => association_id)
|
112
|
+
nil
|
113
|
+
end
|
114
|
+
alias_method :disassociate, :delete
|
115
|
+
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,119 @@
|
|
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 a single route in a {RouteTable}.
|
18
|
+
#
|
19
|
+
# # enumerating routes within a route table
|
20
|
+
# ec2 = AWS::EC2.new
|
21
|
+
# route_table = ec2.route_tables.first
|
22
|
+
# route_table.routes.each do |route|
|
23
|
+
# # ...
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
class RouteTable < Resource
|
27
|
+
class Route
|
28
|
+
|
29
|
+
def initialize route_table, details
|
30
|
+
|
31
|
+
@route_table = route_table
|
32
|
+
|
33
|
+
@destination_cidr_block = details.destination_cidr_block
|
34
|
+
|
35
|
+
if details[:gateway_id]
|
36
|
+
@internet_gateway = InternetGateway.new(
|
37
|
+
details[:gateway_id],
|
38
|
+
:config => route_table.config)
|
39
|
+
end
|
40
|
+
|
41
|
+
if details[:instance_id]
|
42
|
+
@instance = Instance.new(details[:instance_id],
|
43
|
+
:vpc_id => route_table.vpc_id,
|
44
|
+
:owner_id => details[:instance_owner_id],
|
45
|
+
:config => route_table.config)
|
46
|
+
end
|
47
|
+
|
48
|
+
if details[:network_interface_id]
|
49
|
+
@network_interface = NetworkInterface.new(
|
50
|
+
details[:network_interface_id],
|
51
|
+
:vpc_id => route_table.vpc_id,
|
52
|
+
:config => route_table.config)
|
53
|
+
end
|
54
|
+
|
55
|
+
@target = (internet_gateway || instance || network_interface)
|
56
|
+
|
57
|
+
@origin = { 'CreateRoute' => :create_route, 'CreateRouteTable' => :create_route_table, 'EnableVgwRoutePropagation' => :enable_vgw_route_propagation }[details.origin]
|
58
|
+
|
59
|
+
@state = details.state.to_sym
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
# @return [RouteTable]
|
64
|
+
attr_reader :route_table
|
65
|
+
|
66
|
+
# @return [String] destination_cidr_block
|
67
|
+
attr_reader :destination_cidr_block
|
68
|
+
|
69
|
+
alias_method :cidr_block, :destination_cidr_block
|
70
|
+
|
71
|
+
# @return [InternetGateway,nil]
|
72
|
+
attr_reader :internet_gateway
|
73
|
+
|
74
|
+
# @return [Instance,nil]
|
75
|
+
attr_reader :instance
|
76
|
+
|
77
|
+
# @return [NetworkInterface,nil]
|
78
|
+
attr_reader :network_interface
|
79
|
+
|
80
|
+
# @return [Gateway,Instance,NetworkInterface] Returns the target
|
81
|
+
# of this route table. It will be a gateway id, instance or a
|
82
|
+
# network interface.
|
83
|
+
attr_reader :target
|
84
|
+
|
85
|
+
# @return [Symbol] Returns the origin (:create_route,
|
86
|
+
# :create_route_table or :enable_vgw_route_propagation)
|
87
|
+
attr_reader :origin
|
88
|
+
|
89
|
+
# @return [Symbol] Returns the state (:active or :blackhole).
|
90
|
+
attr_reader :state
|
91
|
+
|
92
|
+
# @param [Hash] options
|
93
|
+
#
|
94
|
+
# @option options [Gateway,String] :gateway A gateway (object or
|
95
|
+
# string id) to attach the route to.
|
96
|
+
#
|
97
|
+
# @option options [Instance,String] :instance An instance (object
|
98
|
+
# or string id) to attach the route to.
|
99
|
+
#
|
100
|
+
# @option options [NetworkInterface,String] :network_interface
|
101
|
+
# A network interface (object or string id) to attach the route
|
102
|
+
# to.
|
103
|
+
#
|
104
|
+
# @return [nil]
|
105
|
+
#
|
106
|
+
def replace options = {}
|
107
|
+
route_table.replace_route(destination_cidr_block, options)
|
108
|
+
end
|
109
|
+
|
110
|
+
# Deletes this route.
|
111
|
+
# @return [nil]
|
112
|
+
def delete
|
113
|
+
route_table.delete_route(destination_cidr_block)
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,72 @@
|
|
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 RouteTableCollection < Collection
|
18
|
+
|
19
|
+
include TaggedCollection
|
20
|
+
include Core::Collection::Simple
|
21
|
+
|
22
|
+
# Creates a route table.
|
23
|
+
#
|
24
|
+
# @param [Hash] options
|
25
|
+
#
|
26
|
+
# @option options [VPC,String] :vpc The vpc or vpc id of where you want
|
27
|
+
# to create the route table.
|
28
|
+
#
|
29
|
+
# @return [RouteTable]
|
30
|
+
#
|
31
|
+
def create options = {}
|
32
|
+
|
33
|
+
client_opts = {}
|
34
|
+
client_opts[:vpc_id] = vpc_id_option(options)
|
35
|
+
|
36
|
+
resp = client.create_route_table(client_opts)
|
37
|
+
|
38
|
+
RouteTable.new_from(:create_route_table, resp.route_table,
|
39
|
+
resp.route_table.route_table_id, :config => config)
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
# @param [String] route_table_id
|
44
|
+
# @return [RouteTable]
|
45
|
+
def [] route_table_id
|
46
|
+
RouteTable.new(route_table_id, :config => config)
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [RouteTable] Returns the main (default) route table.
|
50
|
+
# This route table is automatically assigned to new subnets
|
51
|
+
# and can not be deleted.
|
52
|
+
def main_route_table
|
53
|
+
@main = AWS.memoize { self.find {|rt| rt.main? } } if @main.nil?
|
54
|
+
@main
|
55
|
+
end
|
56
|
+
|
57
|
+
protected
|
58
|
+
def _each_item options = {}, &block
|
59
|
+
response = filtered_request(:describe_route_tables, options, &block)
|
60
|
+
response.route_table_set.each do |t|
|
61
|
+
|
62
|
+
route_table = RouteTable.new_from(:describe_route_tables, t,
|
63
|
+
t.route_table_id, :config => config)
|
64
|
+
|
65
|
+
yield(route_table)
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|