aws-sdk 1.8.5 → 1.9.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 +1 -0
- data/README.rdoc +8 -0
- data/lib/aws-sdk.rb +39 -35
- data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
- data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
- data/lib/aws/auto_scaling.rb +44 -44
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +14 -15
- data/lib/aws/auto_scaling/client.rb +277 -277
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +35 -36
- data/lib/aws/auto_scaling/group_collection.rb +10 -10
- data/lib/aws/auto_scaling/group_options.rb +19 -19
- data/lib/aws/auto_scaling/instance.rb +27 -27
- data/lib/aws/auto_scaling/instance_collection.rb +10 -10
- data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
- data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
- data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
- data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
- data/lib/aws/auto_scaling/tag_collection.rb +30 -28
- data/lib/aws/cloud_formation.rb +95 -94
- data/lib/aws/cloud_formation/client.rb +136 -133
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +37 -37
- data/lib/aws/cloud_formation/stack_collection.rb +28 -27
- data/lib/aws/cloud_formation/stack_event.rb +9 -11
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +6 -6
- data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
- data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
- data/lib/aws/cloud_front.rb +21 -21
- data/lib/aws/cloud_front/client.rb +853 -652
- data/lib/aws/cloud_front/request.rb +3 -0
- data/lib/aws/cloud_search.rb +22 -22
- data/lib/aws/cloud_search/client.rb +322 -315
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_watch.rb +39 -39
- data/lib/aws/cloud_watch/alarm.rb +55 -37
- data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
- data/lib/aws/cloud_watch/client.rb +360 -146
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +15 -15
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
- data/lib/aws/cloud_watch/metric_collection.rb +16 -16
- data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
- data/lib/aws/core.rb +243 -225
- data/lib/aws/core/async_handle.rb +13 -13
- data/lib/aws/core/cacheable.rb +14 -15
- data/lib/aws/core/client.rb +40 -15
- data/lib/aws/core/collection.rb +42 -46
- data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
- data/lib/aws/core/collection/with_next_token.rb +1 -1
- data/lib/aws/core/configuration.rb +97 -133
- data/lib/aws/core/credential_providers.rb +16 -16
- data/lib/aws/core/data.rb +23 -23
- data/lib/aws/core/http/connection_pool.rb +348 -0
- data/lib/aws/core/http/net_http_handler.rb +17 -26
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +13 -19
- data/lib/aws/core/http/response.rb +2 -2
- data/lib/aws/core/lazy_error_classes.rb +17 -17
- data/lib/aws/core/log_formatter.rb +70 -104
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +4 -4
- data/lib/aws/core/page_result.rb +8 -8
- data/lib/aws/core/policy.rb +49 -49
- data/lib/aws/core/region.rb +72 -0
- data/lib/aws/core/region_collection.rb +106 -0
- data/lib/aws/core/resource.rb +5 -5
- data/lib/aws/core/response.rb +20 -17
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/service_interface.rb +24 -2
- data/lib/aws/core/signature/version_3.rb +2 -2
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +3 -4
- data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
- data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
- data/lib/aws/core/xml/stub.rb +9 -9
- data/lib/aws/data_pipeline.rb +21 -21
- data/lib/aws/data_pipeline/client.rb +189 -133
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/direct_connect.rb +74 -0
- data/lib/aws/direct_connect/client.rb +253 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/direct_connect/request.rb +27 -0
- data/lib/aws/dynamo_db.rb +71 -69
- data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
- data/lib/aws/dynamo_db/batch_get.rb +23 -23
- data/lib/aws/dynamo_db/batch_write.rb +43 -43
- data/lib/aws/dynamo_db/binary.rb +9 -9
- data/lib/aws/dynamo_db/client.rb +494 -509
- data/lib/aws/dynamo_db/client_base.rb +91 -0
- data/lib/aws/dynamo_db/client_v2.rb +825 -0
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +10 -10
- data/lib/aws/dynamo_db/item_collection.rb +75 -75
- data/lib/aws/dynamo_db/table.rb +85 -85
- data/lib/aws/dynamo_db/table_collection.rb +13 -13
- data/lib/aws/ec2.rb +132 -142
- data/lib/aws/ec2/attachment.rb +31 -36
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +4 -4
- data/lib/aws/ec2/client.rb +2272 -2125
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +6 -6
- data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
- data/lib/aws/ec2/elastic_ip.rb +15 -15
- data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
- data/lib/aws/ec2/export_task.rb +4 -4
- data/lib/aws/ec2/export_task_collection.rb +11 -11
- data/lib/aws/ec2/filtered_collection.rb +6 -8
- data/lib/aws/ec2/image.rb +46 -40
- data/lib/aws/ec2/image_collection.rb +44 -52
- data/lib/aws/ec2/instance.rb +64 -62
- data/lib/aws/ec2/instance_collection.rb +47 -50
- data/lib/aws/ec2/internet_gateway.rb +6 -6
- data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
- data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
- data/lib/aws/ec2/key_pair.rb +3 -3
- data/lib/aws/ec2/key_pair_collection.rb +12 -12
- data/lib/aws/ec2/network_acl.rb +39 -39
- data/lib/aws/ec2/network_acl/association.rb +2 -2
- data/lib/aws/ec2/network_acl/entry.rb +22 -22
- data/lib/aws/ec2/network_acl_collection.rb +2 -2
- data/lib/aws/ec2/network_interface.rb +13 -4
- data/lib/aws/ec2/network_interface/attachment.rb +3 -3
- data/lib/aws/ec2/network_interface_collection.rb +5 -5
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +6 -6
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
- data/lib/aws/ec2/resource_tag_collection.rb +5 -5
- data/lib/aws/ec2/route_table.rb +14 -14
- data/lib/aws/ec2/route_table/association.rb +22 -22
- data/lib/aws/ec2/route_table/route.rb +8 -8
- data/lib/aws/ec2/route_table_collection.rb +3 -3
- data/lib/aws/ec2/security_group.rb +39 -41
- data/lib/aws/ec2/security_group_collection.rb +19 -21
- data/lib/aws/ec2/snapshot.rb +3 -3
- data/lib/aws/ec2/snapshot_collection.rb +11 -12
- data/lib/aws/ec2/subnet.rb +2 -2
- data/lib/aws/ec2/subnet_collection.rb +17 -17
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +7 -7
- data/lib/aws/ec2/tagged_item.rb +10 -10
- data/lib/aws/ec2/volume.rb +16 -16
- data/lib/aws/ec2/volume_collection.rb +9 -12
- data/lib/aws/ec2/vpc.rb +6 -6
- data/lib/aws/ec2/vpc_collection.rb +10 -10
- data/lib/aws/ec2/vpn_connection.rb +4 -4
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
- data/lib/aws/elastic_beanstalk.rb +12 -12
- data/lib/aws/elastic_beanstalk/client.rb +376 -368
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_transcoder.rb +5 -5
- data/lib/aws/elastic_transcoder/client.rb +283 -283
- data/lib/aws/elastic_transcoder/config.rb +1 -1
- data/lib/aws/elasticache.rb +12 -12
- data/lib/aws/elasticache/client.rb +484 -479
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elb.rb +23 -23
- data/lib/aws/elb/availability_zone_collection.rb +34 -34
- data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
- data/lib/aws/elb/client.rb +153 -153
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +20 -25
- data/lib/aws/elb/listener.rb +3 -3
- data/lib/aws/elb/listener_collection.rb +8 -8
- data/lib/aws/elb/load_balancer.rb +15 -16
- data/lib/aws/elb/load_balancer_collection.rb +36 -24
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
- data/lib/aws/emr.rb +28 -26
- data/lib/aws/emr/client.rb +165 -149
- data/lib/aws/emr/config.rb +1 -1
- data/lib/aws/emr/instance_group.rb +1 -1
- data/lib/aws/emr/instance_group_collection.rb +1 -1
- data/lib/aws/emr/job_flow.rb +27 -26
- data/lib/aws/emr/job_flow_collection.rb +34 -34
- data/lib/aws/errors.rb +7 -7
- data/lib/aws/glacier.rb +21 -21
- data/lib/aws/glacier/archive_collection.rb +2 -2
- data/lib/aws/glacier/client.rb +139 -140
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/vault.rb +2 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/iam.rb +133 -144
- data/lib/aws/iam/access_key.rb +17 -17
- data/lib/aws/iam/access_key_collection.rb +22 -22
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +429 -420
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +2 -2
- data/lib/aws/iam/group.rb +8 -8
- data/lib/aws/iam/group_collection.rb +16 -16
- data/lib/aws/iam/group_policy_collection.rb +6 -6
- data/lib/aws/iam/group_user_collection.rb +3 -3
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +9 -9
- data/lib/aws/iam/policy_collection.rb +4 -4
- data/lib/aws/iam/resource.rb +2 -2
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +15 -15
- data/lib/aws/iam/signing_certificate.rb +29 -29
- data/lib/aws/iam/signing_certificate_collection.rb +23 -23
- data/lib/aws/iam/user.rb +33 -38
- data/lib/aws/iam/user_collection.rb +27 -27
- data/lib/aws/iam/user_group_collection.rb +3 -3
- data/lib/aws/iam/user_policy_collection.rb +6 -6
- data/lib/aws/iam/virtual_mfa_device.rb +12 -12
- data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
- data/lib/aws/import_export.rb +22 -21
- data/lib/aws/import_export/client.rb +47 -43
- data/lib/aws/ops_works.rb +5 -5
- data/lib/aws/ops_works/client.rb +484 -438
- data/lib/aws/ops_works/config.rb +1 -1
- data/lib/aws/rails.rb +34 -34
- data/lib/aws/rds.rb +18 -18
- data/lib/aws/rds/client.rb +1286 -1277
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +15 -4
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/record.rb +50 -24
- data/lib/aws/record/abstract_base.rb +52 -60
- data/lib/aws/record/attributes.rb +79 -79
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +69 -67
- data/lib/aws/record/errors.rb +21 -21
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +20 -21
- data/lib/aws/record/hash_model/attributes.rb +13 -15
- data/lib/aws/record/hash_model/finder_methods.rb +46 -46
- data/lib/aws/record/hash_model/scope.rb +31 -31
- data/lib/aws/record/model.rb +136 -136
- data/lib/aws/record/model/attributes.rb +57 -59
- data/lib/aws/record/model/finder_methods.rb +67 -67
- data/lib/aws/record/model/scope.rb +48 -49
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +23 -19
- data/lib/aws/record/validations.rb +253 -271
- data/lib/aws/record/validator.rb +3 -3
- data/lib/aws/record/validators/acceptance.rb +1 -3
- data/lib/aws/record/validators/block.rb +1 -3
- data/lib/aws/record/validators/confirmation.rb +1 -3
- data/lib/aws/record/validators/count.rb +2 -4
- data/lib/aws/record/validators/exclusion.rb +2 -4
- data/lib/aws/record/validators/format.rb +2 -4
- data/lib/aws/record/validators/inclusion.rb +1 -3
- data/lib/aws/record/validators/length.rb +5 -7
- data/lib/aws/record/validators/method.rb +1 -3
- data/lib/aws/record/validators/numericality.rb +6 -8
- data/lib/aws/record/validators/presence.rb +1 -3
- data/lib/aws/redshift.rb +14 -14
- data/lib/aws/redshift/client.rb +596 -592
- data/lib/aws/redshift/config.rb +1 -1
- data/lib/aws/route_53.rb +30 -30
- data/lib/aws/route_53/change_batch.rb +7 -7
- data/lib/aws/route_53/client.rb +188 -152
- data/lib/aws/route_53/hosted_zone.rb +4 -4
- data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
- data/lib/aws/route_53/resource_record_set.rb +10 -10
- data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
- data/lib/aws/s3.rb +79 -79
- data/lib/aws/s3/access_control_list.rb +44 -36
- data/lib/aws/s3/acl_options.rb +51 -51
- data/lib/aws/s3/bucket.rb +146 -146
- data/lib/aws/s3/bucket_collection.rb +21 -21
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
- data/lib/aws/s3/bucket_tag_collection.rb +4 -2
- data/lib/aws/s3/cipher_io.rb +5 -4
- data/lib/aws/s3/client.rb +89 -84
- data/lib/aws/s3/client/xml.rb +1 -1
- data/lib/aws/s3/config.rb +7 -1
- data/lib/aws/s3/cors_rule.rb +2 -0
- data/lib/aws/s3/cors_rule_collection.rb +42 -40
- data/lib/aws/s3/data_options.rb +16 -11
- data/lib/aws/s3/encryption_utils.rb +2 -2
- data/lib/aws/s3/errors.rb +7 -7
- data/lib/aws/s3/multipart_upload.rb +30 -33
- data/lib/aws/s3/multipart_upload_collection.rb +8 -6
- data/lib/aws/s3/object_collection.rb +35 -35
- data/lib/aws/s3/object_metadata.rb +6 -6
- data/lib/aws/s3/object_version.rb +4 -4
- data/lib/aws/s3/object_version_collection.rb +15 -15
- data/lib/aws/s3/policy.rb +2 -2
- data/lib/aws/s3/prefixed_collection.rb +9 -5
- data/lib/aws/s3/presigned_post.rb +39 -37
- data/lib/aws/s3/request.rb +11 -11
- data/lib/aws/s3/s3_object.rb +210 -200
- data/lib/aws/s3/tree.rb +25 -27
- data/lib/aws/s3/tree/child_collection.rb +3 -3
- data/lib/aws/s3/tree/leaf_node.rb +2 -2
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +13 -13
- data/lib/aws/simple_db.rb +83 -83
- data/lib/aws/simple_db/attribute.rb +9 -7
- data/lib/aws/simple_db/attribute_collection.rb +22 -13
- data/lib/aws/simple_db/client.rb +107 -107
- data/lib/aws/simple_db/config.rb +7 -1
- data/lib/aws/simple_db/consistent_read_option.rb +5 -5
- data/lib/aws/simple_db/domain.rb +4 -2
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +5 -5
- data/lib/aws/simple_db/errors.rb +9 -9
- data/lib/aws/simple_db/item.rb +5 -5
- data/lib/aws/simple_db/item_collection.rb +83 -81
- data/lib/aws/simple_db/item_data.rb +4 -4
- data/lib/aws/simple_db/put_attributes.rb +3 -3
- data/lib/aws/simple_email_service.rb +140 -140
- data/lib/aws/simple_email_service/client.rb +82 -76
- data/lib/aws/simple_email_service/config.rb +1 -2
- data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
- data/lib/aws/simple_email_service/identity.rb +8 -8
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_workflow.rb +106 -106
- data/lib/aws/simple_workflow/activity_task.rb +15 -22
- data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
- data/lib/aws/simple_workflow/activity_type.rb +23 -23
- data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
- data/lib/aws/simple_workflow/client.rb +1004 -956
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +5 -5
- data/lib/aws/simple_workflow/decision_task.rb +129 -129
- data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
- data/lib/aws/simple_workflow/domain.rb +11 -11
- data/lib/aws/simple_workflow/domain_collection.rb +26 -26
- data/lib/aws/simple_workflow/history_event.rb +32 -32
- data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
- data/lib/aws/simple_workflow/option_formatters.rb +5 -5
- data/lib/aws/simple_workflow/request.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +1 -1
- data/lib/aws/simple_workflow/type.rb +8 -8
- data/lib/aws/simple_workflow/type_collection.rb +15 -15
- data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
- data/lib/aws/simple_workflow/workflow_type.rb +27 -25
- data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
- data/lib/aws/sns.rb +25 -25
- data/lib/aws/sns/client.rb +55 -55
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/subscription.rb +7 -7
- data/lib/aws/sns/subscription_collection.rb +5 -5
- data/lib/aws/sns/topic.rb +49 -49
- data/lib/aws/sns/topic_collection.rb +2 -2
- data/lib/aws/sns/topic_subscription_collection.rb +5 -5
- data/lib/aws/sqs.rb +20 -20
- data/lib/aws/sqs/client.rb +78 -78
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +12 -12
- data/lib/aws/sqs/queue.rb +66 -67
- data/lib/aws/sqs/queue_collection.rb +16 -8
- data/lib/aws/sqs/received_message.rb +7 -6
- data/lib/aws/storage_gateway.rb +21 -21
- data/lib/aws/storage_gateway/client.rb +269 -202
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/sts.rb +10 -8
- data/lib/aws/sts/client.rb +35 -35
- data/lib/aws/sts/session.rb +3 -3
- data/lib/aws/version.rb +1 -2
- metadata +23 -21
- data/lib/aws/core/autoloader.rb +0 -64
- data/lib/net/http/connection_pool.rb +0 -226
- data/lib/net/http/connection_pool/connection.rb +0 -189
- data/lib/net/http/connection_pool/session.rb +0 -126
|
@@ -19,7 +19,7 @@ module AWS
|
|
|
19
19
|
# @attr_reader [Array<String>] availability_zone_names
|
|
20
20
|
#
|
|
21
21
|
# @attr_reader [Time] created_time
|
|
22
|
-
#
|
|
22
|
+
#
|
|
23
23
|
# @attr_reader [Integer] default_cooldown
|
|
24
24
|
#
|
|
25
25
|
# @attr_reader [Integer] desired_capacity
|
|
@@ -41,7 +41,7 @@ module AWS
|
|
|
41
41
|
#
|
|
42
42
|
# @attr_reader [String,nil] placement_group
|
|
43
43
|
#
|
|
44
|
-
# @attr_reader [Hash] suspended_processes A hash of suspended process
|
|
44
|
+
# @attr_reader [Hash] suspended_processes A hash of suspended process
|
|
45
45
|
# names (keys) and reasons (values).
|
|
46
46
|
#
|
|
47
47
|
class Group < Core::Resource
|
|
@@ -70,7 +70,7 @@ module AWS
|
|
|
70
70
|
|
|
71
71
|
attribute :enabled_metrics do
|
|
72
72
|
translates_output do |metrics|
|
|
73
|
-
metrics.inject({}) do |hash,metric|
|
|
73
|
+
metrics.inject({}) do |hash,metric|
|
|
74
74
|
hash.merge(metric.metric => metric.granularity)
|
|
75
75
|
end
|
|
76
76
|
end
|
|
@@ -81,7 +81,7 @@ module AWS
|
|
|
81
81
|
attribute :health_check_type, :to_sym => true
|
|
82
82
|
|
|
83
83
|
attribute :instances
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
protected :instances
|
|
86
86
|
|
|
87
87
|
attribute :launch_configuration_name
|
|
@@ -151,9 +151,9 @@ module AWS
|
|
|
151
151
|
def auto_scaling_instances
|
|
152
152
|
instances.collect do |details|
|
|
153
153
|
Instance.new_from(
|
|
154
|
-
:describe_auto_scaling_groups,
|
|
154
|
+
:describe_auto_scaling_groups,
|
|
155
155
|
details,
|
|
156
|
-
details.instance_id,
|
|
156
|
+
details.instance_id,
|
|
157
157
|
:auto_scaling_group_name => name, # not provided by the response
|
|
158
158
|
:config => config)
|
|
159
159
|
end
|
|
@@ -163,12 +163,12 @@ module AWS
|
|
|
163
163
|
# Auto Scaling group. You can use this collection to further refine
|
|
164
164
|
# the instances you are interested in:
|
|
165
165
|
#
|
|
166
|
-
#
|
|
167
|
-
#
|
|
168
|
-
#
|
|
166
|
+
# group.ec2_instances.filter('availability-zone', 'us-west-2a').each do |i|
|
|
167
|
+
# puts instance.id
|
|
168
|
+
# end
|
|
169
169
|
#
|
|
170
|
-
# @return [EC2::InstanceCollection] Returns an instance collection
|
|
171
|
-
# (without making a request) that represents the instances
|
|
170
|
+
# @return [EC2::InstanceCollection] Returns an instance collection
|
|
171
|
+
# (without making a request) that represents the instances
|
|
172
172
|
# belonging to this Auto Scaling group.
|
|
173
173
|
#
|
|
174
174
|
def ec2_instances
|
|
@@ -197,13 +197,13 @@ module AWS
|
|
|
197
197
|
end
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
-
# Adjusts the desired size of the Auto Scaling group by initiating
|
|
201
|
-
# scaling activities. When reducing the size of the group, it is
|
|
202
|
-
# not possible to define which Amazon EC2 instances will be
|
|
203
|
-
# terminated. This applies to any Auto Scaling decisions that might
|
|
200
|
+
# Adjusts the desired size of the Auto Scaling group by initiating
|
|
201
|
+
# scaling activities. When reducing the size of the group, it is
|
|
202
|
+
# not possible to define which Amazon EC2 instances will be
|
|
203
|
+
# terminated. This applies to any Auto Scaling decisions that might
|
|
204
204
|
# result in terminating instances.
|
|
205
205
|
#
|
|
206
|
-
# @param [Integer] capacity The new capacity setting for this Auto
|
|
206
|
+
# @param [Integer] capacity The new capacity setting for this Auto
|
|
207
207
|
# Scaling group.
|
|
208
208
|
#
|
|
209
209
|
# @param [Hash] options
|
|
@@ -223,9 +223,9 @@ module AWS
|
|
|
223
223
|
|
|
224
224
|
# Suspends processes for this Auto Scaling group.
|
|
225
225
|
#
|
|
226
|
-
#
|
|
227
|
-
#
|
|
228
|
-
#
|
|
226
|
+
# # suspend two processes by name
|
|
227
|
+
# auto_scaling_group.suspend_processes 'Launch', 'AZRebalance'
|
|
228
|
+
#
|
|
229
229
|
# @param [Array<String>] processes A list of process to suspend.
|
|
230
230
|
#
|
|
231
231
|
# @return [nil]
|
|
@@ -246,9 +246,9 @@ module AWS
|
|
|
246
246
|
|
|
247
247
|
# Resumes processes for this Auto Scaling group.
|
|
248
248
|
#
|
|
249
|
-
#
|
|
250
|
-
#
|
|
251
|
-
#
|
|
249
|
+
# # resume two processes by name
|
|
250
|
+
# auto_scaling_group.suspend_processes 'Launch', 'AZRebalance'
|
|
251
|
+
#
|
|
252
252
|
# @param [Array<String>] processes A list of process to resume.
|
|
253
253
|
#
|
|
254
254
|
# @return [nil]
|
|
@@ -310,7 +310,7 @@ module AWS
|
|
|
310
310
|
#
|
|
311
311
|
def update options = {}
|
|
312
312
|
|
|
313
|
-
group_opts = group_options(options)
|
|
313
|
+
group_opts = group_options(options)
|
|
314
314
|
|
|
315
315
|
# tags must be updated using a separate request from the
|
|
316
316
|
# other attributes, *sigh*
|
|
@@ -333,19 +333,18 @@ module AWS
|
|
|
333
333
|
|
|
334
334
|
# Deletes specific tags from this Auto Scaling group.
|
|
335
335
|
#
|
|
336
|
-
#
|
|
337
|
-
#
|
|
338
|
-
#
|
|
336
|
+
# group.delete_tags([
|
|
337
|
+
# { :key => 'role', :value => 'webserver' },
|
|
338
|
+
# ])
|
|
339
339
|
#
|
|
340
340
|
# You may also pass {Tag} objects.
|
|
341
341
|
#
|
|
342
342
|
# @param [Array<Tag,Hash>] tags An array of {Tag} objects or
|
|
343
343
|
# tag hashes to remove. If you pass hashes they should have
|
|
344
344
|
# the following keys:
|
|
345
|
-
#
|
|
346
|
-
#
|
|
347
|
-
#
|
|
348
|
-
# * +:propagate_at_launch+
|
|
345
|
+
# * `:key`
|
|
346
|
+
# * `:value`
|
|
347
|
+
# * `:propagate_at_launch`
|
|
349
348
|
#
|
|
350
349
|
# @return [nil]
|
|
351
350
|
#
|
|
@@ -366,7 +365,7 @@ module AWS
|
|
|
366
365
|
nil
|
|
367
366
|
end
|
|
368
367
|
|
|
369
|
-
# Deletes the Auto Scaling group. If you pass
|
|
368
|
+
# Deletes the Auto Scaling group. If you pass `:force` as true
|
|
370
369
|
# then all the instances associated with this group will also
|
|
371
370
|
# be terminated.
|
|
372
371
|
#
|
|
@@ -375,7 +374,7 @@ module AWS
|
|
|
375
374
|
# @param [Hash] options
|
|
376
375
|
#
|
|
377
376
|
# @option options [Boolean] :force (false) When true, the Auto Scaling
|
|
378
|
-
# group will be deleted along with all instances associated with
|
|
377
|
+
# group will be deleted along with all instances associated with
|
|
379
378
|
# the group, without waiting for all instances to be terminated.
|
|
380
379
|
#
|
|
381
380
|
# @return [nil]
|
|
@@ -388,8 +387,8 @@ module AWS
|
|
|
388
387
|
nil
|
|
389
388
|
end
|
|
390
389
|
|
|
391
|
-
# Deletes the Auto Scaling group along with all instances
|
|
392
|
-
# associated with the group, without waiting for all instances
|
|
390
|
+
# Deletes the Auto Scaling group along with all instances
|
|
391
|
+
# associated with the group, without waiting for all instances
|
|
393
392
|
# to be terminated.
|
|
394
393
|
# @return [nil]
|
|
395
394
|
def delete!
|
|
@@ -401,7 +400,7 @@ module AWS
|
|
|
401
400
|
def exists?
|
|
402
401
|
client_opts = {}
|
|
403
402
|
client_opts[:auto_scaling_group_names] = [name]
|
|
404
|
-
resp = client.describe_auto_scaling_groups(client_opts)
|
|
403
|
+
resp = client.describe_auto_scaling_groups(client_opts)
|
|
405
404
|
!resp.auto_scaling_groups.empty?
|
|
406
405
|
end
|
|
407
406
|
|
|
@@ -412,7 +411,7 @@ module AWS
|
|
|
412
411
|
end
|
|
413
412
|
|
|
414
413
|
def get_resource attr_name = nil
|
|
415
|
-
client.describe_auto_scaling_groups(:auto_scaling_group_names => [name])
|
|
414
|
+
client.describe_auto_scaling_groups(:auto_scaling_group_names => [name])
|
|
416
415
|
end
|
|
417
416
|
|
|
418
417
|
end
|
|
@@ -21,13 +21,13 @@ module AWS
|
|
|
21
21
|
|
|
22
22
|
# Creates an Auto Scaling Group.
|
|
23
23
|
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
# @param [String] name The name of the Auto Scaling group.
|
|
24
|
+
# group = auto_scaling.groups.create('group-name',
|
|
25
|
+
# :launch_configuration => 'launch-config-name',
|
|
26
|
+
# :availability_zones => %(us-west-2a us-west-2b),
|
|
27
|
+
# :min_size => 1,
|
|
28
|
+
# :max_size => 4)
|
|
29
|
+
#
|
|
30
|
+
# @param [String] name The name of the Auto Scaling group.
|
|
31
31
|
# Must be unique within the scope of your AWS account.
|
|
32
32
|
#
|
|
33
33
|
# @param [Hash] options
|
|
@@ -35,7 +35,7 @@ module AWS
|
|
|
35
35
|
# @option (see GroupOptions#group_options)
|
|
36
36
|
#
|
|
37
37
|
# @option options [Array<ELB::LoadBalancer>,Array<String>] :load_balancers
|
|
38
|
-
# A list of load balancers to use. This can be an array of
|
|
38
|
+
# A list of load balancers to use. This can be an array of
|
|
39
39
|
# {ELB::LoadBalancer} objects or an array of load balancer names.
|
|
40
40
|
#
|
|
41
41
|
# @return [Group]
|
|
@@ -76,7 +76,7 @@ module AWS
|
|
|
76
76
|
|
|
77
77
|
resp = client.describe_auto_scaling_groups(options)
|
|
78
78
|
resp.auto_scaling_groups.each do |details|
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
group = Group.new_from(
|
|
81
81
|
:describe_auto_scaling_groups,
|
|
82
82
|
details,
|
|
@@ -84,7 +84,7 @@ module AWS
|
|
|
84
84
|
:config => config)
|
|
85
85
|
|
|
86
86
|
yield(group)
|
|
87
|
-
|
|
87
|
+
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
resp.data[:next_token]
|
|
@@ -36,42 +36,42 @@ module AWS
|
|
|
36
36
|
#
|
|
37
37
|
# @option options [required,Array<String>] :availability_zones
|
|
38
38
|
# A list of Availability Zones for the Auto Scaling group.
|
|
39
|
-
# This can be {EC2::AvailabilityZone} objects or availability
|
|
39
|
+
# This can be {EC2::AvailabilityZone} objects or availability
|
|
40
40
|
# zone names.
|
|
41
41
|
#
|
|
42
|
-
# @option options [Integer] :default_cooldown
|
|
43
|
-
# The amount of time, in seconds, after a scaling activity completes
|
|
42
|
+
# @option options [Integer] :default_cooldown
|
|
43
|
+
# The amount of time, in seconds, after a scaling activity completes
|
|
44
44
|
# before any further trigger-related scaling activities can start.
|
|
45
45
|
#
|
|
46
46
|
# @option options [Integer] :desired_capacity
|
|
47
|
-
# The number of Amazon EC2 instances that should be running in
|
|
47
|
+
# The number of Amazon EC2 instances that should be running in
|
|
48
48
|
# the group.
|
|
49
49
|
#
|
|
50
50
|
# @option options [Integer] :health_check_grace_period
|
|
51
|
-
# Length of time in seconds after a new Amazon EC2 instance comes
|
|
51
|
+
# Length of time in seconds after a new Amazon EC2 instance comes
|
|
52
52
|
# into service that Auto Scaling starts checking its health.
|
|
53
53
|
#
|
|
54
54
|
# @option options [Symbol] :health_check_type
|
|
55
|
-
# The service you want the health status from,
|
|
56
|
-
# Amazon EC2 or Elastic Load Balancer. Valid values are
|
|
57
|
-
#
|
|
55
|
+
# The service you want the health status from,
|
|
56
|
+
# Amazon EC2 or Elastic Load Balancer. Valid values are
|
|
57
|
+
# `:ec2` or `:elb`.
|
|
58
58
|
#
|
|
59
59
|
# @option options [String] :placement_group
|
|
60
|
-
# Physical location of your cluster placement group created in
|
|
60
|
+
# Physical location of your cluster placement group created in
|
|
61
61
|
# Amazon EC2. For more information about cluster placement group, see
|
|
62
|
-
#
|
|
62
|
+
# [Using Cluster Instances](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html).
|
|
63
63
|
#
|
|
64
64
|
# @option options [Array<Hash>] :tags A list of tags to apply launched
|
|
65
65
|
# instances. Each tag hash may have the following keys:
|
|
66
66
|
#
|
|
67
|
-
#
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
67
|
+
# * `:key` - (required,String) The tag name.
|
|
68
|
+
# * `:value` - (String) The optional tag value.
|
|
69
|
+
# * `:propagate_at_launch` - (Boolean) Whether or not to propagate
|
|
70
|
+
# to instances, defaults to true.
|
|
71
71
|
#
|
|
72
72
|
# @option options [Array<EC2::Subnet>,Array<String>] :subnets
|
|
73
|
-
# A list of subnet identifiers of Amazon Virtual Private Clouds
|
|
74
|
-
# (Amazon VPCs). Ensure the subnets' Availability Zones match the
|
|
73
|
+
# A list of subnet identifiers of Amazon Virtual Private Clouds
|
|
74
|
+
# (Amazon VPCs). Ensure the subnets' Availability Zones match the
|
|
75
75
|
# Availability Zones specified.
|
|
76
76
|
#
|
|
77
77
|
# @return [Hash]
|
|
@@ -95,11 +95,11 @@ module AWS
|
|
|
95
95
|
group_opts[:tags] = tags_opt(options) if
|
|
96
96
|
options.key?(:tags)
|
|
97
97
|
|
|
98
|
-
[
|
|
98
|
+
[
|
|
99
99
|
:min_size,
|
|
100
100
|
:max_size,
|
|
101
|
-
:default_cooldown,
|
|
102
|
-
:desired_capacity,
|
|
101
|
+
:default_cooldown,
|
|
102
|
+
:desired_capacity,
|
|
103
103
|
:health_check_grace_period,
|
|
104
104
|
:placement_group,
|
|
105
105
|
].each do |opt|
|
|
@@ -16,30 +16,30 @@ module AWS
|
|
|
16
16
|
|
|
17
17
|
# A small wrapper around an {EC2::Instance}.
|
|
18
18
|
#
|
|
19
|
-
#
|
|
19
|
+
# ## Getting Auto Scaling Instances
|
|
20
20
|
#
|
|
21
|
-
# If you know the EC2 instance id, you can use {InstanceCollection#[]}
|
|
21
|
+
# If you know the EC2 instance id, you can use {InstanceCollection#[]}
|
|
22
22
|
# to get the Auto Scaling instance.
|
|
23
23
|
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
24
|
+
# instance = auto_scaling.instances['i-1234578']
|
|
25
|
+
# instance.health_statue #=> :healthy
|
|
26
|
+
# instance.ec2_instance #=> <AWS::EC2::Instance instance_id:i-1234578>
|
|
27
27
|
#
|
|
28
|
-
#
|
|
28
|
+
# ## Enumerating Auto Scaling Instances
|
|
29
29
|
#
|
|
30
30
|
# You can enumerate *ALL* instances like so:
|
|
31
31
|
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
32
|
+
# auto_scaling = AWS::AutoScaling.new
|
|
33
|
+
# auto_scaling.instances.each do |auto_scaling_instance|
|
|
34
|
+
# # ...
|
|
35
|
+
# end
|
|
36
36
|
#
|
|
37
37
|
# If you want the instances for a single auto scaling group:
|
|
38
38
|
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
#
|
|
39
|
+
# group = auto_scaling.groups['group-name']
|
|
40
|
+
# group.auto_scaling_instances.each do |instance|
|
|
41
|
+
# # ...
|
|
42
|
+
# end
|
|
43
43
|
#
|
|
44
44
|
# If you prefer {EC2::Instance} objects you should use
|
|
45
45
|
# {Group#ec2_instances} instead.
|
|
@@ -70,10 +70,10 @@ module AWS
|
|
|
70
70
|
|
|
71
71
|
attribute :auto_scaling_group_name, :static => true
|
|
72
72
|
|
|
73
|
-
attribute :availability_zone_name,
|
|
73
|
+
attribute :availability_zone_name,
|
|
74
74
|
:from => :availability_zone,
|
|
75
75
|
:static => true
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
attribute :health_status
|
|
78
78
|
|
|
79
79
|
attribute :launch_configuration_name, :static => true
|
|
@@ -116,19 +116,19 @@ module AWS
|
|
|
116
116
|
def availability_zone
|
|
117
117
|
EC2::AvailabilityZone.new(availability_zone_name, :config => config)
|
|
118
118
|
end
|
|
119
|
-
|
|
119
|
+
|
|
120
120
|
# @return [LaunchConfiguration]
|
|
121
121
|
def launch_configuration
|
|
122
122
|
LaunchConfiguration.new(launch_configuration_name, :config => config)
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
-
# @param [String] status Sets the health status of an instance.
|
|
125
|
+
# @param [String] status Sets the health status of an instance.
|
|
126
126
|
# Valid values inculde 'Healthy' and 'Unhealthy'
|
|
127
127
|
#
|
|
128
128
|
# @param [Hash] options
|
|
129
129
|
#
|
|
130
|
-
# @option options [Boolean] :respect_grace_period (false) If true,
|
|
131
|
-
# this call should respect the grace period associated with
|
|
130
|
+
# @option options [Boolean] :respect_grace_period (false) If true,
|
|
131
|
+
# this call should respect the grace period associated with
|
|
132
132
|
# this instance's Auto Scaling group.
|
|
133
133
|
#
|
|
134
134
|
# @return [nil]
|
|
@@ -137,12 +137,12 @@ module AWS
|
|
|
137
137
|
client_opts = {}
|
|
138
138
|
client_opts[:instance_id] = instance_id
|
|
139
139
|
client_opts[:health_status] = status
|
|
140
|
-
client_opts[:should_respect_grace_period] =
|
|
140
|
+
client_opts[:should_respect_grace_period] =
|
|
141
141
|
options[:respect_grace_period] == true
|
|
142
142
|
client.set_instance_health(client_opts)
|
|
143
143
|
end
|
|
144
144
|
|
|
145
|
-
# @return [Boolean] Returns true if there exists an Auto Scaling
|
|
145
|
+
# @return [Boolean] Returns true if there exists an Auto Scaling
|
|
146
146
|
# instance with this instance id.
|
|
147
147
|
def exists?
|
|
148
148
|
!get_resource.auto_scaling_instances.empty?
|
|
@@ -150,8 +150,8 @@ module AWS
|
|
|
150
150
|
|
|
151
151
|
# Terminates the current Auto Scaling instance.
|
|
152
152
|
#
|
|
153
|
-
# @param [Boolean] decrement_desired_capacity Specifies whether or not
|
|
154
|
-
# terminating this instance should also decrement the size of
|
|
153
|
+
# @param [Boolean] decrement_desired_capacity Specifies whether or not
|
|
154
|
+
# terminating this instance should also decrement the size of
|
|
155
155
|
# the AutoScalingGroup.
|
|
156
156
|
#
|
|
157
157
|
# @return [Activity] Returns an activity that represents the
|
|
@@ -161,15 +161,15 @@ module AWS
|
|
|
161
161
|
|
|
162
162
|
client_opts = {}
|
|
163
163
|
client_opts[:instance_id] = instance_id
|
|
164
|
-
client_opts[:should_decrement_desired_capacity] =
|
|
164
|
+
client_opts[:should_decrement_desired_capacity] =
|
|
165
165
|
decrement_desired_capacity
|
|
166
166
|
|
|
167
167
|
resp = client.terminate_instance_in_auto_scaling_group(client_opts)
|
|
168
168
|
|
|
169
169
|
Activity.new_from(
|
|
170
170
|
:terminate_instance_in_auto_scaling_group,
|
|
171
|
-
resp.activity,
|
|
172
|
-
resp.activity.activity_id,
|
|
171
|
+
resp.activity,
|
|
172
|
+
resp.activity.activity_id,
|
|
173
173
|
:config => config)
|
|
174
174
|
|
|
175
175
|
end
|
|
@@ -16,20 +16,20 @@ module AWS
|
|
|
16
16
|
|
|
17
17
|
# Allows you to enumerate Auto Scaling instances.
|
|
18
18
|
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
19
|
+
# auto_scaling = AWS::AutoScaling.new
|
|
20
|
+
# auto_scaling.instances.each do |instance|
|
|
21
|
+
# # ...
|
|
22
|
+
# end
|
|
23
|
+
#
|
|
24
24
|
# You can also get an Auto Scaling instance by its EC2 instance id.
|
|
25
25
|
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
26
|
+
# auto_scaling_instance = auto_scaling.instances['i-12345678']
|
|
27
|
+
# auto_scaling_instance.class #=> AWS::AutoScaling::Instance
|
|
28
28
|
#
|
|
29
29
|
class InstanceCollection
|
|
30
30
|
|
|
31
31
|
include Core::Collection::WithLimitAndNextToken
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
# @param [String] instance_id An {EC2::Instance} id string.
|
|
34
34
|
# @return [AutoScaling::Instance]
|
|
35
35
|
def [] instance_id
|
|
@@ -45,7 +45,7 @@ module AWS
|
|
|
45
45
|
|
|
46
46
|
resp = client.describe_auto_scaling_instances(options)
|
|
47
47
|
resp.auto_scaling_instances.each do |details|
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
instance = Instance.new_from(
|
|
50
50
|
:describe_auto_scaling_instances,
|
|
51
51
|
details,
|
|
@@ -53,7 +53,7 @@ module AWS
|
|
|
53
53
|
:config => config)
|
|
54
54
|
|
|
55
55
|
yield(instance)
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
end
|
|
58
58
|
resp.data[:next_token]
|
|
59
59
|
end
|