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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
module AWS
|
|
15
15
|
class SimpleWorkflow
|
|
16
16
|
|
|
17
|
-
# This collection represents the history events ({HistoryEvent}) for a
|
|
17
|
+
# This collection represents the history events ({HistoryEvent}) for a
|
|
18
18
|
# single workflow execution.
|
|
19
19
|
#
|
|
20
20
|
# See {Core::Collection} for documentation on the standard enumerable
|
|
@@ -24,7 +24,7 @@ module AWS
|
|
|
24
24
|
|
|
25
25
|
include Core::Collection::WithLimitAndNextToken
|
|
26
26
|
|
|
27
|
-
# @param [WorkflowExecution] workflow_execution The execution this
|
|
27
|
+
# @param [WorkflowExecution] workflow_execution The execution this
|
|
28
28
|
# history event belongs to.
|
|
29
29
|
#
|
|
30
30
|
# @param [Hash] options
|
|
@@ -58,7 +58,7 @@ module AWS
|
|
|
58
58
|
}
|
|
59
59
|
options[:maximum_page_size] = limit if limit
|
|
60
60
|
options[:next_page_token] = next_token if next_token
|
|
61
|
-
options[:reverse_order] = @reverse_order unless
|
|
61
|
+
options[:reverse_order] = @reverse_order unless
|
|
62
62
|
options.has_key?(:reverse_order)
|
|
63
63
|
|
|
64
64
|
response = client.get_workflow_execution_history(options)
|
|
@@ -15,7 +15,7 @@ require 'socket'
|
|
|
15
15
|
|
|
16
16
|
module AWS
|
|
17
17
|
class SimpleWorkflow
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
# @private
|
|
20
20
|
module OptionFormatters
|
|
21
21
|
|
|
@@ -23,7 +23,7 @@ module AWS
|
|
|
23
23
|
def identity_opt options
|
|
24
24
|
options[:identity] || "#{Socket.gethostname}:#{Process.pid}"
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
protected
|
|
28
28
|
def upcase_opts options, *opt_names
|
|
29
29
|
opt_names.each do |opt|
|
|
@@ -45,12 +45,12 @@ module AWS
|
|
|
45
45
|
if workflow_type
|
|
46
46
|
|
|
47
47
|
options[:workflow_id] ||= UUIDTools::UUID.random_create.to_s
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
if workflow_type.is_a?(WorkflowType)
|
|
50
50
|
options[:workflow_type] = {}
|
|
51
51
|
options[:workflow_type][:name] = workflow_type.name
|
|
52
52
|
options[:workflow_type][:version] = workflow_type.version
|
|
53
|
-
elsif
|
|
53
|
+
elsif
|
|
54
54
|
workflow_type.is_a?(Hash) and
|
|
55
55
|
workflow_type[:name].is_a?(String) and
|
|
56
56
|
workflow_type[:version] .is_a?(String)and
|
|
@@ -67,7 +67,7 @@ module AWS
|
|
|
67
67
|
|
|
68
68
|
upcase_opts(options, :child_policy)
|
|
69
69
|
|
|
70
|
-
duration_opts(options,
|
|
70
|
+
duration_opts(options,
|
|
71
71
|
:execution_start_to_close_timeout,
|
|
72
72
|
:task_start_to_close_timeout)
|
|
73
73
|
|
|
@@ -36,15 +36,15 @@ module AWS
|
|
|
36
36
|
# @return [String] Returns the version of this type.
|
|
37
37
|
attr_reader :version
|
|
38
38
|
|
|
39
|
-
# Deprecates the type.
|
|
39
|
+
# Deprecates the type.
|
|
40
40
|
#
|
|
41
|
-
# After a type has been deprecated, you cannot create new
|
|
42
|
-
# executions of that type. Executions that were started before the
|
|
41
|
+
# After a type has been deprecated, you cannot create new
|
|
42
|
+
# executions of that type. Executions that were started before the
|
|
43
43
|
# type was deprecated will continue to run.
|
|
44
44
|
#
|
|
45
|
-
# @note This operation is eventually consistent. The results are best
|
|
45
|
+
# @note This operation is eventually consistent. The results are best
|
|
46
46
|
# effort and may not exactly reflect recent updates and changes.
|
|
47
|
-
#
|
|
47
|
+
#
|
|
48
48
|
# @return [nil]
|
|
49
49
|
#
|
|
50
50
|
def deprecate
|
|
@@ -66,10 +66,10 @@ module AWS
|
|
|
66
66
|
protected
|
|
67
67
|
def resource_options
|
|
68
68
|
{
|
|
69
|
-
:domain => domain.name,
|
|
70
|
-
:"#{self.class.ruby_name}" => {
|
|
69
|
+
:domain => domain.name,
|
|
70
|
+
:"#{self.class.ruby_name}" => {
|
|
71
71
|
:name => name,
|
|
72
|
-
:version => version
|
|
72
|
+
:version => version
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
end
|
|
@@ -19,9 +19,9 @@ module AWS
|
|
|
19
19
|
class TypeCollection
|
|
20
20
|
|
|
21
21
|
include OptionFormatters
|
|
22
|
-
include Core::Collection::WithLimitAndNextToken
|
|
22
|
+
include Core::Collection::WithLimitAndNextToken
|
|
23
23
|
|
|
24
|
-
# @param [Domain] domain The domain the (workflow or activity types
|
|
24
|
+
# @param [Domain] domain The domain the (workflow or activity types
|
|
25
25
|
# belong to.
|
|
26
26
|
def initialize domain, options = {}
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@ module AWS
|
|
|
29
29
|
|
|
30
30
|
@named = options[:named]
|
|
31
31
|
|
|
32
|
-
@registration_status = options[:registration_status] ?
|
|
32
|
+
@registration_status = options[:registration_status] ?
|
|
33
33
|
options[:registration_status].to_s.upcase : 'REGISTERED'
|
|
34
34
|
|
|
35
35
|
@reverse_order = options.key?(:reverse_order) ?
|
|
@@ -44,13 +44,13 @@ module AWS
|
|
|
44
44
|
|
|
45
45
|
# Returns the type with the given name and version.
|
|
46
46
|
#
|
|
47
|
-
#
|
|
48
|
-
#
|
|
49
|
-
#
|
|
47
|
+
# # get a workflow type
|
|
48
|
+
# domain.workflow_types['name','version']
|
|
49
|
+
# domain.workflow_types.at('name','version')
|
|
50
50
|
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
53
|
-
#
|
|
51
|
+
# # get an activity type
|
|
52
|
+
# domain.activity_types['name','version']
|
|
53
|
+
# domain.activity_types.at('name','version')
|
|
54
54
|
#
|
|
55
55
|
# @param [String] name Name of the type.
|
|
56
56
|
#
|
|
@@ -81,7 +81,7 @@ module AWS
|
|
|
81
81
|
collection_with(:reverse_order => true)
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
-
# @return [TypeCollection] Returns a collection that
|
|
84
|
+
# @return [TypeCollection] Returns a collection that
|
|
85
85
|
# enumerates types with the given name. Each instance
|
|
86
86
|
# will have a different version.
|
|
87
87
|
def named name
|
|
@@ -112,7 +112,7 @@ module AWS
|
|
|
112
112
|
options[:maximum_page_size] = limit if limit
|
|
113
113
|
options[:registration_status] ||= @registration_status
|
|
114
114
|
options[:name] ||= @named if @named # may be nil
|
|
115
|
-
options[:reverse_order] = @reverse_order unless
|
|
115
|
+
options[:reverse_order] = @reverse_order unless
|
|
116
116
|
options.has_key?(:reverse_order)
|
|
117
117
|
|
|
118
118
|
|
|
@@ -123,12 +123,12 @@ module AWS
|
|
|
123
123
|
response = client.send(client_method, options)
|
|
124
124
|
response.data['typeInfos'].each do |desc|
|
|
125
125
|
|
|
126
|
-
type = member_class.new_from(client_method, desc, domain,
|
|
127
|
-
desc[type_key]['name'],
|
|
128
|
-
desc[type_key]['version'])
|
|
126
|
+
type = member_class.new_from(client_method, desc, domain,
|
|
127
|
+
desc[type_key]['name'],
|
|
128
|
+
desc[type_key]['version'])
|
|
129
129
|
|
|
130
130
|
yield(type)
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
end
|
|
133
133
|
|
|
134
134
|
response.data['nextPageToken']
|
|
@@ -14,18 +14,16 @@
|
|
|
14
14
|
module AWS
|
|
15
15
|
class SimpleWorkflow
|
|
16
16
|
|
|
17
|
-
# @attr_reader [Symbol] child_policy The policy to use for the child
|
|
18
|
-
# workflow executions if this workflow execution is terminated.
|
|
17
|
+
# @attr_reader [Symbol] child_policy The policy to use for the child
|
|
18
|
+
# workflow executions if this workflow execution is terminated.
|
|
19
19
|
# The return value will be one of the following values:
|
|
20
20
|
#
|
|
21
|
-
# *
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
# child execution by recording a WorkflowExecutionCancelRequested
|
|
21
|
+
# * `:terminate` - the child executions will be terminated.
|
|
22
|
+
# * `:request_cancel` - a request to cancel will be attempted for each
|
|
23
|
+
# child execution by recording a WorkflowExecutionCancelRequested
|
|
25
24
|
# event in its history. It is up to the decider to take appropriate
|
|
26
25
|
# actions when it receives an execution history with this event.
|
|
27
|
-
#
|
|
28
|
-
# * +:abandon+ - no action will be taken. The child executions will
|
|
26
|
+
# * `:abandon` - no action will be taken. The child executions will
|
|
29
27
|
# continue to run.
|
|
30
28
|
#
|
|
31
29
|
# @attr_reader [String] start_to_close_timeout The total allowed
|
|
@@ -34,7 +32,7 @@ module AWS
|
|
|
34
32
|
# The return value will be formatted as an ISO 8601 duration (e.g.
|
|
35
33
|
# 'PnYnMnDTnHnMnS').
|
|
36
34
|
#
|
|
37
|
-
# @attr_reader [String] task_list The task list used for the decision
|
|
35
|
+
# @attr_reader [String] task_list The task list used for the decision
|
|
38
36
|
# tasks generated for this workflow execution.
|
|
39
37
|
#
|
|
40
38
|
# @attr_reader [String] task_start_to_close_timeout The maximum duration
|
|
@@ -47,24 +45,24 @@ module AWS
|
|
|
47
45
|
# was closed. Returns nil if this execution is not closed.
|
|
48
46
|
#
|
|
49
47
|
# @attr_reader [Time] started_at The time when the execution was started.
|
|
50
|
-
#
|
|
51
|
-
# @attr_reader [Time,nil] latest_activity_task_scheduled_at The time
|
|
48
|
+
#
|
|
49
|
+
# @attr_reader [Time,nil] latest_activity_task_scheduled_at The time
|
|
52
50
|
# when the last activity task was scheduled for this workflow execution.
|
|
53
|
-
# You can use this information to determine if the workflow has not
|
|
54
|
-
# made progress for an unusually long period of time and might
|
|
51
|
+
# You can use this information to determine if the workflow has not
|
|
52
|
+
# made progress for an unusually long period of time and might
|
|
55
53
|
# require a corrective action.
|
|
56
54
|
#
|
|
57
55
|
# @attr_reader [String,nil] latest_execution_context The latest execution
|
|
58
|
-
# context provided by the decider for this workflow execution. A decider
|
|
59
|
-
# can provide an execution context, which is a free form string, when
|
|
56
|
+
# context provided by the decider for this workflow execution. A decider
|
|
57
|
+
# can provide an execution context, which is a free form string, when
|
|
60
58
|
# closing a decision task.
|
|
61
59
|
#
|
|
62
60
|
# @attr_reader [Hash] open_counts Returns a hash of counts, including:
|
|
63
|
-
#
|
|
64
|
-
# and
|
|
65
|
-
#
|
|
61
|
+
# `:open_timers`, `:open_child_workflow_executions`, `:open_decision_tasks`,
|
|
62
|
+
# and `:open_activity_tasks`.
|
|
63
|
+
#
|
|
66
64
|
class WorkflowExecution < Resource
|
|
67
|
-
|
|
65
|
+
|
|
68
66
|
def initialize domain, workflow_id, run_id, options = {}
|
|
69
67
|
@domain = domain
|
|
70
68
|
@workflow_id = workflow_id
|
|
@@ -104,8 +102,8 @@ module AWS
|
|
|
104
102
|
info_attribute :parent_details, :from => 'parent', :static => true
|
|
105
103
|
protected :parent_details
|
|
106
104
|
|
|
107
|
-
info_attribute :started_at,
|
|
108
|
-
:from => 'startTimestamp',
|
|
105
|
+
info_attribute :started_at,
|
|
106
|
+
:from => 'startTimestamp',
|
|
109
107
|
:timestamp => true,
|
|
110
108
|
:static => true
|
|
111
109
|
|
|
@@ -115,7 +113,7 @@ module AWS
|
|
|
115
113
|
info_attribute :type_details, :from => 'workflowType', :static => true
|
|
116
114
|
protected :type_details
|
|
117
115
|
|
|
118
|
-
attribute :latest_activity_task_scheduled_at,
|
|
116
|
+
attribute :latest_activity_task_scheduled_at,
|
|
119
117
|
:from => 'latestActivityTaskTimestamp',
|
|
120
118
|
:timestamp => true
|
|
121
119
|
|
|
@@ -131,13 +129,13 @@ module AWS
|
|
|
131
129
|
|
|
132
130
|
# list_workflow_executions provides ONLY type attributes
|
|
133
131
|
provider(
|
|
134
|
-
:list_open_workflow_executions,
|
|
132
|
+
:list_open_workflow_executions,
|
|
135
133
|
:list_closed_workflow_executions
|
|
136
134
|
) do |provider|
|
|
137
135
|
provider.provides *info_attributes.keys
|
|
138
136
|
provider.find do |resp|
|
|
139
137
|
execution = { 'workflowId' => workflow_id, 'runId' => run_id }
|
|
140
|
-
resp.data['executionInfos'].find do |desc|
|
|
138
|
+
resp.data['executionInfos'].find do |desc|
|
|
141
139
|
desc['execution'] == execution
|
|
142
140
|
end
|
|
143
141
|
end
|
|
@@ -160,20 +158,20 @@ module AWS
|
|
|
160
158
|
# @return [Symbol] Returns the status of this execution. Possible
|
|
161
159
|
# return values are:
|
|
162
160
|
#
|
|
163
|
-
# *
|
|
164
|
-
# *
|
|
165
|
-
# *
|
|
166
|
-
# the implementation to gracefully clean up before the execution
|
|
161
|
+
# * `:open` - The execution is still running.
|
|
162
|
+
# * `:completed` - The execution was successfully completed.
|
|
163
|
+
# * `:canceled` - The execution was canceled, cancellation allows
|
|
164
|
+
# the implementation to gracefully clean up before the execution
|
|
167
165
|
# is closed.
|
|
168
|
-
# *
|
|
166
|
+
# * `:failed` - The execution failed to complete.
|
|
169
167
|
# and was automatically timed out.
|
|
170
|
-
# *
|
|
171
|
-
# means the current execution was completed and a new execution
|
|
168
|
+
# * `:continued_as_new` - The execution is logically continued. This
|
|
169
|
+
# means the current execution was completed and a new execution
|
|
172
170
|
# was started to carry on the workflow.
|
|
173
|
-
# *
|
|
174
|
-
# *
|
|
171
|
+
# * `:terminated` - The execution was force terminated.
|
|
172
|
+
# * `:timed_out` - The execution did not complete in the allotted
|
|
175
173
|
# time and was automatically timed out.
|
|
176
|
-
#
|
|
174
|
+
#
|
|
177
175
|
def status
|
|
178
176
|
AWS.memoize do
|
|
179
177
|
execution_status == :open ? :open : (close_status || :closed)
|
|
@@ -246,18 +244,18 @@ module AWS
|
|
|
246
244
|
end
|
|
247
245
|
end
|
|
248
246
|
|
|
249
|
-
# Records a WorkflowExecutionSignaled event in the workflow execution
|
|
247
|
+
# Records a WorkflowExecutionSignaled event in the workflow execution
|
|
250
248
|
# history and creates a decision task for the workflow execution.
|
|
251
249
|
#
|
|
252
|
-
#
|
|
250
|
+
# workflow_execution.signal('signal_name', :input => '...')
|
|
253
251
|
#
|
|
254
|
-
# @param [String] signal_name The name of the signal. This name must be
|
|
252
|
+
# @param [String] signal_name The name of the signal. This name must be
|
|
255
253
|
# meaningful to the target workflow.
|
|
256
254
|
#
|
|
257
255
|
# @param [Hash] options
|
|
258
256
|
#
|
|
259
|
-
# @option options [String] :input (nil) Data to attach to the
|
|
260
|
-
# WorkflowExecutionSignaled event in the target workflow
|
|
257
|
+
# @option options [String] :input (nil) Data to attach to the
|
|
258
|
+
# WorkflowExecutionSignaled event in the target workflow
|
|
261
259
|
# execution's history.
|
|
262
260
|
#
|
|
263
261
|
# @return [nil]
|
|
@@ -267,13 +265,13 @@ module AWS
|
|
|
267
265
|
domain.workflow_executions.signal(workflow_id, signal_name, options)
|
|
268
266
|
end
|
|
269
267
|
|
|
270
|
-
# Records a WorkflowExecutionCancelRequested event in the currently
|
|
268
|
+
# Records a WorkflowExecutionCancelRequested event in the currently
|
|
271
269
|
# running workflow execution. This logically requests the cancellation
|
|
272
|
-
# of the workflow execution as a whole. It is up to the decider to
|
|
273
|
-
# take appropriate actions when it receives an execution history
|
|
270
|
+
# of the workflow execution as a whole. It is up to the decider to
|
|
271
|
+
# take appropriate actions when it receives an execution history
|
|
274
272
|
# with this event.
|
|
275
273
|
#
|
|
276
|
-
# @note Because this action allows the workflow to properly clean up
|
|
274
|
+
# @note Because this action allows the workflow to properly clean up
|
|
277
275
|
# and gracefully close, it should be used instead of {#terminate}
|
|
278
276
|
# when possible.
|
|
279
277
|
#
|
|
@@ -284,41 +282,41 @@ module AWS
|
|
|
284
282
|
domain.workflow_executions.request_cancel(workflow_id, options)
|
|
285
283
|
end
|
|
286
284
|
|
|
287
|
-
# Records a WorkflowExecutionTerminated event and forces closure of
|
|
288
|
-
# the workflow execution. The child policy, registered with the
|
|
289
|
-
# workflow type or specified when starting this execution, is applied
|
|
285
|
+
# Records a WorkflowExecutionTerminated event and forces closure of
|
|
286
|
+
# the workflow execution. The child policy, registered with the
|
|
287
|
+
# workflow type or specified when starting this execution, is applied
|
|
290
288
|
# to any open child workflow executions of this workflow execution.
|
|
291
289
|
#
|
|
292
|
-
# @note If the workflow execution was in progress, it is terminated
|
|
290
|
+
# @note If the workflow execution was in progress, it is terminated
|
|
293
291
|
# immediately.
|
|
294
292
|
#
|
|
295
|
-
# @note You should consider canceling the workflow execution
|
|
293
|
+
# @note You should consider canceling the workflow execution
|
|
296
294
|
# instead because it allows the workflow to gracefully close
|
|
297
295
|
# while terminate does not.
|
|
298
296
|
#
|
|
299
297
|
# @param [Hash] options
|
|
300
298
|
#
|
|
301
299
|
# @option options [Symbol] :child_policy (nil)
|
|
302
|
-
# If set, specifies the policy to use for the child workflow
|
|
303
|
-
# executions of the workflow execution being terminated. This
|
|
300
|
+
# If set, specifies the policy to use for the child workflow
|
|
301
|
+
# executions of the workflow execution being terminated. This
|
|
304
302
|
# policy overrides the default child policy. Valid policies include:
|
|
305
303
|
#
|
|
306
|
-
# *
|
|
304
|
+
# * `:terminate` - the child executions will be terminated.
|
|
307
305
|
#
|
|
308
|
-
# *
|
|
309
|
-
# child execution by recording a WorkflowExecutionCancelRequested
|
|
306
|
+
# * `:request_cancel` - a request to cancel will be attempted for each
|
|
307
|
+
# child execution by recording a WorkflowExecutionCancelRequested
|
|
310
308
|
# event in its history. It is up to the decider to take appropriate
|
|
311
309
|
# actions when it receives an execution history with this event.
|
|
312
310
|
#
|
|
313
|
-
# *
|
|
311
|
+
# * `:abandon` - no action will be taken. The child executions will
|
|
314
312
|
# continue to run.
|
|
315
313
|
#
|
|
316
|
-
# @option options [String] :details (nil) Optional details for
|
|
314
|
+
# @option options [String] :details (nil) Optional details for
|
|
317
315
|
# terminating the workflow execution.
|
|
318
316
|
#
|
|
319
|
-
# @option options [String] :reason (nil) An optional descriptive
|
|
317
|
+
# @option options [String] :reason (nil) An optional descriptive
|
|
320
318
|
# reason for terminating the workflow execution.
|
|
321
|
-
#
|
|
319
|
+
#
|
|
322
320
|
# @return [nil]
|
|
323
321
|
#
|
|
324
322
|
def terminate options = {}
|
|
@@ -330,35 +328,35 @@ module AWS
|
|
|
330
328
|
#
|
|
331
329
|
# @note See {WorkflowExecutionCollection#count} for a broader count.
|
|
332
330
|
#
|
|
333
|
-
# @note This operation is eventually consistent. The results are best
|
|
331
|
+
# @note This operation is eventually consistent. The results are best
|
|
334
332
|
# effort and may not exactly reflect recent updates and changes.
|
|
335
333
|
#
|
|
336
334
|
# @param [Hash] options
|
|
337
335
|
#
|
|
338
|
-
# @option options [Symbol] :status (:open) Specifies that
|
|
336
|
+
# @option options [Symbol] :status (:open) Specifies that
|
|
339
337
|
# status of the workflow executions to count. Defaults to
|
|
340
338
|
# open workflows.
|
|
341
339
|
#
|
|
342
|
-
# *
|
|
343
|
-
# *
|
|
340
|
+
# * `:open`
|
|
341
|
+
# * `:closed`
|
|
344
342
|
#
|
|
345
343
|
# @option options [Array<Time>] :started_between A start and end time
|
|
346
|
-
# to filter workflow execution start times by. You may pass an
|
|
344
|
+
# to filter workflow execution start times by. You may pass an
|
|
347
345
|
# array with two time values or a range. Times should be
|
|
348
|
-
# timestamps (integers), Time, Date, DateTime or parseable time
|
|
349
|
-
# strings.
|
|
346
|
+
# timestamps (integers), Time, Date, DateTime or parseable time
|
|
347
|
+
# strings.
|
|
350
348
|
#
|
|
351
|
-
# You may not pass both
|
|
349
|
+
# You may not pass both `:started_between` and `:closed_between`.
|
|
352
350
|
#
|
|
353
351
|
# @option options [Array<Time>] :closed_between A start and end time
|
|
354
|
-
# to filter workflow execution closed times by. You may pass an
|
|
352
|
+
# to filter workflow execution closed times by. You may pass an
|
|
355
353
|
# array with two time values or a range. Times should be
|
|
356
|
-
# timestamps (integers), Time, Date, DateTime or parseable time
|
|
357
|
-
# strings.
|
|
354
|
+
# timestamps (integers), Time, Date, DateTime or parseable time
|
|
355
|
+
# strings.
|
|
358
356
|
#
|
|
359
|
-
# You may not pass both
|
|
360
|
-
# You may also not pass
|
|
361
|
-
#
|
|
357
|
+
# You may not pass both `:started_between` and `:closed_between`.
|
|
358
|
+
# You may also not pass `:closed_between` if the `:status` is
|
|
359
|
+
# `:open`.
|
|
362
360
|
#
|
|
363
361
|
# @return [Integer] Returns the count of executions that share
|
|
364
362
|
# workflow id with the current execution.
|
|
@@ -380,7 +378,7 @@ module AWS
|
|
|
380
378
|
:execution => { :workflow_id => workflow_id, :run_id => run_id },
|
|
381
379
|
}
|
|
382
380
|
end
|
|
383
|
-
|
|
381
|
+
|
|
384
382
|
end
|
|
385
383
|
end
|
|
386
384
|
end
|