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,163 @@
|
|
|
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/core'
|
|
15
|
+
require 'aws/auto_scaling/config'
|
|
16
|
+
|
|
17
|
+
module AWS
|
|
18
|
+
|
|
19
|
+
# This class is the starting point for working with Auto Scaling.
|
|
20
|
+
#
|
|
21
|
+
# To use Auto Scaling you must first
|
|
22
|
+
# [sign up here](http://aws.amazon.com/autoscaling/).
|
|
23
|
+
#
|
|
24
|
+
# For more information about Auto Scaling:
|
|
25
|
+
#
|
|
26
|
+
# * [Auto Scaling](http://aws.amazon.com/autoscaling/)
|
|
27
|
+
# * [Auto Scaling Documentation](http://aws.amazon.com/documentation/autoscaling/)
|
|
28
|
+
#
|
|
29
|
+
# # Credentials
|
|
30
|
+
#
|
|
31
|
+
# You can setup default credentials for all AWS services via
|
|
32
|
+
# AWS.config:
|
|
33
|
+
#
|
|
34
|
+
# AWS.config(
|
|
35
|
+
# :access_key_id => 'YOUR_ACCESS_KEY_ID',
|
|
36
|
+
# :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
|
|
37
|
+
#
|
|
38
|
+
# Or you can set them directly on the AWS::AutoScaling interface:
|
|
39
|
+
#
|
|
40
|
+
# auto_scaling = AWS::AutoScaling.new(
|
|
41
|
+
# :access_key_id => 'YOUR_ACCESS_KEY_ID',
|
|
42
|
+
# :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
|
|
43
|
+
#
|
|
44
|
+
# # Launch Configurations
|
|
45
|
+
#
|
|
46
|
+
# You need to create a launch configuration before you can create
|
|
47
|
+
# an Auto Scaling Group.
|
|
48
|
+
#
|
|
49
|
+
# # needs a name, image id, and instance type
|
|
50
|
+
# launch_config = auto_scaling.launch_configurations.create(
|
|
51
|
+
# 'launch-config-name', 'ami-12345', 'm1.small')
|
|
52
|
+
#
|
|
53
|
+
# If you have previously created a launch configuration you can
|
|
54
|
+
# reference using the {LaunchConfigurationCollection}.
|
|
55
|
+
#
|
|
56
|
+
# launch_config = auto_scaling.launch_configurations['launch-config-name']
|
|
57
|
+
#
|
|
58
|
+
# # Auto Scaling Groups
|
|
59
|
+
#
|
|
60
|
+
# Given a launch configuration, you can now create an Auto Scaling {Group}.
|
|
61
|
+
#
|
|
62
|
+
# group = auto_scaling.groups.create('group-name',
|
|
63
|
+
# :launch_configuration => launch_config,
|
|
64
|
+
# :availability_zones => %w(us-west-2a us-west-2b),
|
|
65
|
+
# :min_size => 1,
|
|
66
|
+
# :max_size => 4)
|
|
67
|
+
#
|
|
68
|
+
# @!attribute [r] client
|
|
69
|
+
# @return [Client] the low-level AutoScaling client object
|
|
70
|
+
class AutoScaling
|
|
71
|
+
|
|
72
|
+
autoload :Activity, 'aws/auto_scaling/activity'
|
|
73
|
+
autoload :ActivityCollection, 'aws/auto_scaling/activity_collection'
|
|
74
|
+
autoload :Client, 'aws/auto_scaling/client'
|
|
75
|
+
autoload :Errors, 'aws/auto_scaling/errors'
|
|
76
|
+
autoload :Group, 'aws/auto_scaling/group'
|
|
77
|
+
autoload :GroupCollection, 'aws/auto_scaling/group_collection'
|
|
78
|
+
autoload :GroupOptions, 'aws/auto_scaling/group_options'
|
|
79
|
+
autoload :Instance, 'aws/auto_scaling/instance'
|
|
80
|
+
autoload :InstanceCollection, 'aws/auto_scaling/instance_collection'
|
|
81
|
+
autoload :LaunchConfiguration, 'aws/auto_scaling/launch_configuration'
|
|
82
|
+
autoload :LaunchConfigurationCollection, 'aws/auto_scaling/launch_configuration_collection'
|
|
83
|
+
autoload :NotificationConfiguration, 'aws/auto_scaling/notification_configuration'
|
|
84
|
+
autoload :NotificationConfigurationCollection, 'aws/auto_scaling/notification_configuration_collection'
|
|
85
|
+
autoload :ScalingPolicy, 'aws/auto_scaling/scaling_policy'
|
|
86
|
+
autoload :ScalingPolicyCollection, 'aws/auto_scaling/scaling_policy_collection'
|
|
87
|
+
autoload :ScalingPolicyOptions, 'aws/auto_scaling/scaling_policy_options'
|
|
88
|
+
autoload :ScheduledAction, 'aws/auto_scaling/scheduled_action'
|
|
89
|
+
autoload :ScheduledActionCollection, 'aws/auto_scaling/scheduled_action_collection'
|
|
90
|
+
autoload :Tag, 'aws/auto_scaling/tag'
|
|
91
|
+
autoload :TagCollection, 'aws/auto_scaling/tag_collection'
|
|
92
|
+
|
|
93
|
+
include Core::ServiceInterface
|
|
94
|
+
|
|
95
|
+
endpoint_prefix 'autoscaling'
|
|
96
|
+
|
|
97
|
+
# @return [LaunchConfigurationCollection]
|
|
98
|
+
def launch_configurations
|
|
99
|
+
LaunchConfigurationCollection.new(:config => config)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# @return [GroupCollection]
|
|
103
|
+
def groups
|
|
104
|
+
GroupCollection.new(:config => config)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# @return [TagCollection]
|
|
108
|
+
def tags
|
|
109
|
+
TagCollection.new(:config => config)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# @return [NotificationConfigurationCollection]
|
|
113
|
+
def notification_configurations
|
|
114
|
+
NotificationConfigurationCollection.new(:config => config)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# @return [AutoScaling::InstancesCollection] Returns a collection of
|
|
118
|
+
# {AutoScaling::Instance} objects. Each of these is a small
|
|
119
|
+
# wrapper around an {EC2::Instance} with additional attributes.
|
|
120
|
+
def instances
|
|
121
|
+
InstanceCollection.new(:config => config)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# @return [ActivityCollection]
|
|
125
|
+
def activities
|
|
126
|
+
ActivityCollection.new(:config => config)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# @return [ScheduledActionCollection]
|
|
130
|
+
def scheduled_actions
|
|
131
|
+
ScheduledActionCollection.new(:config => config)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Returns a list of all notification types that are supported by
|
|
135
|
+
# Auto Scaling.
|
|
136
|
+
# @return [Array<String>]
|
|
137
|
+
def notification_types
|
|
138
|
+
resp = client.describe_auto_scaling_notification_types
|
|
139
|
+
resp.auto_scaling_notification_types
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# @return [Array<String>] Returns the list of valid adjustment types.
|
|
143
|
+
def adjustment_types
|
|
144
|
+
client.describe_adjustment_types.adjustment_types.map(&:adjustment_type)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# @return [Array<String>] Returns the list of valid scaling process types.
|
|
148
|
+
def scaling_process_types
|
|
149
|
+
client.describe_scaling_process_types.processes.map(&:process_name)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @return [Array<String>] Returns the list of valid metric collection types.
|
|
153
|
+
def metric_collection_types
|
|
154
|
+
client.describe_metric_collection_types.metrics.map(&:metric)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# @return [Array<String>] Returns the list of valid metric granularities.
|
|
158
|
+
def metric_collection_granularities
|
|
159
|
+
client.describe_metric_collection_types.granularities.map(&:granularity)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
end
|
|
163
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
|
|
15
|
+
module AWS
|
|
16
|
+
class AutoScaling
|
|
17
|
+
|
|
18
|
+
# @attr_reader [String] auto_scaling_group_name
|
|
19
|
+
#
|
|
20
|
+
# @attr_reader [String] cause
|
|
21
|
+
#
|
|
22
|
+
# @attr_reader [nil,String] description
|
|
23
|
+
#
|
|
24
|
+
# @attr_reader [String] details
|
|
25
|
+
#
|
|
26
|
+
# @attr_reader [Time] start_time
|
|
27
|
+
#
|
|
28
|
+
# @attr_reader [nil,Time] end_time
|
|
29
|
+
#
|
|
30
|
+
# @attr_reader [Integer] progress
|
|
31
|
+
#
|
|
32
|
+
# @attr_reader [nil,String] status_code
|
|
33
|
+
#
|
|
34
|
+
# @attr_reader [nil,String] status_message
|
|
35
|
+
#
|
|
36
|
+
class Activity < Core::Resource
|
|
37
|
+
|
|
38
|
+
# @api private
|
|
39
|
+
def initialize activity_id, options = {}
|
|
40
|
+
@activity_id = activity_id
|
|
41
|
+
super
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @return [String]
|
|
45
|
+
attr_reader :activity_id
|
|
46
|
+
|
|
47
|
+
alias_method :id, :activity_id
|
|
48
|
+
|
|
49
|
+
attribute :auto_scaling_group_name, :static => true
|
|
50
|
+
|
|
51
|
+
attribute :cause, :static => true
|
|
52
|
+
|
|
53
|
+
attribute :description, :static => true
|
|
54
|
+
|
|
55
|
+
attribute :details
|
|
56
|
+
|
|
57
|
+
attribute :start_time, :static => true
|
|
58
|
+
|
|
59
|
+
attribute :end_time
|
|
60
|
+
|
|
61
|
+
attribute :progress
|
|
62
|
+
|
|
63
|
+
attribute :status_code
|
|
64
|
+
|
|
65
|
+
attribute :status_message
|
|
66
|
+
|
|
67
|
+
populates_from(:describe_scaling_activities) do |resp|
|
|
68
|
+
resp.activities.find {|a| a.activity_id == activity_id }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
populates_from(:terminate_instance_in_auto_scaling_group) do |resp|
|
|
72
|
+
resp.activity if resp.activity.activity_id == activity_id
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @return [Group]
|
|
76
|
+
def group
|
|
77
|
+
Group.new(auto_scaling_group_name, :config => config)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @return [Boolean]
|
|
81
|
+
def exists?
|
|
82
|
+
client_opts = {}
|
|
83
|
+
client_opts[:activity_ids] = [activity_id]
|
|
84
|
+
resp = client.describe_scaling_activities(client_opts)
|
|
85
|
+
!resp.activities.empty?
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
protected
|
|
89
|
+
|
|
90
|
+
def get_resource attr_name = nil
|
|
91
|
+
client_opts = {}
|
|
92
|
+
client_opts[:activity_ids] = [activity_id]
|
|
93
|
+
client.describe_scaling_activities(client_opts)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def resource_identifiers
|
|
97
|
+
[[:activity_id, activity_id]]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
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 AutoScaling
|
|
16
|
+
|
|
17
|
+
# Allows you to enumerate Auto Scaling activities
|
|
18
|
+
#
|
|
19
|
+
# Enumerating ALL activities:
|
|
20
|
+
#
|
|
21
|
+
# auto_scaling = AWS::AutoScaling.new
|
|
22
|
+
# auto_scaling.activities.each do |activity|
|
|
23
|
+
# # ...
|
|
24
|
+
# end
|
|
25
|
+
#
|
|
26
|
+
# Enumerating activities for a single Auto Scaling group:
|
|
27
|
+
#
|
|
28
|
+
# group = auto_scaling.groups['group-name']
|
|
29
|
+
# group.activities.each do |activity|
|
|
30
|
+
# # ...
|
|
31
|
+
# end
|
|
32
|
+
#
|
|
33
|
+
# If you know the id of an activity you can get a reference to it:
|
|
34
|
+
#
|
|
35
|
+
# activity = auto_scaling.activities['activity-id']
|
|
36
|
+
class ActivityCollection
|
|
37
|
+
|
|
38
|
+
include Core::Collection::WithLimitAndNextToken
|
|
39
|
+
|
|
40
|
+
# @api private
|
|
41
|
+
def initialize options = {}
|
|
42
|
+
@group = options[:group]
|
|
43
|
+
if @group
|
|
44
|
+
super(@group, options)
|
|
45
|
+
else
|
|
46
|
+
super
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @param [String] activity_id
|
|
51
|
+
# @return [Activity]
|
|
52
|
+
def [] activity_id
|
|
53
|
+
Activity.new(activity_id, :config => config)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
protected
|
|
57
|
+
|
|
58
|
+
def _each_item next_token, limit, options = {}, &block
|
|
59
|
+
|
|
60
|
+
options[:next_token] = next_token if next_token
|
|
61
|
+
options[:max_records] = limit if limit
|
|
62
|
+
options[:auto_scaling_group_name] = @group.name if @group
|
|
63
|
+
|
|
64
|
+
resp = client.describe_scaling_activities(options)
|
|
65
|
+
resp.activities.each do |details|
|
|
66
|
+
|
|
67
|
+
activity = Activity.new_from(
|
|
68
|
+
:describe_scaling_activities, details,
|
|
69
|
+
details.activity_id, :config => config)
|
|
70
|
+
|
|
71
|
+
yield(activity)
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
resp.data[:next_token]
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
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 AutoScaling
|
|
16
|
+
|
|
17
|
+
# Client class for Auto Scaling.
|
|
18
|
+
class Client < Core::QueryClient
|
|
19
|
+
|
|
20
|
+
API_VERSION= '2011-01-01'
|
|
21
|
+
|
|
22
|
+
signature_version :Version4, 'autoscaling'
|
|
23
|
+
|
|
24
|
+
# @api private
|
|
25
|
+
CACHEABLE_REQUESTS = Set[
|
|
26
|
+
:describe_adjustment_types,
|
|
27
|
+
:describe_auto_scaling_groups,
|
|
28
|
+
:describe_auto_scaling_instances,
|
|
29
|
+
:describe_auto_scaling_notification_types,
|
|
30
|
+
:describe_launch_configurations,
|
|
31
|
+
:describe_metric_collection_types,
|
|
32
|
+
:describe_notification_configurations,
|
|
33
|
+
:describe_policies,
|
|
34
|
+
:describe_scaling_activities,
|
|
35
|
+
:describe_scaling_process_types,
|
|
36
|
+
:describe_scheduled_actions,
|
|
37
|
+
:describe_tags,
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class Client::V20110101 < Client
|
|
43
|
+
|
|
44
|
+
define_client_methods('2011-01-01')
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -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 'AutoScaling', 'auto_scaling', 'autoscaling'
|
|
17
|
+
|
|
18
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
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 AutoScaling
|
|
16
|
+
module Errors
|
|
17
|
+
|
|
18
|
+
extend Core::LazyErrorClasses
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,421 @@
|
|
|
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 AutoScaling
|
|
16
|
+
|
|
17
|
+
# @attr_reader [String] arn
|
|
18
|
+
#
|
|
19
|
+
# @attr_reader [Array<String>] availability_zone_names
|
|
20
|
+
#
|
|
21
|
+
# @attr_reader [Time] created_time
|
|
22
|
+
#
|
|
23
|
+
# @attr_reader [Integer] default_cooldown
|
|
24
|
+
#
|
|
25
|
+
# @attr_reader [Integer] desired_capacity
|
|
26
|
+
#
|
|
27
|
+
# @attr_reader [Array<Hash>] enabled_metrics Returns a hash of enabled
|
|
28
|
+
# metric names (keys) and granularities (values).
|
|
29
|
+
#
|
|
30
|
+
# @attr_reader [Integer] health_check_grace_period
|
|
31
|
+
#
|
|
32
|
+
# @attr_reader [Symbol] health_check_type Returns :ec2 or :vpc.
|
|
33
|
+
#
|
|
34
|
+
# @attr_reader [String] launch_configuration_name
|
|
35
|
+
#
|
|
36
|
+
# @attr_reader [Array<String>] load_balancer_names
|
|
37
|
+
#
|
|
38
|
+
# @attr_reader [Integer] min_size
|
|
39
|
+
#
|
|
40
|
+
# @attr_reader [Integer] max_size
|
|
41
|
+
#
|
|
42
|
+
# @attr_reader [String,nil] placement_group
|
|
43
|
+
#
|
|
44
|
+
# @attr_reader [Hash] suspended_processes A hash of suspended process
|
|
45
|
+
# names (keys) and reasons (values).
|
|
46
|
+
#
|
|
47
|
+
class Group < Core::Resource
|
|
48
|
+
|
|
49
|
+
include GroupOptions
|
|
50
|
+
|
|
51
|
+
def initialize name, options = {}
|
|
52
|
+
@name = name
|
|
53
|
+
super
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @return [String]
|
|
57
|
+
attr_reader :name
|
|
58
|
+
|
|
59
|
+
attribute :auto_scaling_group_arn, :static => true
|
|
60
|
+
|
|
61
|
+
alias_method :arn, :auto_scaling_group_arn
|
|
62
|
+
|
|
63
|
+
attribute :availability_zone_names, :from => :availability_zones
|
|
64
|
+
|
|
65
|
+
attribute :created_time, :static => true
|
|
66
|
+
|
|
67
|
+
attribute :default_cooldown
|
|
68
|
+
|
|
69
|
+
attribute :desired_capacity
|
|
70
|
+
|
|
71
|
+
attribute :enabled_metrics do
|
|
72
|
+
translates_output do |metrics|
|
|
73
|
+
metrics.inject({}) do |hash,metric|
|
|
74
|
+
hash.merge(metric.metric => metric.granularity)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
attribute :health_check_grace_period
|
|
80
|
+
|
|
81
|
+
attribute :health_check_type, :to_sym => true
|
|
82
|
+
|
|
83
|
+
attribute :instances
|
|
84
|
+
|
|
85
|
+
protected :instances
|
|
86
|
+
|
|
87
|
+
attribute :launch_configuration_name
|
|
88
|
+
|
|
89
|
+
attribute :load_balancer_names, :static => true
|
|
90
|
+
|
|
91
|
+
attribute :min_size
|
|
92
|
+
|
|
93
|
+
attribute :max_size
|
|
94
|
+
|
|
95
|
+
attribute :placement_group
|
|
96
|
+
|
|
97
|
+
attribute :termination_policies
|
|
98
|
+
|
|
99
|
+
attribute :suspended_processes do
|
|
100
|
+
translates_output do |processes|
|
|
101
|
+
processes.inject({}) do |hash,process|
|
|
102
|
+
hash.merge(process.process_name => process.suspension_reason)
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
attribute :tag_details, :from => :tags
|
|
108
|
+
|
|
109
|
+
protected :tag_details
|
|
110
|
+
|
|
111
|
+
attribute :vpc_zone_identifier
|
|
112
|
+
|
|
113
|
+
protected :vpc_zone_identifier
|
|
114
|
+
|
|
115
|
+
populates_from(:describe_auto_scaling_groups) do |resp|
|
|
116
|
+
resp.auto_scaling_groups.find{|g| g.auto_scaling_group_name == name }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# @return [ScalingPolicyCollection]
|
|
120
|
+
def scaling_policies
|
|
121
|
+
ScalingPolicyCollection.new(self)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# @return [NotificationConfigurationCollection]
|
|
125
|
+
def notification_configurations
|
|
126
|
+
NotificationConfigurationCollection.new(:group => self)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# @return [ScheduledActionCollection]
|
|
130
|
+
def scheduled_actions
|
|
131
|
+
actions = ScheduledActionCollection.new(:config => config)
|
|
132
|
+
actions.filter(:group => self)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# @return [Tag]
|
|
136
|
+
def tags
|
|
137
|
+
tag_details.collect do |tag|
|
|
138
|
+
Tag.new(tag.to_hash.merge(:config => config))
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# @return [LaunchConfiguration]
|
|
143
|
+
def launch_configuration
|
|
144
|
+
LaunchConfiguration.new(launch_configuration_name, :config => config)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# @return [ActivityCollection]
|
|
148
|
+
def activities
|
|
149
|
+
ActivityCollection.new(:group => self)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @return [Array<AutoScaling::Instance>]
|
|
153
|
+
def auto_scaling_instances
|
|
154
|
+
instances.collect do |details|
|
|
155
|
+
Instance.new_from(
|
|
156
|
+
:describe_auto_scaling_groups,
|
|
157
|
+
details,
|
|
158
|
+
details.instance_id,
|
|
159
|
+
:auto_scaling_group_name => name, # not provided by the response
|
|
160
|
+
:config => config)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Returns a collection that represents the instances belonging to this
|
|
165
|
+
# Auto Scaling group. You can use this collection to further refine
|
|
166
|
+
# the instances you are interested in:
|
|
167
|
+
#
|
|
168
|
+
# group.ec2_instances.filter('availability-zone', 'us-west-2a').each do |i|
|
|
169
|
+
# puts instance.id
|
|
170
|
+
# end
|
|
171
|
+
#
|
|
172
|
+
# @return [EC2::InstanceCollection] Returns an instance collection
|
|
173
|
+
# (without making a request) that represents the instances
|
|
174
|
+
# belonging to this Auto Scaling group.
|
|
175
|
+
#
|
|
176
|
+
def ec2_instances
|
|
177
|
+
instances = EC2::InstanceCollection.new(:config => config)
|
|
178
|
+
instances.filter('tag:aws:autoscaling:groupName', name)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# @return [Array<EC2::Subnet>]
|
|
182
|
+
def subnets
|
|
183
|
+
vpc_zone_identifier.to_s.split(/,/).collect do |subnet_id|
|
|
184
|
+
EC2::Subnet.new(subnet_id, :config => config)
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# @return [Array<EC2::AvailabilityZone>]
|
|
189
|
+
def availability_zones
|
|
190
|
+
availability_zone_names.collect do |az_name|
|
|
191
|
+
EC2::AvailabilityZone.new(az_name, :config => config)
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
# @return [Array,<ELB::LoadBalancer>]
|
|
196
|
+
def load_balancers
|
|
197
|
+
load_balancer_names.collect do |name|
|
|
198
|
+
ELB::LoadBalancer.new(name, :config => config)
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# Adjusts the desired size of the Auto Scaling group by initiating
|
|
203
|
+
# scaling activities. When reducing the size of the group, it is
|
|
204
|
+
# not possible to define which Amazon EC2 instances will be
|
|
205
|
+
# terminated. This applies to any Auto Scaling decisions that might
|
|
206
|
+
# result in terminating instances.
|
|
207
|
+
#
|
|
208
|
+
# @param [Integer] capacity The new capacity setting for this Auto
|
|
209
|
+
# Scaling group.
|
|
210
|
+
#
|
|
211
|
+
# @param [Hash] options
|
|
212
|
+
#
|
|
213
|
+
# @option options [Boolean] :honor_cooldown (false)
|
|
214
|
+
#
|
|
215
|
+
# @return [nil]
|
|
216
|
+
#
|
|
217
|
+
def set_desired_capacity capacity, options = {}
|
|
218
|
+
client_opts = {}
|
|
219
|
+
client_opts[:auto_scaling_group_name] = name
|
|
220
|
+
client_opts[:desired_capacity] = capacity
|
|
221
|
+
client_opts[:honor_cooldown] = options[:honor_cooldown] == true
|
|
222
|
+
client.set_desired_capacity(client_opts)
|
|
223
|
+
nil
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# Suspends processes for this Auto Scaling group.
|
|
227
|
+
#
|
|
228
|
+
# # suspend two processes by name
|
|
229
|
+
# auto_scaling_group.suspend_processes 'Launch', 'AZRebalance'
|
|
230
|
+
#
|
|
231
|
+
# @param [Array<String>] processes A list of process to suspend.
|
|
232
|
+
#
|
|
233
|
+
# @return [nil]
|
|
234
|
+
#
|
|
235
|
+
def suspend_processes *processes
|
|
236
|
+
client_opts = {}
|
|
237
|
+
client_opts[:auto_scaling_group_name] = name
|
|
238
|
+
client_opts[:scaling_processes] = processes.flatten
|
|
239
|
+
client.suspend_processes(client_opts)
|
|
240
|
+
nil
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
# Suspends all processes for this Auto Scaling group.
|
|
244
|
+
# @return [nil]
|
|
245
|
+
def suspend_all_processes
|
|
246
|
+
suspend_processes
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
# Resumes processes for this Auto Scaling group.
|
|
250
|
+
#
|
|
251
|
+
# # resume two processes by name
|
|
252
|
+
# auto_scaling_group.suspend_processes 'Launch', 'AZRebalance'
|
|
253
|
+
#
|
|
254
|
+
# @param [Array<String>] processes A list of process to resume.
|
|
255
|
+
#
|
|
256
|
+
# @return [nil]
|
|
257
|
+
#
|
|
258
|
+
def resume_processes *processes
|
|
259
|
+
client_opts = {}
|
|
260
|
+
client_opts[:auto_scaling_group_name] = name
|
|
261
|
+
client_opts[:scaling_processes] = processes.flatten
|
|
262
|
+
client.resume_processes(client_opts)
|
|
263
|
+
nil
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
# Resumes all processes for this Auto Scaling group.
|
|
267
|
+
# @return [nil]
|
|
268
|
+
def resume_all_processes
|
|
269
|
+
resume_processes
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
# @param [Array<String>] metrics A list of metrics to collect.
|
|
273
|
+
# @return [nil]
|
|
274
|
+
def enable_metrics_collection *metrics
|
|
275
|
+
client_opts = {}
|
|
276
|
+
client_opts[:auto_scaling_group_name] = name
|
|
277
|
+
client_opts[:granularity] = '1Minute'
|
|
278
|
+
client_opts[:metrics] = metrics.flatten
|
|
279
|
+
client.enable_metrics_collection(client_opts)
|
|
280
|
+
nil
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
# Enables all metrics collection for the Auto Scaling group.
|
|
284
|
+
# @return [nil]
|
|
285
|
+
def enable_all_metrics_collection
|
|
286
|
+
enable_metrics_collection
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
# @param [Array<String>] metrics A list of metrics to collect.
|
|
290
|
+
# @return [nil]
|
|
291
|
+
def disable_metrics_collection *metrics
|
|
292
|
+
client_opts = {}
|
|
293
|
+
client_opts[:auto_scaling_group_name] = name
|
|
294
|
+
client_opts[:metrics] = metrics.flatten
|
|
295
|
+
client.disable_metrics_collection(client_opts)
|
|
296
|
+
nil
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
# Disables all metrics collection for the Auto Scaling group.
|
|
300
|
+
# @return [nil]
|
|
301
|
+
def disable_all_metrics_collection
|
|
302
|
+
disable_metrics_collection
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
# Update one or more attributes on the Auto Scaling group.
|
|
306
|
+
#
|
|
307
|
+
# @param (see GroupOptions#group_options)
|
|
308
|
+
#
|
|
309
|
+
# @option (see GroupOptions#group_options)
|
|
310
|
+
#
|
|
311
|
+
# @return [nil]
|
|
312
|
+
#
|
|
313
|
+
def update options = {}
|
|
314
|
+
|
|
315
|
+
group_opts = group_options(options)
|
|
316
|
+
|
|
317
|
+
# tags must be updated using a separate request from the
|
|
318
|
+
# other attributes, *sigh*
|
|
319
|
+
if tags = group_opts.delete(:tags)
|
|
320
|
+
tags.map(&:to_hash).each do |tag|
|
|
321
|
+
tag[:resource_type] = 'auto-scaling-group'
|
|
322
|
+
tag[:resource_id] = name
|
|
323
|
+
end
|
|
324
|
+
client.create_or_update_tags(:tags => tags)
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
unless group_opts.empty?
|
|
328
|
+
client_opts = group_opts.merge(:auto_scaling_group_name => name)
|
|
329
|
+
client.update_auto_scaling_group(client_opts)
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
nil
|
|
333
|
+
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
# Deletes specific tags from this Auto Scaling group.
|
|
337
|
+
#
|
|
338
|
+
# group.delete_tags([
|
|
339
|
+
# { :key => 'role', :value => 'webserver' },
|
|
340
|
+
# ])
|
|
341
|
+
#
|
|
342
|
+
# You may also pass {Tag} objects.
|
|
343
|
+
#
|
|
344
|
+
# @param [Array<Tag,Hash>] tags An array of {Tag} objects or
|
|
345
|
+
# tag hashes to remove. If you pass hashes they should have
|
|
346
|
+
# the following keys:
|
|
347
|
+
# * `:key`
|
|
348
|
+
# * `:value`
|
|
349
|
+
# * `:propagate_at_launch`
|
|
350
|
+
#
|
|
351
|
+
# @return [nil]
|
|
352
|
+
#
|
|
353
|
+
def delete_tags *tags
|
|
354
|
+
tags = tags.flatten.collect do |tag|
|
|
355
|
+
tag.to_hash.merge(
|
|
356
|
+
:resource_type => 'auto-scaling-group',
|
|
357
|
+
:resource_id => name)
|
|
358
|
+
end
|
|
359
|
+
client.delete_tags(:tags => tags)
|
|
360
|
+
nil
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
# Removes all tags from this Auto Scaling group.
|
|
364
|
+
# @return [nil]
|
|
365
|
+
def delete_all_tags
|
|
366
|
+
delete_tags(self.tags)
|
|
367
|
+
nil
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
# Deletes the Auto Scaling group. If you pass `:force` as true
|
|
371
|
+
# then all the instances associated with this group will also
|
|
372
|
+
# be terminated.
|
|
373
|
+
#
|
|
374
|
+
# @see #delete!
|
|
375
|
+
#
|
|
376
|
+
# @param [Hash] options
|
|
377
|
+
#
|
|
378
|
+
# @option options [Boolean] :force (false) When true, the Auto Scaling
|
|
379
|
+
# group will be deleted along with all instances associated with
|
|
380
|
+
# the group, without waiting for all instances to be terminated.
|
|
381
|
+
#
|
|
382
|
+
# @return [nil]
|
|
383
|
+
#
|
|
384
|
+
def delete options = {}
|
|
385
|
+
client_opts = {}
|
|
386
|
+
client_opts[:force_delete] = options[:force] == true
|
|
387
|
+
client_opts[:auto_scaling_group_name] = name
|
|
388
|
+
client.delete_auto_scaling_group(client_opts)
|
|
389
|
+
nil
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
# Deletes the Auto Scaling group along with all instances
|
|
393
|
+
# associated with the group, without waiting for all instances
|
|
394
|
+
# to be terminated.
|
|
395
|
+
# @return [nil]
|
|
396
|
+
def delete!
|
|
397
|
+
delete(:force => true)
|
|
398
|
+
nil
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
# @return [Boolean]
|
|
402
|
+
def exists?
|
|
403
|
+
client_opts = {}
|
|
404
|
+
client_opts[:auto_scaling_group_names] = [name]
|
|
405
|
+
resp = client.describe_auto_scaling_groups(client_opts)
|
|
406
|
+
!resp.auto_scaling_groups.empty?
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
protected
|
|
410
|
+
|
|
411
|
+
def resource_identifiers
|
|
412
|
+
[[:name, name]]
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
def get_resource attr_name = nil
|
|
416
|
+
client.describe_auto_scaling_groups(:auto_scaling_group_names => [name])
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
end
|
|
420
|
+
end
|
|
421
|
+
end
|