aws-sdk-core 2.4.0 → 3.53.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 +4 -4
- data/VERSION +1 -0
- data/ca-bundle.crt +3615 -3541
- data/lib/aws-sdk-core.rb +96 -408
- data/lib/aws-sdk-core/async_client_stubs.rb +80 -0
- data/lib/aws-sdk-core/binary.rb +6 -0
- data/lib/aws-sdk-core/binary/decode_handler.rb +56 -0
- data/lib/aws-sdk-core/binary/encode_handler.rb +32 -0
- data/lib/aws-sdk-core/binary/event_builder.rb +122 -0
- data/lib/aws-sdk-core/binary/event_parser.rb +134 -0
- data/lib/aws-sdk-core/binary/event_stream_decoder.rb +62 -0
- data/lib/aws-sdk-core/binary/event_stream_encoder.rb +53 -0
- data/lib/aws-sdk-core/client_side_monitoring/publisher.rb +41 -0
- data/lib/aws-sdk-core/client_side_monitoring/request_metrics.rb +197 -0
- data/lib/aws-sdk-core/client_stubs.rb +73 -10
- data/lib/aws-sdk-core/credential_provider.rb +2 -0
- data/lib/aws-sdk-core/credential_provider_chain.rb +22 -5
- data/lib/aws-sdk-core/ecs_credentials.rb +3 -3
- data/lib/aws-sdk-core/endpoint_cache.rb +188 -0
- data/lib/aws-sdk-core/errors.rb +174 -10
- data/lib/aws-sdk-core/event_emitter.rb +62 -0
- data/lib/aws-sdk-core/ini_parser.rb +1 -0
- data/lib/aws-sdk-core/instance_profile_credentials.rb +21 -12
- data/lib/aws-sdk-core/json.rb +4 -5
- data/lib/aws-sdk-core/json/builder.rb +4 -2
- data/lib/aws-sdk-core/json/error_handler.rb +19 -2
- data/lib/aws-sdk-core/json/handler.rb +22 -3
- data/lib/aws-sdk-core/json/parser.rb +1 -1
- data/lib/aws-sdk-core/log/param_filter.rb +4 -3
- data/lib/aws-sdk-core/pageable_response.rb +1 -0
- data/lib/aws-sdk-core/pager.rb +30 -25
- data/lib/aws-sdk-core/param_converter.rb +3 -3
- data/lib/aws-sdk-core/param_validator.rb +56 -21
- data/lib/aws-sdk-core/plugins/api_key.rb +52 -0
- data/lib/aws-sdk-core/plugins/apig_authorizer_token.rb +30 -0
- data/lib/aws-sdk-core/plugins/apig_credentials_configuration.rb +34 -0
- data/lib/aws-sdk-core/plugins/apig_user_agent.rb +37 -0
- data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +256 -0
- data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +84 -0
- data/lib/aws-sdk-core/plugins/credentials_configuration.rb +62 -0
- data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +160 -0
- data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +63 -0
- data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +30 -0
- data/lib/aws-sdk-core/plugins/global_configuration.rb +19 -10
- data/lib/aws-sdk-core/plugins/helpful_socket_errors.rb +41 -0
- data/lib/aws-sdk-core/plugins/idempotency_token.rb +36 -0
- data/lib/aws-sdk-core/plugins/invocation_id.rb +33 -0
- data/lib/aws-sdk-core/plugins/jsonvalue_converter.rb +29 -0
- data/lib/aws-sdk-core/plugins/logging.rb +18 -18
- data/lib/aws-sdk-core/plugins/param_converter.rb +9 -5
- data/lib/aws-sdk-core/plugins/param_validator.rb +8 -5
- data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +10 -0
- data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -1
- data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +13 -12
- data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -2
- data/lib/aws-sdk-core/plugins/regional_endpoint.rb +28 -16
- data/lib/aws-sdk-core/plugins/response_paging.rb +5 -18
- data/lib/aws-sdk-core/plugins/retry_errors.rb +97 -23
- data/lib/aws-sdk-core/plugins/signature_v2.rb +51 -0
- data/lib/aws-sdk-core/plugins/signature_v4.rb +141 -0
- data/lib/aws-sdk-core/plugins/stub_responses.rb +35 -18
- data/lib/aws-sdk-core/plugins/transfer_encoding.rb +53 -0
- data/lib/aws-sdk-core/plugins/user_agent.rb +23 -6
- data/lib/aws-sdk-core/process_credentials.rb +76 -0
- data/lib/aws-sdk-core/query.rb +5 -0
- data/lib/aws-sdk-core/query/ec2_param_builder.rb +9 -3
- data/lib/aws-sdk-core/query/handler.rb +20 -16
- data/lib/aws-sdk-core/query/param_builder.rb +10 -4
- data/lib/aws-sdk-core/refreshing_credentials.rb +1 -1
- data/lib/aws-sdk-core/resources/collection.rb +121 -0
- data/lib/aws-sdk-core/rest.rb +10 -0
- data/lib/aws-sdk-core/rest/handler.rb +1 -0
- data/lib/aws-sdk-core/rest/request/builder.rb +2 -1
- data/lib/aws-sdk-core/rest/request/endpoint.rb +11 -66
- data/lib/aws-sdk-core/rest/request/headers.rb +20 -1
- data/lib/aws-sdk-core/rest/request/querystring_builder.rb +103 -0
- data/lib/aws-sdk-core/rest/response/body.rb +14 -1
- data/lib/aws-sdk-core/rest/response/headers.rb +9 -0
- data/lib/aws-sdk-core/rest/response/parser.rb +18 -14
- data/lib/aws-sdk-core/shared_config.rb +132 -18
- data/lib/aws-sdk-core/shared_credentials.rb +2 -0
- data/lib/aws-sdk-core/structure.rb +21 -11
- data/lib/aws-sdk-core/stubbing/data_applicator.rb +1 -1
- data/lib/aws-sdk-core/stubbing/empty_stub.rb +10 -3
- data/lib/aws-sdk-core/stubbing/protocols/api_gateway.rb +8 -0
- data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +1 -1
- data/lib/aws-sdk-core/stubbing/protocols/rest.rb +99 -1
- data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +5 -1
- data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +9 -5
- data/lib/aws-sdk-core/stubbing/stub_data.rb +16 -3
- data/lib/aws-sdk-core/util.rb +66 -0
- data/lib/aws-sdk-core/waiters.rb +3 -0
- data/lib/aws-sdk-core/waiters/poller.rb +5 -7
- data/lib/aws-sdk-core/waiters/waiter.rb +1 -0
- data/lib/aws-sdk-core/xml.rb +9 -0
- data/lib/aws-sdk-core/xml/builder.rb +11 -5
- data/lib/aws-sdk-core/xml/error_handler.rb +27 -5
- data/lib/aws-sdk-core/xml/parser.rb +1 -11
- data/lib/aws-sdk-core/xml/parser/engines/ox.rb +5 -1
- data/lib/aws-sdk-core/xml/parser/frame.rb +6 -6
- data/lib/aws-sdk-sts.rb +45 -0
- data/lib/aws-sdk-sts/client.rb +1761 -0
- data/lib/aws-sdk-sts/client_api.rb +304 -0
- data/lib/aws-sdk-sts/customizations.rb +0 -0
- data/lib/aws-sdk-sts/errors.rb +142 -0
- data/lib/aws-sdk-sts/resource.rb +23 -0
- data/lib/aws-sdk-sts/types.rb +1279 -0
- data/lib/seahorse.rb +60 -60
- data/lib/seahorse/client/async_base.rb +50 -0
- data/lib/seahorse/client/async_response.rb +62 -0
- data/lib/seahorse/client/base.rb +2 -8
- data/lib/seahorse/client/configuration.rb +9 -1
- data/lib/seahorse/client/h2/connection.rb +244 -0
- data/lib/seahorse/client/h2/handler.rb +151 -0
- data/lib/seahorse/client/http/async_response.rb +42 -0
- data/lib/seahorse/client/http/response.rb +10 -5
- data/lib/seahorse/client/logging/formatter.rb +5 -1
- data/lib/seahorse/client/logging/handler.rb +2 -0
- data/lib/seahorse/client/net_http/connection_pool.rb +27 -11
- data/lib/seahorse/client/net_http/handler.rb +10 -2
- data/lib/seahorse/client/net_http/patches.rb +9 -1
- data/lib/seahorse/client/networking_error.rb +28 -0
- data/lib/seahorse/client/plugin.rb +66 -6
- data/lib/seahorse/client/plugin_list.rb +3 -1
- data/lib/seahorse/client/plugins/content_length.rb +7 -2
- data/lib/seahorse/client/plugins/endpoint.rb +14 -10
- data/lib/seahorse/client/plugins/h2.rb +64 -0
- data/lib/seahorse/client/plugins/logging.rb +17 -19
- data/lib/seahorse/client/plugins/net_http.rb +23 -15
- data/lib/seahorse/client/plugins/raise_response_errors.rb +4 -4
- data/lib/seahorse/client/plugins/response_target.rb +10 -1
- data/lib/seahorse/client/request_context.rb +5 -0
- data/lib/seahorse/client/response.rb +9 -20
- data/lib/seahorse/model/api.rb +37 -0
- data/lib/seahorse/model/authorizer.rb +21 -0
- data/lib/seahorse/model/operation.rb +20 -0
- data/lib/seahorse/model/shapes.rb +44 -2
- data/lib/seahorse/util.rb +1 -21
- metadata +112 -359
- data/apis/acm/2015-12-08/api-2.json +0 -495
- data/apis/acm/2015-12-08/examples-1.json +0 -5
- data/apis/acm/2015-12-08/paginators-1.json +0 -10
- data/apis/apigateway/2015-07-09/api-2.json +0 -3347
- data/apis/apigateway/2015-07-09/examples-1.json +0 -5
- data/apis/apigateway/2015-07-09/paginators-1.json +0 -52
- data/apis/application-autoscaling/2016-02-06/api-2.json +0 -502
- data/apis/application-autoscaling/2016-02-06/examples-1.json +0 -5
- data/apis/application-autoscaling/2016-02-06/paginators-1.json +0 -22
- data/apis/autoscaling/2011-01-01/api-2.json +0 -2038
- data/apis/autoscaling/2011-01-01/examples-1.json +0 -5
- data/apis/autoscaling/2011-01-01/paginators-1.json +0 -52
- data/apis/autoscaling/2011-01-01/resources-1.json +0 -1613
- data/apis/autoscaling/2011-01-01/waiters-2.json +0 -62
- data/apis/cloudformation/2010-05-15/api-2.json +0 -1299
- data/apis/cloudformation/2010-05-15/examples-1.json +0 -5
- data/apis/cloudformation/2010-05-15/paginators-1.json +0 -27
- data/apis/cloudformation/2010-05-15/resources-1.json +0 -202
- data/apis/cloudformation/2010-05-15/waiters-2.json +0 -235
- data/apis/cloudfront/2016-01-28/api-2.json +0 -2218
- data/apis/cloudfront/2016-01-28/examples-1.json +0 -5
- data/apis/cloudfront/2016-01-28/paginators-1.json +0 -32
- data/apis/cloudfront/2016-01-28/waiters-2.json +0 -47
- data/apis/cloudhsm/2014-05-30/api-2.json +0 -877
- data/apis/cloudhsm/2014-05-30/examples-1.json +0 -5
- data/apis/cloudsearch/2013-01-01/api-2.json +0 -2001
- data/apis/cloudsearch/2013-01-01/paginators-1.json +0 -20
- data/apis/cloudsearchdomain/2013-01-01/api-2.json +0 -373
- data/apis/cloudsearchdomain/2013-01-01/examples-1.json +0 -5
- data/apis/cloudtrail/2013-11-01/api-2.json +0 -801
- data/apis/cloudtrail/2013-11-01/examples-1.json +0 -5
- data/apis/cloudtrail/2013-11-01/paginators-1.json +0 -7
- data/apis/codecommit/2015-04-13/api-2.json +0 -916
- data/apis/codecommit/2015-04-13/examples-1.json +0 -5
- data/apis/codecommit/2015-04-13/paginators-1.json +0 -14
- data/apis/codedeploy/2014-10-06/api-2.json +0 -1954
- data/apis/codedeploy/2014-10-06/examples-1.json +0 -5
- data/apis/codedeploy/2014-10-06/paginators-1.json +0 -34
- data/apis/codepipeline/2015-07-09/api-2.json +0 -1633
- data/apis/codepipeline/2015-07-09/examples-1.json +0 -902
- data/apis/cognito-identity/2014-06-30/api-2.json +0 -859
- data/apis/cognito-identity/2014-06-30/examples-1.json +0 -5
- data/apis/cognito-idp/2016-04-18/api-2.json +0 -1657
- data/apis/cognito-idp/2016-04-18/examples-1.json +0 -5
- data/apis/cognito-sync/2014-06-30/api-2.json +0 -1874
- data/apis/config/2014-11-12/api-2.json +0 -1303
- data/apis/config/2014-11-12/examples-1.json +0 -5
- data/apis/config/2014-11-12/paginators-1.json +0 -10
- data/apis/datapipeline/2012-10-29/api-2.json +0 -1167
- data/apis/datapipeline/2012-10-29/paginators-1.json +0 -26
- data/apis/devicefarm/2015-06-23/api-2.json +0 -2030
- data/apis/devicefarm/2015-06-23/examples-1.json +0 -5
- data/apis/devicefarm/2015-06-23/paginators-1.json +0 -74
- data/apis/directconnect/2012-10-25/api-2.json +0 -793
- data/apis/directconnect/2012-10-25/examples-1.json +0 -5
- data/apis/directconnect/2012-10-25/paginators-1.json +0 -22
- data/apis/discovery/2015-11-01/api-2.json +0 -556
- data/apis/discovery/2015-11-01/examples-1.json +0 -5
- data/apis/dms/2016-01-01/api-2.json +0 -1469
- data/apis/dms/2016-01-01/examples-1.json +0 -5
- data/apis/ds/2015-04-16/api-2.json +0 -1674
- data/apis/ds/2015-04-16/examples-1.json +0 -5
- data/apis/dynamodb/2012-08-10/api-2.json +0 -1200
- data/apis/dynamodb/2012-08-10/examples-1.json +0 -5
- data/apis/dynamodb/2012-08-10/paginators-1.json +0 -26
- data/apis/dynamodb/2012-08-10/resources-1.json +0 -136
- data/apis/dynamodb/2012-08-10/waiters-2.json +0 -35
- data/apis/ec2/2015-10-01/api-2.json +0 -13759
- data/apis/ec2/2015-10-01/examples-1.json +0 -5
- data/apis/ec2/2015-10-01/paginators-1.json +0 -138
- data/apis/ec2/2015-10-01/resources-1.json +0 -2582
- data/apis/ec2/2015-10-01/waiters-2.json +0 -593
- data/apis/ec2/2016-04-01/api-2.json +0 -13842
- data/apis/ec2/2016-04-01/examples-1.json +0 -5
- data/apis/ec2/2016-04-01/paginators-1.json +0 -138
- data/apis/ec2/2016-04-01/resources-1.json +0 -2582
- data/apis/ec2/2016-04-01/waiters-2.json +0 -593
- data/apis/ecr/2015-09-21/api-2.json +0 -849
- data/apis/ecr/2015-09-21/examples-1.json +0 -5
- data/apis/ecs/2014-11-13/api-2.json +0 -1396
- data/apis/ecs/2014-11-13/examples-1.json +0 -5
- data/apis/ecs/2014-11-13/paginators-1.json +0 -40
- data/apis/ecs/2014-11-13/waiters-2.json +0 -93
- data/apis/elasticache/2015-02-02/api-2.json +0 -2426
- data/apis/elasticache/2015-02-02/examples-1.json +0 -5
- data/apis/elasticache/2015-02-02/paginators-1.json +0 -76
- data/apis/elasticache/2015-02-02/waiters-2.json +0 -143
- data/apis/elasticbeanstalk/2010-12-01/api-2.json +0 -1894
- data/apis/elasticbeanstalk/2010-12-01/examples-1.json +0 -1109
- data/apis/elasticbeanstalk/2010-12-01/paginators-1.json +0 -25
- data/apis/elasticfilesystem/2015-02-01/api-2.json +0 -713
- data/apis/elasticfilesystem/2015-02-01/examples-1.json +0 -5
- data/apis/elasticloadbalancing/2012-06-01/api-2.json +0 -2145
- data/apis/elasticloadbalancing/2012-06-01/paginators-1.json +0 -18
- data/apis/elasticloadbalancing/2012-06-01/waiters-2.json +0 -49
- data/apis/elasticmapreduce/2009-03-31/api-2.json +0 -1341
- data/apis/elasticmapreduce/2009-03-31/examples-1.json +0 -5
- data/apis/elasticmapreduce/2009-03-31/paginators-1.json +0 -32
- data/apis/elasticmapreduce/2009-03-31/waiters-2.json +0 -67
- data/apis/elastictranscoder/2012-09-25/api-2.json +0 -1807
- data/apis/elastictranscoder/2012-09-25/paginators-1.json +0 -24
- data/apis/elastictranscoder/2012-09-25/waiters-2.json +0 -30
- data/apis/email/2010-12-01/api-2.json +0 -1791
- data/apis/email/2010-12-01/examples-1.json +0 -5
- data/apis/email/2010-12-01/paginators-1.json +0 -13
- data/apis/email/2010-12-01/waiters-2.json +0 -18
- data/apis/es/2015-01-01/api-2.json +0 -764
- data/apis/events/2015-10-07/api-2.json +0 -643
- data/apis/events/2015-10-07/examples-1.json +0 -5
- data/apis/firehose/2015-08-04/api-2.json +0 -719
- data/apis/gamelift/2015-10-01/api-2.json +0 -2307
- data/apis/gamelift/2015-10-01/examples-1.json +0 -5
- data/apis/glacier/2012-06-01/api-2.json +0 -2144
- data/apis/glacier/2012-06-01/paginators-1.json +0 -28
- data/apis/glacier/2012-06-01/resources-1.json +0 -563
- data/apis/glacier/2012-06-01/waiters-2.json +0 -39
- data/apis/iam/2010-05-08/api-2.json +0 -4514
- data/apis/iam/2010-05-08/examples-1.json +0 -5
- data/apis/iam/2010-05-08/paginators-1.json +0 -198
- data/apis/iam/2010-05-08/resources-1.json +0 -1740
- data/apis/iam/2010-05-08/waiters-2.json +0 -39
- data/apis/importexport/2010-06-01/api-2.json +0 -666
- data/apis/importexport/2010-06-01/paginators-1.json +0 -11
- data/apis/inspector/2016-02-16/api-2.json +0 -1964
- data/apis/inspector/2016-02-16/examples-1.json +0 -5
- data/apis/iot-data/2015-05-28/api-2.json +0 -263
- data/apis/iot/2015-05-28/api-2.json +0 -3800
- data/apis/iot/2015-05-28/examples-1.json +0 -5
- data/apis/kinesis/2013-12-02/api-2.json +0 -822
- data/apis/kinesis/2013-12-02/examples-1.json +0 -5
- data/apis/kinesis/2013-12-02/paginators-1.json +0 -18
- data/apis/kinesis/2013-12-02/waiters-2.json +0 -18
- data/apis/kms/2014-11-01/api-2.json +0 -1209
- data/apis/kms/2014-11-01/examples-1.json +0 -5
- data/apis/kms/2014-11-01/paginators-1.json +0 -32
- data/apis/lambda/2014-11-11/api-2.json +0 -667
- data/apis/lambda/2014-11-11/paginators-1.json +0 -16
- data/apis/lambda/2015-03-31/api-2.json +0 -1342
- data/apis/lambda/2015-03-31/examples-1.json +0 -5
- data/apis/lambda/2015-03-31/paginators-1.json +0 -16
- data/apis/logs/2014-03-28/api-2.json +0 -1138
- data/apis/logs/2014-03-28/examples-1.json +0 -5
- data/apis/logs/2014-03-28/paginators-1.json +0 -49
- data/apis/machinelearning/2014-12-12/api-2.json +0 -1947
- data/apis/machinelearning/2014-12-12/paginators-1.json +0 -28
- data/apis/machinelearning/2014-12-12/waiters-2.json +0 -81
- data/apis/marketplacecommerceanalytics/2015-07-01/api-2.json +0 -120
- data/apis/marketplacecommerceanalytics/2015-07-01/examples-1.json +0 -5
- data/apis/meteringmarketplace/2016-01-14/api-2.json +0 -127
- data/apis/meteringmarketplace/2016-01-14/examples-1.json +0 -5
- data/apis/monitoring/2010-08-01/api-2.json +0 -790
- data/apis/monitoring/2010-08-01/examples-1.json +0 -5
- data/apis/monitoring/2010-08-01/paginators-1.json +0 -24
- data/apis/monitoring/2010-08-01/resources-1.json +0 -346
- data/apis/monitoring/2010-08-01/waiters-2.json +0 -18
- data/apis/opsworks/2013-02-18/api-2.json +0 -2606
- data/apis/opsworks/2013-02-18/examples-1.json +0 -5
- data/apis/opsworks/2013-02-18/paginators-1.json +0 -55
- data/apis/opsworks/2013-02-18/resources-1.json +0 -173
- data/apis/opsworks/2013-02-18/waiters-2.json +0 -295
- data/apis/rds/2014-10-31/api-2.json +0 -4757
- data/apis/rds/2014-10-31/examples-1.json +0 -5
- data/apis/rds/2014-10-31/paginators-1.json +0 -110
- data/apis/rds/2014-10-31/resources-1.json +0 -3272
- data/apis/rds/2014-10-31/waiters-2.json +0 -102
- data/apis/redshift/2012-12-01/api-2.json +0 -3768
- data/apis/redshift/2012-12-01/examples-1.json +0 -5
- data/apis/redshift/2012-12-01/paginators-1.json +0 -94
- data/apis/redshift/2012-12-01/waiters-2.json +0 -97
- data/apis/route53/2013-04-01/api-2.json +0 -3245
- data/apis/route53/2013-04-01/examples-1.json +0 -5
- data/apis/route53/2013-04-01/paginators-1.json +0 -33
- data/apis/route53/2013-04-01/waiters-2.json +0 -18
- data/apis/route53domains/2014-05-15/api-2.json +0 -1197
- data/apis/route53domains/2014-05-15/paginators-1.json +0 -17
- data/apis/s3/2006-03-01/api-2.json +0 -4517
- data/apis/s3/2006-03-01/examples-1.json +0 -5
- data/apis/s3/2006-03-01/paginators-1.json +0 -66
- data/apis/s3/2006-03-01/resources-1.json +0 -1176
- data/apis/s3/2006-03-01/waiters-2.json +0 -73
- data/apis/sdb/2009-04-15/api-2.json +0 -954
- data/apis/sdb/2009-04-15/paginators-1.json +0 -15
- data/apis/servicecatalog/2015-12-10/api-2.json +0 -749
- data/apis/servicecatalog/2015-12-10/examples-1.json +0 -5
- data/apis/sns/2010-03-31/api-2.json +0 -1139
- data/apis/sns/2010-03-31/paginators-1.json +0 -29
- data/apis/sns/2010-03-31/resources-1.json +0 -327
- data/apis/sqs/2012-11-05/api-2.json +0 -950
- data/apis/sqs/2012-11-05/examples-1.json +0 -44
- data/apis/sqs/2012-11-05/paginators-1.json +0 -7
- data/apis/ssm/2014-11-06/api-2.json +0 -1796
- data/apis/ssm/2014-11-06/examples-1.json +0 -5
- data/apis/ssm/2014-11-06/paginators-1.json +0 -34
- data/apis/storagegateway/2013-06-30/api-2.json +0 -2275
- data/apis/storagegateway/2013-06-30/examples-1.json +0 -5
- data/apis/storagegateway/2013-06-30/paginators-1.json +0 -52
- data/apis/streams.dynamodb/2012-08-10/api-2.json +0 -397
- data/apis/streams.dynamodb/2012-08-10/examples-1.json +0 -5
- data/apis/sts/2011-06-15/api-2.json +0 -521
- data/apis/sts/2011-06-15/examples-1.json +0 -5
- data/apis/support/2013-04-15/api-2.json +0 -869
- data/apis/support/2013-04-15/paginators-1.json +0 -25
- data/apis/swf/2012-01-25/api-2.json +0 -2838
- data/apis/swf/2012-01-25/paginators-1.json +0 -46
- data/apis/waf/2015-08-24/api-2.json +0 -1959
- data/apis/waf/2015-08-24/examples-1.json +0 -5
- data/apis/workspaces/2015-04-08/api-2.json +0 -632
- data/apis/workspaces/2015-04-08/examples-1.json +0 -5
- data/apis/workspaces/2015-04-08/paginators-1.json +0 -20
- data/bin/aws.rb +0 -180
- data/endpoints.json +0 -1460
- data/lib/aws-sdk-core/acm.rb +0 -6
- data/lib/aws-sdk-core/api/builder.rb +0 -106
- data/lib/aws-sdk-core/api/customizations.rb +0 -217
- data/lib/aws-sdk-core/api/docs/builder.rb +0 -220
- data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +0 -109
- data/lib/aws-sdk-core/api/docs/docstring_provider.rb +0 -75
- data/lib/aws-sdk-core/api/docs/operation_documenter.rb +0 -138
- data/lib/aws-sdk-core/api/docs/param_formatter.rb +0 -163
- data/lib/aws-sdk-core/api/docs/request_syntax_example.rb +0 -22
- data/lib/aws-sdk-core/api/docs/response_structure_example.rb +0 -91
- data/lib/aws-sdk-core/api/docs/shared_example.rb +0 -100
- data/lib/aws-sdk-core/api/docs/utils.rb +0 -133
- data/lib/aws-sdk-core/api/shape_map.rb +0 -142
- data/lib/aws-sdk-core/apigateway.rb +0 -6
- data/lib/aws-sdk-core/applicationautoscaling.rb +0 -6
- data/lib/aws-sdk-core/applicationdiscoveryservice.rb +0 -5
- data/lib/aws-sdk-core/autoscaling.rb +0 -8
- data/lib/aws-sdk-core/checksums.rb +0 -51
- data/lib/aws-sdk-core/client.rb +0 -57
- data/lib/aws-sdk-core/client_waiters.rb +0 -120
- data/lib/aws-sdk-core/cloudformation.rb +0 -8
- data/lib/aws-sdk-core/cloudfront.rb +0 -15
- data/lib/aws-sdk-core/cloudfront/url_signer.rb +0 -167
- data/lib/aws-sdk-core/cloudhsm.rb +0 -5
- data/lib/aws-sdk-core/cloudsearch.rb +0 -5
- data/lib/aws-sdk-core/cloudsearchdomain.rb +0 -5
- data/lib/aws-sdk-core/cloudtrail.rb +0 -6
- data/lib/aws-sdk-core/cloudwatch.rb +0 -8
- data/lib/aws-sdk-core/cloudwatchevents.rb +0 -5
- data/lib/aws-sdk-core/cloudwatchlogs.rb +0 -6
- data/lib/aws-sdk-core/codecommit.rb +0 -6
- data/lib/aws-sdk-core/codedeploy.rb +0 -6
- data/lib/aws-sdk-core/codepipeline.rb +0 -5
- data/lib/aws-sdk-core/cognitoidentity.rb +0 -5
- data/lib/aws-sdk-core/cognitoidentityprovider.rb +0 -5
- data/lib/aws-sdk-core/cognitosync.rb +0 -4
- data/lib/aws-sdk-core/configservice.rb +0 -6
- data/lib/aws-sdk-core/databasemigrationservice.rb +0 -5
- data/lib/aws-sdk-core/datapipeline.rb +0 -5
- data/lib/aws-sdk-core/devicefarm.rb +0 -6
- data/lib/aws-sdk-core/directconnect.rb +0 -6
- data/lib/aws-sdk-core/directoryservice.rb +0 -5
- data/lib/aws-sdk-core/dynamodb.rb +0 -40
- data/lib/aws-sdk-core/dynamodb/attribute_value.rb +0 -108
- data/lib/aws-sdk-core/dynamodbstreams.rb +0 -5
- data/lib/aws-sdk-core/ec2.rb +0 -8
- data/lib/aws-sdk-core/ecr.rb +0 -5
- data/lib/aws-sdk-core/ecs.rb +0 -7
- data/lib/aws-sdk-core/efs.rb +0 -5
- data/lib/aws-sdk-core/elasticache.rb +0 -7
- data/lib/aws-sdk-core/elasticbeanstalk.rb +0 -6
- data/lib/aws-sdk-core/elasticloadbalancing.rb +0 -6
- data/lib/aws-sdk-core/elasticsearchservice.rb +0 -4
- data/lib/aws-sdk-core/elastictranscoder.rb +0 -6
- data/lib/aws-sdk-core/empty_structure.rb +0 -3
- data/lib/aws-sdk-core/emr.rb +0 -7
- data/lib/aws-sdk-core/endpoint_provider.rb +0 -95
- data/lib/aws-sdk-core/firehose.rb +0 -4
- data/lib/aws-sdk-core/gamelift.rb +0 -5
- data/lib/aws-sdk-core/glacier.rb +0 -7
- data/lib/aws-sdk-core/iam.rb +0 -8
- data/lib/aws-sdk-core/importexport.rb +0 -5
- data/lib/aws-sdk-core/inspector.rb +0 -5
- data/lib/aws-sdk-core/iot.rb +0 -5
- data/lib/aws-sdk-core/iotdataplane.rb +0 -4
- data/lib/aws-sdk-core/kinesis.rb +0 -7
- data/lib/aws-sdk-core/kms.rb +0 -6
- data/lib/aws-sdk-core/lambda.rb +0 -6
- data/lib/aws-sdk-core/lambdapreview.rb +0 -5
- data/lib/aws-sdk-core/machinelearning.rb +0 -6
- data/lib/aws-sdk-core/marketplacecommerceanalytics.rb +0 -5
- data/lib/aws-sdk-core/marketplacemetering.rb +0 -5
- data/lib/aws-sdk-core/opsworks.rb +0 -8
- data/lib/aws-sdk-core/partitions.rb +0 -174
- data/lib/aws-sdk-core/partitions/partition.rb +0 -95
- data/lib/aws-sdk-core/partitions/partition_list.rb +0 -60
- data/lib/aws-sdk-core/partitions/region.rb +0 -78
- data/lib/aws-sdk-core/partitions/service.rb +0 -84
- data/lib/aws-sdk-core/plugins/api_gateway_header.rb +0 -19
- data/lib/aws-sdk-core/plugins/csd_conditional_signing.rb +0 -30
- data/lib/aws-sdk-core/plugins/dynamodb_crc32_validation.rb +0 -52
- data/lib/aws-sdk-core/plugins/dynamodb_extended_retries.rb +0 -22
- data/lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb +0 -209
- data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +0 -87
- data/lib/aws-sdk-core/plugins/ec2_region_validation.rb +0 -17
- data/lib/aws-sdk-core/plugins/glacier_account_id.rb +0 -19
- data/lib/aws-sdk-core/plugins/glacier_api_version.rb +0 -19
- data/lib/aws-sdk-core/plugins/glacier_checksums.rb +0 -87
- data/lib/aws-sdk-core/plugins/machine_learning_predict_endpoint.rb +0 -20
- data/lib/aws-sdk-core/plugins/request_signer.rb +0 -138
- data/lib/aws-sdk-core/plugins/route_53_id_fix.rb +0 -55
- data/lib/aws-sdk-core/plugins/s3_accelerate.rb +0 -73
- data/lib/aws-sdk-core/plugins/s3_bucket_dns.rb +0 -86
- data/lib/aws-sdk-core/plugins/s3_bucket_name_restrictions.rb +0 -21
- data/lib/aws-sdk-core/plugins/s3_expect_100_continue.rb +0 -27
- data/lib/aws-sdk-core/plugins/s3_get_bucket_location_fix.rb +0 -21
- data/lib/aws-sdk-core/plugins/s3_http_200_errors.rb +0 -45
- data/lib/aws-sdk-core/plugins/s3_location_constraint.rb +0 -31
- data/lib/aws-sdk-core/plugins/s3_md5s.rb +0 -50
- data/lib/aws-sdk-core/plugins/s3_redirects.rb +0 -37
- data/lib/aws-sdk-core/plugins/s3_request_signer.rb +0 -166
- data/lib/aws-sdk-core/plugins/s3_sse_cpk.rb +0 -64
- data/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb +0 -92
- data/lib/aws-sdk-core/plugins/sqs_md5s.rb +0 -162
- data/lib/aws-sdk-core/plugins/sqs_queue_urls.rb +0 -34
- data/lib/aws-sdk-core/plugins/swf_read_timeouts.rb +0 -23
- data/lib/aws-sdk-core/rds.rb +0 -8
- data/lib/aws-sdk-core/redshift.rb +0 -7
- data/lib/aws-sdk-core/route53.rb +0 -7
- data/lib/aws-sdk-core/route53domains.rb +0 -5
- data/lib/aws-sdk-core/s3.rb +0 -26
- data/lib/aws-sdk-core/s3/bucket_region_cache.rb +0 -75
- data/lib/aws-sdk-core/s3/presigner.rb +0 -113
- data/lib/aws-sdk-core/service.rb +0 -4
- data/lib/aws-sdk-core/servicecatalog.rb +0 -5
- data/lib/aws-sdk-core/ses.rb +0 -7
- data/lib/aws-sdk-core/signers/base.rb +0 -31
- data/lib/aws-sdk-core/signers/s3.rb +0 -184
- data/lib/aws-sdk-core/signers/v2.rb +0 -51
- data/lib/aws-sdk-core/signers/v3.rb +0 -34
- data/lib/aws-sdk-core/signers/v4.rb +0 -233
- data/lib/aws-sdk-core/simpledb.rb +0 -5
- data/lib/aws-sdk-core/sns.rb +0 -6
- data/lib/aws-sdk-core/sqs.rb +0 -6
- data/lib/aws-sdk-core/ssm.rb +0 -6
- data/lib/aws-sdk-core/storagegateway.rb +0 -6
- data/lib/aws-sdk-core/sts.rb +0 -5
- data/lib/aws-sdk-core/support.rb +0 -5
- data/lib/aws-sdk-core/swf.rb +0 -5
- data/lib/aws-sdk-core/tree_hash.rb +0 -69
- data/lib/aws-sdk-core/version.rb +0 -3
- data/lib/aws-sdk-core/waf.rb +0 -5
- data/lib/aws-sdk-core/waiters/null_provider.rb +0 -12
- data/lib/aws-sdk-core/waiters/provider.rb +0 -35
- data/lib/aws-sdk-core/workspaces.rb +0 -6
- data/lib/seahorse/client/plugins/restful_bindings.rb +0 -127
- data/service-models.json +0 -285
|
@@ -60,7 +60,7 @@ module Aws
|
|
|
60
60
|
super
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
# @return [Integer] The number of times to retry failed
|
|
63
|
+
# @return [Integer] The number of times to retry failed attempts to
|
|
64
64
|
# fetch credentials from the instance metadata service. Defaults to 0.
|
|
65
65
|
attr_reader :retries
|
|
66
66
|
|
|
@@ -85,7 +85,7 @@ module Aws
|
|
|
85
85
|
c['SecretAccessKey'],
|
|
86
86
|
c['Token']
|
|
87
87
|
)
|
|
88
|
-
@expiration = c['Expiration'] ? Time.
|
|
88
|
+
@expiration = c['Expiration'] ? Time.iso8601(c['Expiration']) : nil
|
|
89
89
|
end
|
|
90
90
|
end
|
|
91
91
|
|
|
@@ -126,7 +126,7 @@ module Aws
|
|
|
126
126
|
retries = 0
|
|
127
127
|
begin
|
|
128
128
|
yield
|
|
129
|
-
rescue *error_classes =>
|
|
129
|
+
rescue *error_classes => _error
|
|
130
130
|
if retries < max_retries
|
|
131
131
|
@backoff.call(retries)
|
|
132
132
|
retries += 1
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
module Aws
|
|
2
|
+
# @api private
|
|
3
|
+
# a LRU cache caching endpoints data
|
|
4
|
+
class EndpointCache
|
|
5
|
+
|
|
6
|
+
# default cache entries limit
|
|
7
|
+
MAX_ENTRIES = 1000
|
|
8
|
+
|
|
9
|
+
# default max threads pool size
|
|
10
|
+
MAX_THREADS = 10
|
|
11
|
+
|
|
12
|
+
def initialize(options = {})
|
|
13
|
+
@max_entries = options[:max_entries] || MAX_ENTRIES
|
|
14
|
+
@entries = {} # store endpoints
|
|
15
|
+
@max_threads = options[:max_threads] || MAX_THREADS
|
|
16
|
+
@pool = {} # store polling threads
|
|
17
|
+
@mutex = Mutex.new
|
|
18
|
+
@require_identifier = nil # whether endpoint operation support identifier
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @return [Integer] Max size limit of cache
|
|
22
|
+
attr_reader :max_entries
|
|
23
|
+
|
|
24
|
+
# @return [Integer] Max count of polling threads
|
|
25
|
+
attr_reader :max_threads
|
|
26
|
+
|
|
27
|
+
# return [Hash] Polling threads pool
|
|
28
|
+
attr_reader :pool
|
|
29
|
+
|
|
30
|
+
# @param [String] key
|
|
31
|
+
# @return [Endpoint]
|
|
32
|
+
def [](key)
|
|
33
|
+
@mutex.synchronize do
|
|
34
|
+
# fetching an existing endpoint delete it and then append it
|
|
35
|
+
endpoint = @entries[key]
|
|
36
|
+
if endpoint
|
|
37
|
+
@entries.delete(key)
|
|
38
|
+
@entries[key] = endpoint
|
|
39
|
+
end
|
|
40
|
+
endpoint
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @param [String] key
|
|
45
|
+
# @param [Hash] value
|
|
46
|
+
def []=(key, value)
|
|
47
|
+
@mutex.synchronize do
|
|
48
|
+
# delete the least recent used endpoint when cache is full
|
|
49
|
+
unless @entries.size < @max_entries
|
|
50
|
+
old_key, _ = @entries.shift
|
|
51
|
+
self.delete_polling_thread(old_key)
|
|
52
|
+
end
|
|
53
|
+
# delete old value if exists
|
|
54
|
+
@entries.delete(key)
|
|
55
|
+
@entries[key] = Endpoint.new(value.to_hash)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# checking whether an unexpired endpoint key exists in cache
|
|
60
|
+
# @param [String] key
|
|
61
|
+
# @return [Boolean]
|
|
62
|
+
def key?(key)
|
|
63
|
+
if @entries.key?(key) && (@entries[key].nil? || @entries[key].expired?)
|
|
64
|
+
self.delete(key)
|
|
65
|
+
end
|
|
66
|
+
@entries.key?(key)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# checking whether an polling thread exist for the key
|
|
70
|
+
# @param [String] key
|
|
71
|
+
# @return [Boolean]
|
|
72
|
+
def threads_key?(key)
|
|
73
|
+
@pool.key?(key)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# remove entry only
|
|
77
|
+
# @param [String] key
|
|
78
|
+
def delete(key)
|
|
79
|
+
@mutex.synchronize do
|
|
80
|
+
@entries.delete(key)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# kill the old polling thread and remove it from pool
|
|
85
|
+
# @param [String] key
|
|
86
|
+
def delete_polling_thread(key)
|
|
87
|
+
Thread.kill(@pool[key]) if self.threads_key?(key)
|
|
88
|
+
@pool.delete(key)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# update cache with requests (using service endpoint operation)
|
|
92
|
+
# to fetch endpoint list (with identifiers when available)
|
|
93
|
+
# @param [String] key
|
|
94
|
+
# @param [RequestContext] ctx
|
|
95
|
+
def update(key, ctx)
|
|
96
|
+
resp = _request_endpoint(ctx)
|
|
97
|
+
if resp && resp.endpoints
|
|
98
|
+
resp.endpoints.each { |e| self[key] = e }
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# extract the key to be used in the cache from request context
|
|
103
|
+
# @param [RequestContext] ctx
|
|
104
|
+
# @return [String]
|
|
105
|
+
def extract_key(ctx)
|
|
106
|
+
parts = []
|
|
107
|
+
# fetching from cred provider directly gives warnings
|
|
108
|
+
parts << ctx.config.credentials.credentials.access_key_id
|
|
109
|
+
if _endpoint_operation_identifier(ctx)
|
|
110
|
+
parts << ctx.operation_name
|
|
111
|
+
ctx.operation.input.shape.members.inject(parts) do |p, (name, ref)|
|
|
112
|
+
p << ctx.params[name] if ref["endpointdiscoveryid"]
|
|
113
|
+
p
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
parts.join('_')
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# update polling threads pool
|
|
120
|
+
# param [String] key
|
|
121
|
+
# param [Thread] thread
|
|
122
|
+
def update_polling_pool(key, thread)
|
|
123
|
+
unless @pool.size < @max_threads
|
|
124
|
+
_, thread = @pool.shift
|
|
125
|
+
Thread.kill(thread)
|
|
126
|
+
end
|
|
127
|
+
@pool[key] = thread
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# kill all polling threads
|
|
131
|
+
def stop_polling!
|
|
132
|
+
@pool.each { |_, t| Thread.kill(t) }
|
|
133
|
+
@pool = {}
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
private
|
|
137
|
+
|
|
138
|
+
def _request_endpoint(ctx)
|
|
139
|
+
params = {}
|
|
140
|
+
if _endpoint_operation_identifier(ctx)
|
|
141
|
+
# build identifier params when available
|
|
142
|
+
params[:operation] = ctx.operation.name
|
|
143
|
+
ctx.operation.input.shape.members.inject(params) do |p, (name, ref)|
|
|
144
|
+
if ref["endpointdiscoveryid"]
|
|
145
|
+
p[:identifiers] ||= {}
|
|
146
|
+
p[:identifiers][ref.location_name] = ctx.params[name]
|
|
147
|
+
end
|
|
148
|
+
p
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
begin
|
|
153
|
+
endpoint_operation_name = ctx.config.api.endpoint_operation
|
|
154
|
+
ctx.client.send(endpoint_operation_name, params)
|
|
155
|
+
rescue Aws::Errors::ServiceError
|
|
156
|
+
nil
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def _endpoint_operation_identifier(ctx)
|
|
161
|
+
return @require_identifier unless @require_identifier.nil?
|
|
162
|
+
operation_name = ctx.config.api.endpoint_operation
|
|
163
|
+
operation = ctx.config.api.operation(operation_name)
|
|
164
|
+
@require_identifier = operation.input.shape.members.any?
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
class Endpoint
|
|
168
|
+
|
|
169
|
+
# default endpoint cache time, 1 minute
|
|
170
|
+
CACHE_PERIOD = 1
|
|
171
|
+
|
|
172
|
+
def initialize(options)
|
|
173
|
+
@address = options.fetch(:address)
|
|
174
|
+
@cache_period = options[:cache_period_in_minutes] || CACHE_PERIOD
|
|
175
|
+
@created_time = Time.now
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# [String] valid URI address (with path)
|
|
179
|
+
attr_reader :address
|
|
180
|
+
|
|
181
|
+
def expired?
|
|
182
|
+
Time.now - @created_time > @cache_period * 60
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
end
|
|
188
|
+
end
|
data/lib/aws-sdk-core/errors.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'thread'
|
|
2
2
|
|
|
3
3
|
module Aws
|
|
4
|
-
|
|
5
|
-
# Each Service module has its own Errors module, e.g. {S3::Errors}.
|
|
6
4
|
module Errors
|
|
7
5
|
|
|
6
|
+
class NonSupportedRubyVersionError < RuntimeError; end
|
|
7
|
+
|
|
8
8
|
# The base class for all errors returned by an Amazon Web Service.
|
|
9
9
|
# All ~400 level client errors and ~500 level server errors are raised
|
|
10
10
|
# as service errors. This indicates it was an error returned from the
|
|
@@ -13,9 +13,12 @@ module Aws
|
|
|
13
13
|
|
|
14
14
|
# @param [Seahorse::Client::RequestContext] context
|
|
15
15
|
# @param [String] message
|
|
16
|
-
|
|
16
|
+
# @param [Aws::Structure] data
|
|
17
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
|
17
18
|
@code = self.class.code
|
|
19
|
+
@message = message if message && !message.empty?
|
|
18
20
|
@context = context
|
|
21
|
+
@data = data
|
|
19
22
|
super(message)
|
|
20
23
|
end
|
|
21
24
|
|
|
@@ -26,6 +29,9 @@ module Aws
|
|
|
26
29
|
# that triggered the remote service to return this error.
|
|
27
30
|
attr_reader :context
|
|
28
31
|
|
|
32
|
+
# @return [Aws::Structure]
|
|
33
|
+
attr_reader :data
|
|
34
|
+
|
|
29
35
|
class << self
|
|
30
36
|
|
|
31
37
|
# @return [String]
|
|
@@ -34,24 +40,178 @@ module Aws
|
|
|
34
40
|
end
|
|
35
41
|
end
|
|
36
42
|
|
|
43
|
+
# Raised when a `streaming` operation has `requiresLength` trait
|
|
44
|
+
# enabled but request payload size/length cannot be calculated
|
|
45
|
+
class MissingContentLength < RuntimeError
|
|
46
|
+
def initialize(*args)
|
|
47
|
+
msg = 'Required `Content-Length` value missing for the request.'
|
|
48
|
+
super(msg)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Rasied when endpoint discovery failed for operations
|
|
53
|
+
# that requires endpoints from endpoint discovery
|
|
54
|
+
class EndpointDiscoveryError < RuntimeError
|
|
55
|
+
def initialize(*args)
|
|
56
|
+
msg = 'Endpoint discovery failed for the operation or discovered endpoint is not working, '\
|
|
57
|
+
'request will keep failing until endpoint discovery succeeds or :endpoint option is provided.'
|
|
58
|
+
super(msg)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# raised when hostLabel member is not provided
|
|
63
|
+
# at operation input when endpoint trait is available
|
|
64
|
+
# with 'hostPrefix' requirement
|
|
65
|
+
class MissingEndpointHostLabelValue < RuntimeError
|
|
66
|
+
|
|
67
|
+
def initialize(name)
|
|
68
|
+
msg = "Missing required parameter #{name} to construct"\
|
|
69
|
+
" endpoint host prefix. You can disable host prefix by"\
|
|
70
|
+
" setting :disable_host_prefix_injection to `true`."
|
|
71
|
+
super(msg)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Raised when attempting to #signal an event before
|
|
77
|
+
# making an async request
|
|
78
|
+
class SignalEventError < RuntimeError; end
|
|
79
|
+
|
|
80
|
+
# Raised when EventStream Parser failed to parse
|
|
81
|
+
# a raw event message
|
|
82
|
+
class EventStreamParserError < RuntimeError; end
|
|
83
|
+
|
|
84
|
+
# Raise when EventStream Builder failed to build
|
|
85
|
+
# an event message with parameters provided
|
|
86
|
+
class EventStreamBuilderError < RuntimeError; end
|
|
87
|
+
|
|
88
|
+
# Error event in an event stream which has event_type :error
|
|
89
|
+
# error code and error message can be retrieved when available.
|
|
90
|
+
#
|
|
91
|
+
# example usage:
|
|
92
|
+
#
|
|
93
|
+
# client.stream_foo(name: 'bar') do |event|
|
|
94
|
+
# stream.on_error_event do |event|
|
|
95
|
+
# puts "Error #{event.error_code}: #{event.error_message}"
|
|
96
|
+
# raise event
|
|
97
|
+
# end
|
|
98
|
+
# end
|
|
99
|
+
#
|
|
100
|
+
class EventError < RuntimeError
|
|
101
|
+
|
|
102
|
+
def initialize(event_type, code, message)
|
|
103
|
+
@event_type = event_type
|
|
104
|
+
@error_code = code
|
|
105
|
+
@error_message = message
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @return [Symbol]
|
|
109
|
+
attr_reader :event_type
|
|
110
|
+
|
|
111
|
+
# @return [String]
|
|
112
|
+
attr_reader :error_code
|
|
113
|
+
|
|
114
|
+
# @return [String]
|
|
115
|
+
attr_reader :error_message
|
|
116
|
+
|
|
117
|
+
end
|
|
118
|
+
|
|
37
119
|
# Various plugins perform client-side checksums of responses.
|
|
38
120
|
# This error indicates a checksum failed.
|
|
39
121
|
class ChecksumError < RuntimeError; end
|
|
40
122
|
|
|
41
|
-
# Raised when a
|
|
123
|
+
# Raised when a client is constructed and the specified shared
|
|
42
124
|
# credentials profile does not exist.
|
|
43
125
|
class NoSuchProfileError < RuntimeError; end
|
|
44
126
|
|
|
45
|
-
# Raised when a
|
|
127
|
+
# Raised when a client is constructed, where Assume Role credentials are
|
|
46
128
|
# expected, and there is no source profile specified.
|
|
47
129
|
class NoSourceProfileError < RuntimeError; end
|
|
48
130
|
|
|
49
|
-
# Raised when a
|
|
131
|
+
# Raised when a client is constructed with Assume Role credentials using
|
|
132
|
+
# a credential_source, and that source type is unsupported.
|
|
133
|
+
class InvalidCredentialSourceError < RuntimeError; end
|
|
134
|
+
|
|
135
|
+
# Raised when a client is constructed with Assume Role credentials, but
|
|
136
|
+
# the profile has both source_profile and credential_source.
|
|
137
|
+
class CredentialSourceConflictError < RuntimeError; end
|
|
138
|
+
|
|
139
|
+
# Raised when a client is constructed with Assume Role credentials using
|
|
140
|
+
# a credential_source, and that source doesn't provide credentials.
|
|
141
|
+
class NoSourceCredentialsError < RuntimeError; end
|
|
142
|
+
|
|
143
|
+
# Raised when a client is constructed and credentials are not
|
|
50
144
|
# set, or the set credentials are empty.
|
|
51
|
-
class MissingCredentialsError < RuntimeError
|
|
145
|
+
class MissingCredentialsError < RuntimeError
|
|
146
|
+
def initialize(*args)
|
|
147
|
+
msg = 'unable to sign request without credentials set'
|
|
148
|
+
super(msg)
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Raised when a credentials provider process returns a JSON
|
|
153
|
+
# payload with either invalid version number or malformed contents
|
|
154
|
+
class InvalidProcessCredentialsPayload < RuntimeError; end
|
|
155
|
+
|
|
156
|
+
# Raised when a client is constructed and region is not specified.
|
|
157
|
+
class MissingRegionError < ArgumentError
|
|
158
|
+
def initialize(*args)
|
|
159
|
+
msg = "missing region; use :region option or "
|
|
160
|
+
msg << "export region name to ENV['AWS_REGION']"
|
|
161
|
+
super(msg)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# Raised when attempting to connect to an endpoint and a `SocketError`
|
|
166
|
+
# is received from the HTTP client. This error is typically the result
|
|
167
|
+
# of configuring an invalid `:region`.
|
|
168
|
+
class NoSuchEndpointError < RuntimeError
|
|
169
|
+
|
|
170
|
+
def initialize(options = {})
|
|
171
|
+
@context = options[:context]
|
|
172
|
+
@endpoint = @context.http_request.endpoint
|
|
173
|
+
@original_error = options[:original_error]
|
|
174
|
+
super(<<-MSG)
|
|
175
|
+
Encountered a `SocketError` while attempting to connect to:
|
|
176
|
+
|
|
177
|
+
#{endpoint.to_s}
|
|
178
|
+
|
|
179
|
+
This is typically the result of an invalid `:region` option or a
|
|
180
|
+
poorly formatted `:endpoint` option.
|
|
181
|
+
|
|
182
|
+
* Avoid configuring the `:endpoint` option directly. Endpoints are constructed
|
|
183
|
+
from the `:region`. The `:endpoint` option is reserved for connecting to
|
|
184
|
+
non-standard test endpoints.
|
|
185
|
+
|
|
186
|
+
* Not every service is available in every region.
|
|
52
187
|
|
|
53
|
-
|
|
54
|
-
|
|
188
|
+
* Never suffix region names with availability zones.
|
|
189
|
+
Use "us-east-1", not "us-east-1a"
|
|
190
|
+
|
|
191
|
+
Known AWS regions include (not specific to this service):
|
|
192
|
+
|
|
193
|
+
#{possible_regions}
|
|
194
|
+
MSG
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
attr_reader :context
|
|
198
|
+
|
|
199
|
+
attr_reader :endpoint
|
|
200
|
+
|
|
201
|
+
attr_reader :original_error
|
|
202
|
+
|
|
203
|
+
private
|
|
204
|
+
|
|
205
|
+
def possible_regions
|
|
206
|
+
Aws.partitions.inject([]) do |region_names, partition|
|
|
207
|
+
partition.regions.each do |region|
|
|
208
|
+
region_names << region.name
|
|
209
|
+
end
|
|
210
|
+
region_names
|
|
211
|
+
end.join("\n")
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
end
|
|
55
215
|
|
|
56
216
|
# This module is mixed into another module, providing dynamic
|
|
57
217
|
# error classes. Error classes all inherit from {ServiceError}.
|
|
@@ -86,7 +246,11 @@ module Aws
|
|
|
86
246
|
def error_class(error_code)
|
|
87
247
|
constant = error_class_constant(error_code)
|
|
88
248
|
if error_const_set?(constant)
|
|
89
|
-
|
|
249
|
+
# modeled error class exist
|
|
250
|
+
# set code attribute
|
|
251
|
+
err_class = const_get(constant)
|
|
252
|
+
err_class.code = constant.to_s
|
|
253
|
+
err_class
|
|
90
254
|
else
|
|
91
255
|
set_error_constant(constant)
|
|
92
256
|
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module Aws
|
|
2
|
+
class EventEmitter
|
|
3
|
+
|
|
4
|
+
def initialize
|
|
5
|
+
@listeners = {}
|
|
6
|
+
@validate_event = true
|
|
7
|
+
@status = :sleep
|
|
8
|
+
@signal_queue = Queue.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
attr_accessor :stream
|
|
12
|
+
|
|
13
|
+
attr_accessor :encoder
|
|
14
|
+
|
|
15
|
+
attr_accessor :validate_event
|
|
16
|
+
|
|
17
|
+
attr_accessor :signal_queue
|
|
18
|
+
|
|
19
|
+
def on(type, callback)
|
|
20
|
+
(@listeners[type] ||= []) << callback
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def signal(type, event)
|
|
24
|
+
return unless @listeners[type]
|
|
25
|
+
@listeners[type].each do |listener|
|
|
26
|
+
listener.call(event) if event.event_type == type
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def emit(type, params)
|
|
31
|
+
unless @stream
|
|
32
|
+
raise Aws::Errors::SignalEventError.new(
|
|
33
|
+
"Singaling events before making async request"\
|
|
34
|
+
" is not allowed."
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
if @validate_event && type != :end_stream
|
|
38
|
+
Aws::ParamValidator.validate!(
|
|
39
|
+
@encoder.rules.shape.member(type), params)
|
|
40
|
+
end
|
|
41
|
+
_ready_for_events?
|
|
42
|
+
@stream.data(
|
|
43
|
+
@encoder.encode(type, params),
|
|
44
|
+
end_stream: type == :end_stream
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def _ready_for_events?
|
|
51
|
+
return true if @status == :ready
|
|
52
|
+
|
|
53
|
+
# blocked until once initial 200 response is received
|
|
54
|
+
# signal will be available in @signal_queue
|
|
55
|
+
# and this check will no longer be blocked
|
|
56
|
+
@signal_queue.pop
|
|
57
|
+
@status = :ready
|
|
58
|
+
true
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|