From 5753f3dc43d6087ab46d650870b5592f4cfd9c2f Mon Sep 17 00:00:00 2001 From: Josh Baker Date: Thu, 5 Oct 2017 15:31:53 -0700 Subject: [PATCH] updated vendor for aws --- Gopkg.lock | 25 +- .../aws/aws-sdk-go/.github/ISSUE_TEMPLATE.md | 14 + .../.github/PULL_REQUEST_TEMPLATE.md | 3 + vendor/github.com/aws/aws-sdk-go/.gitignore | 11 + .../github.com/aws/aws-sdk-go/.godoc_config | 14 + vendor/github.com/aws/aws-sdk-go/.travis.yml | 25 + vendor/github.com/aws/aws-sdk-go/CHANGELOG.md | 133 + vendor/github.com/aws/aws-sdk-go/Gopkg.lock | 20 + vendor/github.com/aws/aws-sdk-go/Gopkg.toml | 48 + .../aws/aws-sdk-go/aws/convert_types_test.go | 347 ++- .../aws/corehandlers/handlers_test.go | 91 +- .../aws/corehandlers/param_validator_test.go | 72 +- .../aws-sdk-go/aws/ec2metadata/api_test.go | 117 +- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 6 + .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../vendor/golang.org/x/tools/LICENSE | 27 - .../vendor/golang.org/x/tools/PATENTS | 22 - .../x/tools/go/ast/astutil/enclosing.go | 624 ---- .../x/tools/go/ast/astutil/imports.go | 400 --- .../golang.org/x/tools/go/ast/astutil/util.go | 14 - .../x/tools/go/buildutil/allpackages.go | 195 -- .../x/tools/go/buildutil/fakecontext.go | 108 - .../golang.org/x/tools/go/buildutil/tags.go | 75 - .../golang.org/x/tools/go/buildutil/util.go | 167 -- .../golang.org/x/tools/go/loader/cgo.go | 209 -- .../x/tools/go/loader/cgo_pkgconfig.go | 39 - .../golang.org/x/tools/go/loader/doc.go | 205 -- .../golang.org/x/tools/go/loader/go16.go | 13 - .../golang.org/x/tools/go/loader/loader.go | 1059 ------- .../golang.org/x/tools/go/loader/util.go | 124 - .../aws/aws-sdk-go/awstesting/assert.go | 16 + .../customizations/s3/integration_test.go | 43 +- .../customizations/s3/s3crypto/stepdef.go | 45 +- .../awstesting/integration/smoke/shared.go | 86 +- .../aws-sdk-go/awstesting/performance/init.go | 9 +- .../aws/aws-sdk-go/awstesting/util_test.go | 58 +- .../github.com/aws/aws-sdk-go/buildspec.yml | 21 + .../service/dynamodb/expression/readme.md | 102 + .../service/dynamodb/expression/scan.go | 88 + .../github.com/aws/aws-sdk-go/models/apis/AWS | 1 - .../apis/appstream/2016-12-01/api-2.json | 280 ++ .../apis/appstream/2016-12-01/docs-2.json | 534 ++-- .../models/apis/budgets/2016-10-20/api-2.json | 6 +- .../apis/cloudformation/2010-05-15/api-2.json | 43 +- .../cloudformation/2010-05-15/docs-2.json | 34 +- .../apis/cloudhsm/2014-05-30/docs-2.json | 44 +- .../cloudhsm/2014-05-30/paginators-1.json | 4 + .../apis/codebuild/2016-10-06/api-2.json | 69 +- .../apis/codebuild/2016-10-06/docs-2.json | 41 +- .../apis/codepipeline/2015-07-09/api-2.json | 27 +- .../apis/codepipeline/2015-07-09/docs-2.json | 122 +- .../models/apis/config/2014-11-12/api-2.json | 7 +- .../models/apis/config/2014-11-12/docs-2.json | 4 +- .../models/apis/ec2/2016-11-15/api-2.json | 268 +- .../models/apis/ec2/2016-11-15/docs-2.json | 209 +- .../models/apis/ec2/2016-11-15/waiters-2.json | 6 + .../models/apis/ecs/2014-11-13/api-2.json | 14 + .../models/apis/ecs/2014-11-13/docs-2.json | 22 +- .../apis/greengrass/2017-06-07/api-2.json | 58 +- .../apis/greengrass/2017-06-07/docs-2.json | 43 +- .../kinesisanalytics/2015-08-14/api-2.json | 168 +- .../kinesisanalytics/2015-08-14/docs-2.json | 102 +- .../models/apis/logs/2014-03-28/api-2.json | 54 +- .../models/apis/logs/2014-03-28/docs-2.json | 40 +- .../mturk-requester/2017-01-17/api-2.json | 52 +- .../mturk-requester/2017-01-17/docs-2.json | 28 +- .../apis/organizations/2016-11-28/api-2.json | 4 + .../apis/organizations/2016-11-28/docs-2.json | 2 +- .../apis/pinpoint/2016-12-01/api-2.json | 752 ++++- .../apis/pinpoint/2016-12-01/docs-2.json | 177 +- .../models/apis/rds/2014-10-31/api-2.json | 22 +- .../models/apis/rds/2014-10-31/docs-2.json | 28 +- .../apis/redshift/2012-12-01/api-2.json | 7 +- .../apis/redshift/2012-12-01/docs-2.json | 26 +- .../models/apis/route53/2013-04-01/api-2.json | 22 +- .../apis/route53/2013-04-01/docs-2.json | 16 +- .../apis/route53domains/2014-05-15/api-2.json | 68 +- .../route53domains/2014-05-15/docs-2.json | 41 +- .../apis/runtime.lex/2016-11-28/api-2.json | 19 +- .../apis/runtime.lex/2016-11-28/docs-2.json | 37 +- .../models/apis/ssm/2014-11-06/api-2.json | 38 +- .../models/apis/ssm/2014-11-06/docs-2.json | 94 +- .../models/endpoints/endpoints.json | 8 +- .../models/protocol_tests/generate.go | 73 +- .../models/protocol_tests/input/query.json | 44 + .../private/model/api/customization_passes.go | 14 +- .../private/protocol/ec2query/build_test.go | 81 +- .../protocol/ec2query/unmarshal_test.go | 161 +- .../private/protocol/jsonrpc/build_test.go | 209 +- .../protocol/jsonrpc/unmarshal_test.go | 153 +- .../private/protocol/query/build_test.go | 1332 +++++---- .../protocol/query/queryutil/queryutil.go | 4 + .../private/protocol/query/unmarshal_test.go | 281 +- .../protocol/restjson/build_bench_test.go | 452 ++- .../private/protocol/restjson/build_test.go | 229 +- .../protocol/restjson/unmarshal_test.go | 229 +- .../protocol/restxml/build_bench_test.go | 42 +- .../private/protocol/restxml/build_test.go | 277 +- .../protocol/restxml/unmarshal_test.go | 297 +- .../aws/aws-sdk-go/service/appstream/api.go | 1861 ++++++++++-- .../appstream/appstreamiface/interface.go | 28 + .../aws/aws-sdk-go/service/appstream/doc.go | 3 +- .../aws/aws-sdk-go/service/budgets/api.go | 8 + .../aws-sdk-go/service/cloudformation/api.go | 267 ++ .../cloudformationiface/interface.go | 4 + .../cloudfront/sign/sign_cookie_test.go | 82 +- .../aws/aws-sdk-go/service/cloudhsm/api.go | 5 +- .../aws/aws-sdk-go/service/cloudhsm/doc.go | 7 +- .../cloudsearchdomain/customizations_test.go | 34 +- .../aws-sdk-go/service/cloudwatchlogs/api.go | 385 ++- .../cloudwatchlogsiface/interface.go | 12 +- .../aws/aws-sdk-go/service/codebuild/api.go | 347 +++ .../codebuild/codebuildiface/interface.go | 8 + .../aws/aws-sdk-go/service/codebuild/doc.go | 12 +- .../aws-sdk-go/service/codebuild/errors.go | 6 + .../aws-sdk-go/service/codepipeline/api.go | 236 +- .../aws-sdk-go/service/codepipeline/doc.go | 6 +- .../cognitoidentity/customizations_test.go | 28 +- .../aws-sdk-go/service/configservice/api.go | 24 +- .../aws-sdk-go/service/dynamodb/doc_custom.go | 109 +- .../dynamodb/dynamodbattribute/decode_test.go | 95 +- .../dynamodb/dynamodbattribute/encode_test.go | 70 +- .../dynamodb/dynamodbattribute/field_test.go | 18 +- .../dynamodb/dynamodbattribute/shared_test.go | 13 +- .../dynamodb/dynamodbattribute/tag_test.go | 6 +- .../service/dynamodb/expression/condition.go | 1577 ++++++++++ .../dynamodb/expression/condition_test.go | 1615 +++++++++++ .../service/dynamodb/expression/doc.go | 48 + .../service/dynamodb/expression/error.go | 59 + .../service/dynamodb/expression/error_test.go | 51 + .../dynamodb/expression/examples_test.go | 315 ++ .../service/dynamodb/expression/expression.go | 635 ++++ .../dynamodb/expression/expression_test.go | 1082 +++++++ .../dynamodb/expression/key_condition.go | 557 ++++ .../dynamodb/expression/key_condition_test.go | 446 +++ .../service/dynamodb/expression/operand.go | 620 ++++ .../dynamodb/expression/operand_test.go | 144 + .../service/dynamodb/expression/projection.go | 148 + .../dynamodb/expression/projection_test.go | 215 ++ .../service/dynamodb/expression/update.go | 391 +++ .../dynamodb/expression/update_test.go | 771 +++++ .../aws/aws-sdk-go/service/ec2/api.go | 1359 ++++++++- .../service/ec2/customizations_test.go | 25 +- .../service/ec2/ec2iface/interface.go | 20 + .../aws/aws-sdk-go/service/ec2/waiters.go | 5 + .../aws/aws-sdk-go/service/ecs/api.go | 125 +- .../service/glacier/customizations_test.go | 54 +- .../aws/aws-sdk-go/service/greengrass/api.go | 241 +- .../aws-sdk-go/service/greengrass/errors.go | 2 +- .../greengrass/greengrassiface/interface.go | 4 + .../iotdataplane/customizations_test.go | 34 +- .../service/kinesisanalytics/api.go | 860 +++++- .../kinesisanalyticsiface/interface.go | 8 + .../service/lexruntimeservice/api.go | 294 +- .../service/lexruntimeservice/errors.go | 18 +- .../machinelearning/customizations_test.go | 10 +- .../aws/aws-sdk-go/service/mturk/api.go | 148 +- .../aws-sdk-go/service/organizations/api.go | 16 +- .../aws/aws-sdk-go/service/pinpoint/api.go | 2580 ++++++++++++++++- .../aws/aws-sdk-go/service/pinpoint/doc.go | 2 + .../pinpoint/pinpointiface/interface.go | 28 + .../aws/aws-sdk-go/service/rds/api.go | 163 +- .../service/rds/customizations_test.go | 36 +- .../service/rds/rdsutils/connect_test.go | 11 +- .../aws/aws-sdk-go/service/redshift/api.go | 119 +- .../aws/aws-sdk-go/service/route53/api.go | 74 +- .../route53/unmarshal_error_leak_test.go | 16 +- .../service/route53/unmarshal_error_test.go | 45 +- .../aws-sdk-go/service/route53domains/api.go | 411 ++- .../service/route53domains/errors.go | 6 +- .../route53domainsiface/interface.go | 4 + .../aws/aws-sdk-go/service/s3/api.go | 18 + .../service/s3/bucket_location_test.go | 6 +- .../service/s3/customizations_test.go | 29 +- .../s3/platform_handlers_go1.6_test.go | 33 +- .../s3crypto/aes_gcm_content_cipher_test.go | 17 +- .../service/s3/s3crypto/aes_gcm_test.go | 30 +- .../service/s3/s3crypto/cipher_test.go | 18 +- .../service/s3/s3crypto/cipher_util_test.go | 86 +- .../s3/s3crypto/decryption_client_test.go | 86 +- .../service/s3/s3crypto/encryption_client.go | 2 +- .../s3/s3crypto/encryption_client_test.go | 30 +- .../service/s3/s3crypto/hash_io_test.go | 12 +- .../service/s3/s3crypto/helper_test.go | 65 +- .../service/s3/s3crypto/key_handler_test.go | 14 +- .../s3/s3crypto/kms_key_handler_test.go | 48 +- .../service/s3/s3crypto/mat_desc_test.go | 19 +- .../service/s3/s3crypto/strategy_test.go | 12 +- .../aws-sdk-go/service/s3/s3manager/upload.go | 3 + .../aws/aws-sdk-go/service/s3/sse_test.go | 66 +- .../service/s3/statusok_error_test.go | 84 +- .../service/s3/unmarshal_error_leak_test.go | 15 +- .../simpledb/unmarshal_error_leak_test.go | 13 +- .../service/simpledb/unmarshall_error_test.go | 34 +- .../aws/aws-sdk-go/service/sqs/api_test.go | 14 +- .../aws-sdk-go/service/sqs/checksums_test.go | 79 +- .../aws/aws-sdk-go/service/ssm/api.go | 240 +- .../aws/aws-sdk-go/service/ssm/doc.go | 4 + .../aws/aws-sdk-go/service/ssm/errors.go | 11 +- .../service/sts/customizations_test.go | 18 +- .../github.com => }/go-ini/ini/.gitignore | 0 .../github.com => }/go-ini/ini/.travis.yml | 5 +- .../vendor/github.com => }/go-ini/ini/LICENSE | 0 .../github.com => }/go-ini/ini/Makefile | 0 .../github.com => }/go-ini/ini/README.md | 10 +- .../github.com => }/go-ini/ini/README_ZH.md | 10 +- .../github.com => }/go-ini/ini/error.go | 0 .../vendor/github.com => }/go-ini/ini/ini.go | 79 +- .../github.com => }/go-ini/ini/ini_test.go | 42 + .../vendor/github.com => }/go-ini/ini/key.go | 44 +- .../github.com => }/go-ini/ini/key_test.go | 0 .../github.com => }/go-ini/ini/parser.go | 23 +- .../github.com => }/go-ini/ini/parser_test.go | 0 .../github.com => }/go-ini/ini/section.go | 14 + .../go-ini/ini/section_test.go | 0 .../github.com => }/go-ini/ini/struct.go | 92 +- .../github.com => }/go-ini/ini/struct_test.go | 15 + .../go-ini/ini/testdata/UTF-16-BE-BOM.ini | Bin .../go-ini/ini/testdata/UTF-16-LE-BOM.ini | Bin .../go-ini/ini/testdata/UTF-8-BOM.ini | 0 .../go-ini/ini/testdata/aicc.ini | 0 .../go-ini/ini/testdata/conf.ini | 0 .../jmespath/go-jmespath/.gitignore | 0 .../jmespath/go-jmespath/.travis.yml | 0 .../jmespath/go-jmespath/LICENSE | 0 .../jmespath/go-jmespath/Makefile | 0 .../jmespath/go-jmespath/README.md | 0 .../jmespath/go-jmespath/api.go | 0 .../jmespath/go-jmespath/api_test.go | 0 .../go-jmespath/astnodetype_string.go | 0 .../go-jmespath/compliance/basic.json | 0 .../go-jmespath/compliance/boolean.json | 0 .../go-jmespath/compliance/current.json | 0 .../go-jmespath/compliance/escape.json | 0 .../go-jmespath/compliance/filters.json | 0 .../go-jmespath/compliance/functions.json | 0 .../go-jmespath/compliance/identifiers.json | 0 .../go-jmespath/compliance/indices.json | 0 .../go-jmespath/compliance/literal.json | 0 .../go-jmespath/compliance/multiselect.json | 0 .../go-jmespath/compliance/ormatch.json | 0 .../jmespath/go-jmespath/compliance/pipe.json | 0 .../go-jmespath/compliance/slice.json | 0 .../go-jmespath/compliance/syntax.json | 0 .../go-jmespath/compliance/unicode.json | 0 .../go-jmespath/compliance/wildcard.json | 0 .../jmespath/go-jmespath/compliance_test.go | 0 .../jmespath/go-jmespath/functions.go | 0 .../jmespath/go-jmespath/fuzz/jmespath.go | 0 .../jmespath/go-jmespath/fuzz/testdata/expr-1 | 1 + .../go-jmespath/fuzz/testdata/expr-10 | 1 + .../go-jmespath/fuzz/testdata/expr-100 | 1 + .../go-jmespath/fuzz/testdata/expr-101 | 1 + .../go-jmespath/fuzz/testdata/expr-102 | 1 + .../go-jmespath/fuzz/testdata/expr-103 | 1 + .../go-jmespath/fuzz/testdata/expr-104 | 1 + .../go-jmespath/fuzz/testdata/expr-105 | 1 + .../go-jmespath/fuzz/testdata/expr-106 | 1 + .../go-jmespath/fuzz/testdata/expr-107 | 1 + .../go-jmespath/fuzz/testdata/expr-108 | 1 + .../go-jmespath/fuzz/testdata/expr-109 | 1 + .../go-jmespath/fuzz/testdata/expr-110 | 1 + .../go-jmespath/fuzz/testdata/expr-112 | 1 + .../go-jmespath/fuzz/testdata/expr-115 | 1 + .../go-jmespath/fuzz/testdata/expr-118 | 1 + .../go-jmespath/fuzz/testdata/expr-119 | 1 + .../go-jmespath/fuzz/testdata/expr-12 | 1 + .../go-jmespath/fuzz/testdata/expr-120 | 1 + .../go-jmespath/fuzz/testdata/expr-121 | 1 + .../go-jmespath/fuzz/testdata/expr-122 | 1 + .../go-jmespath/fuzz/testdata/expr-123 | 1 + .../go-jmespath/fuzz/testdata/expr-126 | 1 + .../go-jmespath/fuzz/testdata/expr-128 | 1 + .../go-jmespath/fuzz/testdata/expr-129 | 1 + .../go-jmespath/fuzz/testdata/expr-13 | 1 + .../go-jmespath/fuzz/testdata/expr-130 | 1 + .../go-jmespath/fuzz/testdata/expr-131 | 1 + .../go-jmespath/fuzz/testdata/expr-132 | 1 + .../go-jmespath/fuzz/testdata/expr-133 | 1 + .../go-jmespath/fuzz/testdata/expr-134 | 1 + .../go-jmespath/fuzz/testdata/expr-135 | 1 + .../go-jmespath/fuzz/testdata/expr-136 | 1 + .../go-jmespath/fuzz/testdata/expr-137 | 1 + .../go-jmespath/fuzz/testdata/expr-138 | 1 + .../go-jmespath/fuzz/testdata/expr-139 | 1 + .../go-jmespath/fuzz/testdata/expr-14 | 1 + .../go-jmespath/fuzz/testdata/expr-140 | 1 + .../go-jmespath/fuzz/testdata/expr-141 | 1 + .../go-jmespath/fuzz/testdata/expr-142 | 1 + .../go-jmespath/fuzz/testdata/expr-143 | 1 + .../go-jmespath/fuzz/testdata/expr-144 | 1 + .../go-jmespath/fuzz/testdata/expr-145 | 1 + .../go-jmespath/fuzz/testdata/expr-146 | 1 + .../go-jmespath/fuzz/testdata/expr-147 | 1 + .../go-jmespath/fuzz/testdata/expr-148 | 1 + .../go-jmespath/fuzz/testdata/expr-149 | 1 + .../go-jmespath/fuzz/testdata/expr-15 | 1 + .../go-jmespath/fuzz/testdata/expr-150 | 1 + .../go-jmespath/fuzz/testdata/expr-151 | 1 + .../go-jmespath/fuzz/testdata/expr-152 | 1 + .../go-jmespath/fuzz/testdata/expr-153 | 1 + .../go-jmespath/fuzz/testdata/expr-155 | 1 + .../go-jmespath/fuzz/testdata/expr-156 | 1 + .../go-jmespath/fuzz/testdata/expr-157 | 1 + .../go-jmespath/fuzz/testdata/expr-158 | 1 + .../go-jmespath/fuzz/testdata/expr-159 | 1 + .../go-jmespath/fuzz/testdata/expr-16 | 1 + .../go-jmespath/fuzz/testdata/expr-160 | 1 + .../go-jmespath/fuzz/testdata/expr-161 | 1 + .../go-jmespath/fuzz/testdata/expr-162 | 1 + .../go-jmespath/fuzz/testdata/expr-163 | 1 + .../go-jmespath/fuzz/testdata/expr-164 | 1 + .../go-jmespath/fuzz/testdata/expr-165 | 1 + .../go-jmespath/fuzz/testdata/expr-166 | 1 + .../go-jmespath/fuzz/testdata/expr-167 | 1 + .../go-jmespath/fuzz/testdata/expr-168 | 1 + .../go-jmespath/fuzz/testdata/expr-169 | 1 + .../go-jmespath/fuzz/testdata/expr-17 | 1 + .../go-jmespath/fuzz/testdata/expr-170 | 1 + .../go-jmespath/fuzz/testdata/expr-171 | 1 + .../go-jmespath/fuzz/testdata/expr-172 | 1 + .../go-jmespath/fuzz/testdata/expr-173 | 1 + .../go-jmespath/fuzz/testdata/expr-174 | 1 + .../go-jmespath/fuzz/testdata/expr-175 | 1 + .../go-jmespath/fuzz/testdata/expr-178 | 1 + .../go-jmespath/fuzz/testdata/expr-179 | 1 + .../go-jmespath/fuzz/testdata/expr-18 | 1 + .../go-jmespath/fuzz/testdata/expr-180 | 1 + .../go-jmespath/fuzz/testdata/expr-181 | 1 + .../go-jmespath/fuzz/testdata/expr-182 | 1 + .../go-jmespath/fuzz/testdata/expr-183 | 1 + .../go-jmespath/fuzz/testdata/expr-184 | 1 + .../go-jmespath/fuzz/testdata/expr-185 | 1 + .../go-jmespath/fuzz/testdata/expr-186 | 1 + .../go-jmespath/fuzz/testdata/expr-187 | 1 + .../go-jmespath/fuzz/testdata/expr-188 | 1 + .../go-jmespath/fuzz/testdata/expr-189 | 1 + .../go-jmespath/fuzz/testdata/expr-19 | 1 + .../go-jmespath/fuzz/testdata/expr-190 | 1 + .../go-jmespath/fuzz/testdata/expr-191 | 1 + .../go-jmespath/fuzz/testdata/expr-192 | 1 + .../go-jmespath/fuzz/testdata/expr-193 | 1 + .../go-jmespath/fuzz/testdata/expr-194 | 1 + .../go-jmespath/fuzz/testdata/expr-195 | 1 + .../go-jmespath/fuzz/testdata/expr-196 | 1 + .../go-jmespath/fuzz/testdata/expr-198 | 1 + .../go-jmespath/fuzz/testdata/expr-199 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-2 | 1 + .../go-jmespath/fuzz/testdata/expr-20 | 1 + .../go-jmespath/fuzz/testdata/expr-200 | 1 + .../go-jmespath/fuzz/testdata/expr-201 | 1 + .../go-jmespath/fuzz/testdata/expr-202 | 1 + .../go-jmespath/fuzz/testdata/expr-203 | 1 + .../go-jmespath/fuzz/testdata/expr-204 | 1 + .../go-jmespath/fuzz/testdata/expr-205 | 1 + .../go-jmespath/fuzz/testdata/expr-206 | 1 + .../go-jmespath/fuzz/testdata/expr-207 | 1 + .../go-jmespath/fuzz/testdata/expr-208 | 1 + .../go-jmespath/fuzz/testdata/expr-209 | 1 + .../go-jmespath/fuzz/testdata/expr-21 | 1 + .../go-jmespath/fuzz/testdata/expr-210 | 1 + .../go-jmespath/fuzz/testdata/expr-211 | 1 + .../go-jmespath/fuzz/testdata/expr-212 | 1 + .../go-jmespath/fuzz/testdata/expr-213 | 1 + .../go-jmespath/fuzz/testdata/expr-214 | 1 + .../go-jmespath/fuzz/testdata/expr-215 | 1 + .../go-jmespath/fuzz/testdata/expr-216 | 1 + .../go-jmespath/fuzz/testdata/expr-217 | 1 + .../go-jmespath/fuzz/testdata/expr-218 | 1 + .../go-jmespath/fuzz/testdata/expr-219 | 1 + .../go-jmespath/fuzz/testdata/expr-22 | 1 + .../go-jmespath/fuzz/testdata/expr-220 | 1 + .../go-jmespath/fuzz/testdata/expr-221 | 1 + .../go-jmespath/fuzz/testdata/expr-222 | 1 + .../go-jmespath/fuzz/testdata/expr-223 | 1 + .../go-jmespath/fuzz/testdata/expr-224 | 1 + .../go-jmespath/fuzz/testdata/expr-225 | 1 + .../go-jmespath/fuzz/testdata/expr-226 | 1 + .../go-jmespath/fuzz/testdata/expr-227 | 1 + .../go-jmespath/fuzz/testdata/expr-228 | 1 + .../go-jmespath/fuzz/testdata/expr-229 | 1 + .../go-jmespath/fuzz/testdata/expr-23 | 1 + .../go-jmespath/fuzz/testdata/expr-230 | 1 + .../go-jmespath/fuzz/testdata/expr-231 | 1 + .../go-jmespath/fuzz/testdata/expr-232 | 1 + .../go-jmespath/fuzz/testdata/expr-233 | 1 + .../go-jmespath/fuzz/testdata/expr-234 | 1 + .../go-jmespath/fuzz/testdata/expr-235 | 1 + .../go-jmespath/fuzz/testdata/expr-236 | 1 + .../go-jmespath/fuzz/testdata/expr-237 | 1 + .../go-jmespath/fuzz/testdata/expr-238 | 1 + .../go-jmespath/fuzz/testdata/expr-239 | 1 + .../go-jmespath/fuzz/testdata/expr-24 | 1 + .../go-jmespath/fuzz/testdata/expr-240 | 1 + .../go-jmespath/fuzz/testdata/expr-241 | 1 + .../go-jmespath/fuzz/testdata/expr-242 | 1 + .../go-jmespath/fuzz/testdata/expr-243 | 1 + .../go-jmespath/fuzz/testdata/expr-244 | 1 + .../go-jmespath/fuzz/testdata/expr-245 | 1 + .../go-jmespath/fuzz/testdata/expr-246 | 1 + .../go-jmespath/fuzz/testdata/expr-247 | 1 + .../go-jmespath/fuzz/testdata/expr-248 | 1 + .../go-jmespath/fuzz/testdata/expr-249 | 1 + .../go-jmespath/fuzz/testdata/expr-25 | 1 + .../go-jmespath/fuzz/testdata/expr-250 | 1 + .../go-jmespath/fuzz/testdata/expr-251 | 1 + .../go-jmespath/fuzz/testdata/expr-252 | 1 + .../go-jmespath/fuzz/testdata/expr-253 | 1 + .../go-jmespath/fuzz/testdata/expr-254 | 1 + .../go-jmespath/fuzz/testdata/expr-255 | 1 + .../go-jmespath/fuzz/testdata/expr-256 | 1 + .../go-jmespath/fuzz/testdata/expr-257 | 1 + .../go-jmespath/fuzz/testdata/expr-258 | 1 + .../go-jmespath/fuzz/testdata/expr-259 | 1 + .../go-jmespath/fuzz/testdata/expr-26 | 1 + .../go-jmespath/fuzz/testdata/expr-260 | 1 + .../go-jmespath/fuzz/testdata/expr-261 | 1 + .../go-jmespath/fuzz/testdata/expr-262 | 1 + .../go-jmespath/fuzz/testdata/expr-263 | 1 + .../go-jmespath/fuzz/testdata/expr-264 | 1 + .../go-jmespath/fuzz/testdata/expr-265 | 1 + .../go-jmespath/fuzz/testdata/expr-266 | 1 + .../go-jmespath/fuzz/testdata/expr-267 | 1 + .../go-jmespath/fuzz/testdata/expr-268 | 1 + .../go-jmespath/fuzz/testdata/expr-269 | 1 + .../go-jmespath/fuzz/testdata/expr-27 | 1 + .../go-jmespath/fuzz/testdata/expr-270 | 1 + .../go-jmespath/fuzz/testdata/expr-271 | 1 + .../go-jmespath/fuzz/testdata/expr-272 | 1 + .../go-jmespath/fuzz/testdata/expr-273 | 1 + .../go-jmespath/fuzz/testdata/expr-274 | 1 + .../go-jmespath/fuzz/testdata/expr-275 | 1 + .../go-jmespath/fuzz/testdata/expr-276 | 1 + .../go-jmespath/fuzz/testdata/expr-277 | 1 + .../go-jmespath/fuzz/testdata/expr-278 | 1 + .../go-jmespath/fuzz/testdata/expr-279 | 1 + .../go-jmespath/fuzz/testdata/expr-28 | 1 + .../go-jmespath/fuzz/testdata/expr-280 | 1 + .../go-jmespath/fuzz/testdata/expr-281 | 1 + .../go-jmespath/fuzz/testdata/expr-282 | 1 + .../go-jmespath/fuzz/testdata/expr-283 | 1 + .../go-jmespath/fuzz/testdata/expr-284 | 1 + .../go-jmespath/fuzz/testdata/expr-285 | 1 + .../go-jmespath/fuzz/testdata/expr-286 | 1 + .../go-jmespath/fuzz/testdata/expr-287 | 1 + .../go-jmespath/fuzz/testdata/expr-288 | 1 + .../go-jmespath/fuzz/testdata/expr-289 | 1 + .../go-jmespath/fuzz/testdata/expr-29 | 1 + .../go-jmespath/fuzz/testdata/expr-290 | 1 + .../go-jmespath/fuzz/testdata/expr-291 | 1 + .../go-jmespath/fuzz/testdata/expr-292 | 1 + .../go-jmespath/fuzz/testdata/expr-293 | 1 + .../go-jmespath/fuzz/testdata/expr-294 | 1 + .../go-jmespath/fuzz/testdata/expr-295 | 1 + .../go-jmespath/fuzz/testdata/expr-296 | 1 + .../go-jmespath/fuzz/testdata/expr-297 | 1 + .../go-jmespath/fuzz/testdata/expr-298 | 1 + .../go-jmespath/fuzz/testdata/expr-299 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-3 | 1 + .../go-jmespath/fuzz/testdata/expr-30 | 1 + .../go-jmespath/fuzz/testdata/expr-300 | 1 + .../go-jmespath/fuzz/testdata/expr-301 | 1 + .../go-jmespath/fuzz/testdata/expr-302 | 1 + .../go-jmespath/fuzz/testdata/expr-303 | 1 + .../go-jmespath/fuzz/testdata/expr-304 | 1 + .../go-jmespath/fuzz/testdata/expr-305 | 1 + .../go-jmespath/fuzz/testdata/expr-306 | 1 + .../go-jmespath/fuzz/testdata/expr-307 | 1 + .../go-jmespath/fuzz/testdata/expr-308 | 1 + .../go-jmespath/fuzz/testdata/expr-309 | 1 + .../go-jmespath/fuzz/testdata/expr-31 | 1 + .../go-jmespath/fuzz/testdata/expr-310 | 1 + .../go-jmespath/fuzz/testdata/expr-311 | 1 + .../go-jmespath/fuzz/testdata/expr-312 | 1 + .../go-jmespath/fuzz/testdata/expr-313 | 1 + .../go-jmespath/fuzz/testdata/expr-314 | 1 + .../go-jmespath/fuzz/testdata/expr-315 | 1 + .../go-jmespath/fuzz/testdata/expr-316 | 1 + .../go-jmespath/fuzz/testdata/expr-317 | 1 + .../go-jmespath/fuzz/testdata/expr-318 | 1 + .../go-jmespath/fuzz/testdata/expr-319 | 1 + .../go-jmespath/fuzz/testdata/expr-32 | 1 + .../go-jmespath/fuzz/testdata/expr-320 | 1 + .../go-jmespath/fuzz/testdata/expr-321 | 1 + .../go-jmespath/fuzz/testdata/expr-322 | 1 + .../go-jmespath/fuzz/testdata/expr-323 | 1 + .../go-jmespath/fuzz/testdata/expr-324 | 1 + .../go-jmespath/fuzz/testdata/expr-325 | 1 + .../go-jmespath/fuzz/testdata/expr-326 | 1 + .../go-jmespath/fuzz/testdata/expr-327 | 1 + .../go-jmespath/fuzz/testdata/expr-328 | 1 + .../go-jmespath/fuzz/testdata/expr-329 | 1 + .../go-jmespath/fuzz/testdata/expr-33 | 1 + .../go-jmespath/fuzz/testdata/expr-330 | 1 + .../go-jmespath/fuzz/testdata/expr-331 | 1 + .../go-jmespath/fuzz/testdata/expr-332 | 1 + .../go-jmespath/fuzz/testdata/expr-333 | 1 + .../go-jmespath/fuzz/testdata/expr-334 | 1 + .../go-jmespath/fuzz/testdata/expr-335 | 1 + .../go-jmespath/fuzz/testdata/expr-336 | 1 + .../go-jmespath/fuzz/testdata/expr-337 | 1 + .../go-jmespath/fuzz/testdata/expr-338 | 1 + .../go-jmespath/fuzz/testdata/expr-339 | 1 + .../go-jmespath/fuzz/testdata/expr-34 | 1 + .../go-jmespath/fuzz/testdata/expr-340 | 1 + .../go-jmespath/fuzz/testdata/expr-341 | 1 + .../go-jmespath/fuzz/testdata/expr-342 | 1 + .../go-jmespath/fuzz/testdata/expr-343 | 1 + .../go-jmespath/fuzz/testdata/expr-344 | 1 + .../go-jmespath/fuzz/testdata/expr-345 | 1 + .../go-jmespath/fuzz/testdata/expr-346 | 1 + .../go-jmespath/fuzz/testdata/expr-347 | 1 + .../go-jmespath/fuzz/testdata/expr-348 | 1 + .../go-jmespath/fuzz/testdata/expr-349 | 1 + .../go-jmespath/fuzz/testdata/expr-35 | 1 + .../go-jmespath/fuzz/testdata/expr-350 | 1 + .../go-jmespath/fuzz/testdata/expr-351 | 1 + .../go-jmespath/fuzz/testdata/expr-352 | 1 + .../go-jmespath/fuzz/testdata/expr-353 | 1 + .../go-jmespath/fuzz/testdata/expr-354 | 1 + .../go-jmespath/fuzz/testdata/expr-355 | 1 + .../go-jmespath/fuzz/testdata/expr-356 | 1 + .../go-jmespath/fuzz/testdata/expr-357 | 1 + .../go-jmespath/fuzz/testdata/expr-358 | 1 + .../go-jmespath/fuzz/testdata/expr-359 | 1 + .../go-jmespath/fuzz/testdata/expr-36 | 1 + .../go-jmespath/fuzz/testdata/expr-360 | 1 + .../go-jmespath/fuzz/testdata/expr-361 | 1 + .../go-jmespath/fuzz/testdata/expr-362 | 1 + .../go-jmespath/fuzz/testdata/expr-363 | 1 + .../go-jmespath/fuzz/testdata/expr-364 | 1 + .../go-jmespath/fuzz/testdata/expr-365 | 1 + .../go-jmespath/fuzz/testdata/expr-366 | 1 + .../go-jmespath/fuzz/testdata/expr-367 | 1 + .../go-jmespath/fuzz/testdata/expr-368 | 1 + .../go-jmespath/fuzz/testdata/expr-369 | 1 + .../go-jmespath/fuzz/testdata/expr-37 | 1 + .../go-jmespath/fuzz/testdata/expr-370 | 1 + .../go-jmespath/fuzz/testdata/expr-371 | 1 + .../go-jmespath/fuzz/testdata/expr-372 | 1 + .../go-jmespath/fuzz/testdata/expr-373 | 1 + .../go-jmespath/fuzz/testdata/expr-374 | 1 + .../go-jmespath/fuzz/testdata/expr-375 | 1 + .../go-jmespath/fuzz/testdata/expr-376 | 1 + .../go-jmespath/fuzz/testdata/expr-377 | 1 + .../go-jmespath/fuzz/testdata/expr-378 | 1 + .../go-jmespath/fuzz/testdata/expr-379 | 1 + .../go-jmespath/fuzz/testdata/expr-38 | 1 + .../go-jmespath/fuzz/testdata/expr-380 | 1 + .../go-jmespath/fuzz/testdata/expr-381 | 1 + .../go-jmespath/fuzz/testdata/expr-382 | 1 + .../go-jmespath/fuzz/testdata/expr-383 | 1 + .../go-jmespath/fuzz/testdata/expr-384 | 1 + .../go-jmespath/fuzz/testdata/expr-385 | 1 + .../go-jmespath/fuzz/testdata/expr-386 | 1 + .../go-jmespath/fuzz/testdata/expr-387 | 1 + .../go-jmespath/fuzz/testdata/expr-388 | 1 + .../go-jmespath/fuzz/testdata/expr-389 | 1 + .../go-jmespath/fuzz/testdata/expr-39 | 1 + .../go-jmespath/fuzz/testdata/expr-390 | 1 + .../go-jmespath/fuzz/testdata/expr-391 | 1 + .../go-jmespath/fuzz/testdata/expr-392 | 1 + .../go-jmespath/fuzz/testdata/expr-393 | 1 + .../go-jmespath/fuzz/testdata/expr-394 | 1 + .../go-jmespath/fuzz/testdata/expr-395 | 1 + .../go-jmespath/fuzz/testdata/expr-396 | 1 + .../go-jmespath/fuzz/testdata/expr-397 | 1 + .../go-jmespath/fuzz/testdata/expr-398 | 1 + .../go-jmespath/fuzz/testdata/expr-399 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-4 | 1 + .../go-jmespath/fuzz/testdata/expr-40 | 1 + .../go-jmespath/fuzz/testdata/expr-400 | 1 + .../go-jmespath/fuzz/testdata/expr-401 | 1 + .../go-jmespath/fuzz/testdata/expr-402 | 1 + .../go-jmespath/fuzz/testdata/expr-403 | 1 + .../go-jmespath/fuzz/testdata/expr-404 | 1 + .../go-jmespath/fuzz/testdata/expr-405 | 1 + .../go-jmespath/fuzz/testdata/expr-406 | 1 + .../go-jmespath/fuzz/testdata/expr-407 | 1 + .../go-jmespath/fuzz/testdata/expr-408 | 1 + .../go-jmespath/fuzz/testdata/expr-409 | 1 + .../go-jmespath/fuzz/testdata/expr-41 | 1 + .../go-jmespath/fuzz/testdata/expr-410 | 1 + .../go-jmespath/fuzz/testdata/expr-411 | 1 + .../go-jmespath/fuzz/testdata/expr-412 | 2 + .../go-jmespath/fuzz/testdata/expr-413 | 2 + .../go-jmespath/fuzz/testdata/expr-414 | 1 + .../go-jmespath/fuzz/testdata/expr-415 | 1 + .../go-jmespath/fuzz/testdata/expr-416 | 1 + .../go-jmespath/fuzz/testdata/expr-417 | 1 + .../go-jmespath/fuzz/testdata/expr-418 | 1 + .../go-jmespath/fuzz/testdata/expr-419 | 1 + .../go-jmespath/fuzz/testdata/expr-42 | 1 + .../go-jmespath/fuzz/testdata/expr-420 | 1 + .../go-jmespath/fuzz/testdata/expr-421 | 1 + .../go-jmespath/fuzz/testdata/expr-422 | 1 + .../go-jmespath/fuzz/testdata/expr-423 | 1 + .../go-jmespath/fuzz/testdata/expr-424 | 1 + .../go-jmespath/fuzz/testdata/expr-425 | 1 + .../go-jmespath/fuzz/testdata/expr-426 | 1 + .../go-jmespath/fuzz/testdata/expr-427 | 1 + .../go-jmespath/fuzz/testdata/expr-428 | 1 + .../go-jmespath/fuzz/testdata/expr-429 | 1 + .../go-jmespath/fuzz/testdata/expr-43 | 1 + .../go-jmespath/fuzz/testdata/expr-430 | 1 + .../go-jmespath/fuzz/testdata/expr-431 | 1 + .../go-jmespath/fuzz/testdata/expr-432 | 1 + .../go-jmespath/fuzz/testdata/expr-433 | 1 + .../go-jmespath/fuzz/testdata/expr-434 | 1 + .../go-jmespath/fuzz/testdata/expr-435 | 1 + .../go-jmespath/fuzz/testdata/expr-436 | 1 + .../go-jmespath/fuzz/testdata/expr-437 | 1 + .../go-jmespath/fuzz/testdata/expr-438 | 1 + .../go-jmespath/fuzz/testdata/expr-439 | 1 + .../go-jmespath/fuzz/testdata/expr-44 | 1 + .../go-jmespath/fuzz/testdata/expr-440 | 1 + .../go-jmespath/fuzz/testdata/expr-441 | 1 + .../go-jmespath/fuzz/testdata/expr-442 | 1 + .../go-jmespath/fuzz/testdata/expr-443 | 1 + .../go-jmespath/fuzz/testdata/expr-444 | 1 + .../go-jmespath/fuzz/testdata/expr-445 | 1 + .../go-jmespath/fuzz/testdata/expr-446 | 1 + .../go-jmespath/fuzz/testdata/expr-447 | 1 + .../go-jmespath/fuzz/testdata/expr-448 | 1 + .../go-jmespath/fuzz/testdata/expr-449 | 1 + .../go-jmespath/fuzz/testdata/expr-45 | 1 + .../go-jmespath/fuzz/testdata/expr-450 | 1 + .../go-jmespath/fuzz/testdata/expr-451 | 1 + .../go-jmespath/fuzz/testdata/expr-452 | 1 + .../go-jmespath/fuzz/testdata/expr-453 | 1 + .../go-jmespath/fuzz/testdata/expr-454 | 1 + .../go-jmespath/fuzz/testdata/expr-455 | 1 + .../go-jmespath/fuzz/testdata/expr-456 | 1 + .../go-jmespath/fuzz/testdata/expr-457 | 1 + .../go-jmespath/fuzz/testdata/expr-458 | 1 + .../go-jmespath/fuzz/testdata/expr-459 | 1 + .../go-jmespath/fuzz/testdata/expr-46 | 1 + .../go-jmespath/fuzz/testdata/expr-460 | 1 + .../go-jmespath/fuzz/testdata/expr-461 | 1 + .../go-jmespath/fuzz/testdata/expr-462 | 1 + .../go-jmespath/fuzz/testdata/expr-463 | 1 + .../go-jmespath/fuzz/testdata/expr-464 | 1 + .../go-jmespath/fuzz/testdata/expr-465 | 1 + .../go-jmespath/fuzz/testdata/expr-466 | 1 + .../go-jmespath/fuzz/testdata/expr-467 | 1 + .../go-jmespath/fuzz/testdata/expr-468 | 1 + .../go-jmespath/fuzz/testdata/expr-469 | 1 + .../go-jmespath/fuzz/testdata/expr-47 | 1 + .../go-jmespath/fuzz/testdata/expr-470 | 1 + .../go-jmespath/fuzz/testdata/expr-471 | 1 + .../go-jmespath/fuzz/testdata/expr-472 | 1 + .../go-jmespath/fuzz/testdata/expr-473 | 1 + .../go-jmespath/fuzz/testdata/expr-474 | 1 + .../go-jmespath/fuzz/testdata/expr-475 | 1 + .../go-jmespath/fuzz/testdata/expr-476 | 1 + .../go-jmespath/fuzz/testdata/expr-477 | 1 + .../go-jmespath/fuzz/testdata/expr-478 | 1 + .../go-jmespath/fuzz/testdata/expr-479 | 1 + .../go-jmespath/fuzz/testdata/expr-48 | 1 + .../go-jmespath/fuzz/testdata/expr-480 | 1 + .../go-jmespath/fuzz/testdata/expr-481 | 1 + .../go-jmespath/fuzz/testdata/expr-482 | 1 + .../go-jmespath/fuzz/testdata/expr-483 | 1 + .../go-jmespath/fuzz/testdata/expr-484 | 1 + .../go-jmespath/fuzz/testdata/expr-485 | 1 + .../go-jmespath/fuzz/testdata/expr-486 | 1 + .../go-jmespath/fuzz/testdata/expr-487 | 1 + .../go-jmespath/fuzz/testdata/expr-488 | 1 + .../go-jmespath/fuzz/testdata/expr-489 | 1 + .../go-jmespath/fuzz/testdata/expr-49 | 1 + .../go-jmespath/fuzz/testdata/expr-490 | 1 + .../go-jmespath/fuzz/testdata/expr-491 | 1 + .../go-jmespath/fuzz/testdata/expr-492 | 1 + .../go-jmespath/fuzz/testdata/expr-493 | 1 + .../go-jmespath/fuzz/testdata/expr-494 | 1 + .../go-jmespath/fuzz/testdata/expr-495 | 1 + .../go-jmespath/fuzz/testdata/expr-496 | 1 + .../go-jmespath/fuzz/testdata/expr-497 | 1 + .../go-jmespath/fuzz/testdata/expr-498 | 1 + .../go-jmespath/fuzz/testdata/expr-499 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-5 | 1 + .../go-jmespath/fuzz/testdata/expr-50 | 1 + .../go-jmespath/fuzz/testdata/expr-500 | 1 + .../go-jmespath/fuzz/testdata/expr-501 | 1 + .../go-jmespath/fuzz/testdata/expr-502 | 1 + .../go-jmespath/fuzz/testdata/expr-503 | 1 + .../go-jmespath/fuzz/testdata/expr-504 | 1 + .../go-jmespath/fuzz/testdata/expr-505 | 1 + .../go-jmespath/fuzz/testdata/expr-506 | 1 + .../go-jmespath/fuzz/testdata/expr-507 | 1 + .../go-jmespath/fuzz/testdata/expr-508 | 1 + .../go-jmespath/fuzz/testdata/expr-509 | 1 + .../go-jmespath/fuzz/testdata/expr-51 | 1 + .../go-jmespath/fuzz/testdata/expr-510 | 1 + .../go-jmespath/fuzz/testdata/expr-511 | 1 + .../go-jmespath/fuzz/testdata/expr-512 | 1 + .../go-jmespath/fuzz/testdata/expr-513 | 1 + .../go-jmespath/fuzz/testdata/expr-514 | 1 + .../go-jmespath/fuzz/testdata/expr-515 | 1 + .../go-jmespath/fuzz/testdata/expr-516 | 1 + .../go-jmespath/fuzz/testdata/expr-517 | 1 + .../go-jmespath/fuzz/testdata/expr-518 | 1 + .../go-jmespath/fuzz/testdata/expr-519 | 1 + .../go-jmespath/fuzz/testdata/expr-52 | 1 + .../go-jmespath/fuzz/testdata/expr-520 | 1 + .../go-jmespath/fuzz/testdata/expr-521 | 1 + .../go-jmespath/fuzz/testdata/expr-522 | 1 + .../go-jmespath/fuzz/testdata/expr-523 | 1 + .../go-jmespath/fuzz/testdata/expr-524 | 1 + .../go-jmespath/fuzz/testdata/expr-525 | 1 + .../go-jmespath/fuzz/testdata/expr-526 | 1 + .../go-jmespath/fuzz/testdata/expr-527 | 1 + .../go-jmespath/fuzz/testdata/expr-528 | 1 + .../go-jmespath/fuzz/testdata/expr-529 | 1 + .../go-jmespath/fuzz/testdata/expr-53 | 1 + .../go-jmespath/fuzz/testdata/expr-530 | 1 + .../go-jmespath/fuzz/testdata/expr-531 | 1 + .../go-jmespath/fuzz/testdata/expr-532 | 1 + .../go-jmespath/fuzz/testdata/expr-533 | 1 + .../go-jmespath/fuzz/testdata/expr-534 | 1 + .../go-jmespath/fuzz/testdata/expr-535 | 1 + .../go-jmespath/fuzz/testdata/expr-536 | 1 + .../go-jmespath/fuzz/testdata/expr-537 | 1 + .../go-jmespath/fuzz/testdata/expr-538 | 1 + .../go-jmespath/fuzz/testdata/expr-539 | 1 + .../go-jmespath/fuzz/testdata/expr-54 | 1 + .../go-jmespath/fuzz/testdata/expr-540 | 1 + .../go-jmespath/fuzz/testdata/expr-541 | 1 + .../go-jmespath/fuzz/testdata/expr-542 | 1 + .../go-jmespath/fuzz/testdata/expr-543 | 1 + .../go-jmespath/fuzz/testdata/expr-544 | 1 + .../go-jmespath/fuzz/testdata/expr-545 | 1 + .../go-jmespath/fuzz/testdata/expr-546 | 1 + .../go-jmespath/fuzz/testdata/expr-547 | 1 + .../go-jmespath/fuzz/testdata/expr-548 | 1 + .../go-jmespath/fuzz/testdata/expr-549 | 1 + .../go-jmespath/fuzz/testdata/expr-55 | 1 + .../go-jmespath/fuzz/testdata/expr-550 | 1 + .../go-jmespath/fuzz/testdata/expr-551 | 1 + .../go-jmespath/fuzz/testdata/expr-552 | 1 + .../go-jmespath/fuzz/testdata/expr-553 | 1 + .../go-jmespath/fuzz/testdata/expr-554 | 1 + .../go-jmespath/fuzz/testdata/expr-555 | 1 + .../go-jmespath/fuzz/testdata/expr-556 | 1 + .../go-jmespath/fuzz/testdata/expr-557 | 1 + .../go-jmespath/fuzz/testdata/expr-558 | 1 + .../go-jmespath/fuzz/testdata/expr-559 | 1 + .../go-jmespath/fuzz/testdata/expr-56 | 1 + .../go-jmespath/fuzz/testdata/expr-560 | 1 + .../go-jmespath/fuzz/testdata/expr-561 | 1 + .../go-jmespath/fuzz/testdata/expr-562 | 1 + .../go-jmespath/fuzz/testdata/expr-563 | 1 + .../go-jmespath/fuzz/testdata/expr-564 | 1 + .../go-jmespath/fuzz/testdata/expr-565 | 1 + .../go-jmespath/fuzz/testdata/expr-566 | 1 + .../go-jmespath/fuzz/testdata/expr-567 | 1 + .../go-jmespath/fuzz/testdata/expr-568 | 1 + .../go-jmespath/fuzz/testdata/expr-569 | 1 + .../go-jmespath/fuzz/testdata/expr-57 | 1 + .../go-jmespath/fuzz/testdata/expr-570 | 1 + .../go-jmespath/fuzz/testdata/expr-571 | 1 + .../go-jmespath/fuzz/testdata/expr-572 | 1 + .../go-jmespath/fuzz/testdata/expr-573 | 1 + .../go-jmespath/fuzz/testdata/expr-574 | 1 + .../go-jmespath/fuzz/testdata/expr-575 | 1 + .../go-jmespath/fuzz/testdata/expr-576 | 1 + .../go-jmespath/fuzz/testdata/expr-577 | 1 + .../go-jmespath/fuzz/testdata/expr-578 | 1 + .../go-jmespath/fuzz/testdata/expr-579 | 1 + .../go-jmespath/fuzz/testdata/expr-58 | 1 + .../go-jmespath/fuzz/testdata/expr-580 | 1 + .../go-jmespath/fuzz/testdata/expr-581 | 1 + .../go-jmespath/fuzz/testdata/expr-582 | 1 + .../go-jmespath/fuzz/testdata/expr-583 | 1 + .../go-jmespath/fuzz/testdata/expr-584 | 1 + .../go-jmespath/fuzz/testdata/expr-585 | 1 + .../go-jmespath/fuzz/testdata/expr-586 | 1 + .../go-jmespath/fuzz/testdata/expr-587 | 1 + .../go-jmespath/fuzz/testdata/expr-588 | 1 + .../go-jmespath/fuzz/testdata/expr-589 | 1 + .../go-jmespath/fuzz/testdata/expr-59 | 1 + .../go-jmespath/fuzz/testdata/expr-590 | 1 + .../go-jmespath/fuzz/testdata/expr-591 | 1 + .../go-jmespath/fuzz/testdata/expr-592 | 1 + .../go-jmespath/fuzz/testdata/expr-593 | 1 + .../go-jmespath/fuzz/testdata/expr-594 | 1 + .../go-jmespath/fuzz/testdata/expr-595 | 1 + .../go-jmespath/fuzz/testdata/expr-596 | 1 + .../go-jmespath/fuzz/testdata/expr-597 | 1 + .../go-jmespath/fuzz/testdata/expr-598 | 1 + .../go-jmespath/fuzz/testdata/expr-599 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-6 | 1 + .../go-jmespath/fuzz/testdata/expr-60 | 1 + .../go-jmespath/fuzz/testdata/expr-600 | 1 + .../go-jmespath/fuzz/testdata/expr-601 | 1 + .../go-jmespath/fuzz/testdata/expr-602 | 1 + .../go-jmespath/fuzz/testdata/expr-603 | 1 + .../go-jmespath/fuzz/testdata/expr-604 | 1 + .../go-jmespath/fuzz/testdata/expr-605 | 1 + .../go-jmespath/fuzz/testdata/expr-606 | 1 + .../go-jmespath/fuzz/testdata/expr-607 | 1 + .../go-jmespath/fuzz/testdata/expr-608 | 1 + .../go-jmespath/fuzz/testdata/expr-609 | 1 + .../go-jmespath/fuzz/testdata/expr-61 | 1 + .../go-jmespath/fuzz/testdata/expr-610 | 1 + .../go-jmespath/fuzz/testdata/expr-611 | 1 + .../go-jmespath/fuzz/testdata/expr-612 | 1 + .../go-jmespath/fuzz/testdata/expr-613 | 1 + .../go-jmespath/fuzz/testdata/expr-614 | 1 + .../go-jmespath/fuzz/testdata/expr-615 | 1 + .../go-jmespath/fuzz/testdata/expr-616 | 1 + .../go-jmespath/fuzz/testdata/expr-617 | 1 + .../go-jmespath/fuzz/testdata/expr-618 | 1 + .../go-jmespath/fuzz/testdata/expr-619 | 1 + .../go-jmespath/fuzz/testdata/expr-62 | 1 + .../go-jmespath/fuzz/testdata/expr-620 | 1 + .../go-jmespath/fuzz/testdata/expr-621 | 1 + .../go-jmespath/fuzz/testdata/expr-622 | 1 + .../go-jmespath/fuzz/testdata/expr-623 | 1 + .../go-jmespath/fuzz/testdata/expr-624 | 1 + .../go-jmespath/fuzz/testdata/expr-625 | 1 + .../go-jmespath/fuzz/testdata/expr-626 | 1 + .../go-jmespath/fuzz/testdata/expr-627 | 1 + .../go-jmespath/fuzz/testdata/expr-628 | 1 + .../go-jmespath/fuzz/testdata/expr-629 | 1 + .../go-jmespath/fuzz/testdata/expr-63 | 1 + .../go-jmespath/fuzz/testdata/expr-630 | 1 + .../go-jmespath/fuzz/testdata/expr-631 | 1 + .../go-jmespath/fuzz/testdata/expr-632 | 1 + .../go-jmespath/fuzz/testdata/expr-633 | 1 + .../go-jmespath/fuzz/testdata/expr-634 | 1 + .../go-jmespath/fuzz/testdata/expr-635 | 1 + .../go-jmespath/fuzz/testdata/expr-636 | 1 + .../go-jmespath/fuzz/testdata/expr-637 | 1 + .../go-jmespath/fuzz/testdata/expr-638 | 1 + .../go-jmespath/fuzz/testdata/expr-639 | 1 + .../go-jmespath/fuzz/testdata/expr-64 | 1 + .../go-jmespath/fuzz/testdata/expr-640 | 1 + .../go-jmespath/fuzz/testdata/expr-641 | 1 + .../go-jmespath/fuzz/testdata/expr-642 | 1 + .../go-jmespath/fuzz/testdata/expr-643 | 1 + .../go-jmespath/fuzz/testdata/expr-644 | 1 + .../go-jmespath/fuzz/testdata/expr-645 | 1 + .../go-jmespath/fuzz/testdata/expr-646 | 1 + .../go-jmespath/fuzz/testdata/expr-647 | 1 + .../go-jmespath/fuzz/testdata/expr-648 | 1 + .../go-jmespath/fuzz/testdata/expr-649 | 1 + .../go-jmespath/fuzz/testdata/expr-65 | 1 + .../go-jmespath/fuzz/testdata/expr-650 | 1 + .../go-jmespath/fuzz/testdata/expr-651 | 1 + .../go-jmespath/fuzz/testdata/expr-652 | 1 + .../go-jmespath/fuzz/testdata/expr-653 | 1 + .../go-jmespath/fuzz/testdata/expr-654 | 1 + .../go-jmespath/fuzz/testdata/expr-655 | 1 + .../go-jmespath/fuzz/testdata/expr-656 | 1 + .../go-jmespath/fuzz/testdata/expr-66 | 1 + .../go-jmespath/fuzz/testdata/expr-67 | 1 + .../go-jmespath/fuzz/testdata/expr-68 | 1 + .../go-jmespath/fuzz/testdata/expr-69 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-7 | 1 + .../go-jmespath/fuzz/testdata/expr-70 | 1 + .../go-jmespath/fuzz/testdata/expr-71 | 1 + .../go-jmespath/fuzz/testdata/expr-72 | 1 + .../go-jmespath/fuzz/testdata/expr-73 | 1 + .../go-jmespath/fuzz/testdata/expr-74 | 1 + .../go-jmespath/fuzz/testdata/expr-75 | 1 + .../go-jmespath/fuzz/testdata/expr-76 | 1 + .../go-jmespath/fuzz/testdata/expr-77 | 1 + .../go-jmespath/fuzz/testdata/expr-78 | 1 + .../go-jmespath/fuzz/testdata/expr-79 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-8 | 1 + .../go-jmespath/fuzz/testdata/expr-80 | 1 + .../go-jmespath/fuzz/testdata/expr-81 | 1 + .../go-jmespath/fuzz/testdata/expr-82 | 1 + .../go-jmespath/fuzz/testdata/expr-83 | 1 + .../go-jmespath/fuzz/testdata/expr-84 | 1 + .../go-jmespath/fuzz/testdata/expr-85 | 1 + .../go-jmespath/fuzz/testdata/expr-86 | 1 + .../go-jmespath/fuzz/testdata/expr-87 | 1 + .../go-jmespath/fuzz/testdata/expr-88 | 1 + .../go-jmespath/fuzz/testdata/expr-89 | 1 + .../jmespath/go-jmespath/fuzz/testdata/expr-9 | 1 + .../go-jmespath/fuzz/testdata/expr-90 | 1 + .../go-jmespath/fuzz/testdata/expr-91 | 1 + .../go-jmespath/fuzz/testdata/expr-92 | 1 + .../go-jmespath/fuzz/testdata/expr-93 | 1 + .../go-jmespath/fuzz/testdata/expr-94 | 1 + .../go-jmespath/fuzz/testdata/expr-95 | 1 + .../go-jmespath/fuzz/testdata/expr-96 | 1 + .../go-jmespath/fuzz/testdata/expr-97 | 1 + .../go-jmespath/fuzz/testdata/expr-98 | 1 + .../jmespath/go-jmespath/interpreter.go | 0 .../jmespath/go-jmespath/interpreter_test.go | 0 .../jmespath/go-jmespath/lexer.go | 0 .../jmespath/go-jmespath/lexer_test.go | 0 .../jmespath/go-jmespath/parser.go | 0 .../jmespath/go-jmespath/parser_test.go | 0 .../jmespath/go-jmespath/toktype_string.go | 0 .../jmespath/go-jmespath/util.go | 0 .../jmespath/go-jmespath/util_test.go | 0 .../yuin/gopher-lua/.github/CONTRIBUTING.md | 49 + .../yuin/gopher-lua/.github/ISSUE_TEMPLATE.md | 12 + .../.github/PULL_REQUEST_TEMPLATE.md | 8 + vendor/github.com/yuin/gopher-lua/.travis.yml | 15 + 904 files changed, 26664 insertions(+), 6766 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/github.com/aws/aws-sdk-go/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 vendor/github.com/aws/aws-sdk-go/.gitignore create mode 100644 vendor/github.com/aws/aws-sdk-go/.godoc_config create mode 100644 vendor/github.com/aws/aws-sdk-go/.travis.yml create mode 100644 vendor/github.com/aws/aws-sdk-go/Gopkg.lock create mode 100644 vendor/github.com/aws/aws-sdk-go/Gopkg.toml delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/LICENSE delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/PATENTS delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/imports.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/util.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/allpackages.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/fakecontext.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/tags.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/util.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/go16.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/loader.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/util.go create mode 100644 vendor/github.com/aws/aws-sdk-go/buildspec.yml create mode 100644 vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/readme.md create mode 100644 vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/scan.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/models/apis/AWS create mode 100644 vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/paginators-1.json create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/examples_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection_test.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update_test.go rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/.gitignore (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/.travis.yml (83%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/LICENSE (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/Makefile (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/README.md (98%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/README_ZH.md (98%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/error.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/ini.go (89%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/ini_test.go (91%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/key.go (93%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/key_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/parser.go (94%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/parser_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/section.go (92%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/section_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/struct.go (83%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/struct_test.go (96%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/testdata/UTF-16-BE-BOM.ini (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/testdata/UTF-16-LE-BOM.ini (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/testdata/UTF-8-BOM.ini (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/testdata/aicc.ini (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/go-ini/ini/testdata/conf.ini (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/.gitignore (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/.travis.yml (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/LICENSE (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/Makefile (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/README.md (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/api.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/api_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/astnodetype_string.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/basic.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/boolean.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/current.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/escape.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/filters.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/functions.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/identifiers.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/indices.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/literal.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/multiselect.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/ormatch.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/pipe.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/slice.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/syntax.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/unicode.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance/wildcard.json (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/compliance_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/functions.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/fuzz/jmespath.go (100%) create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-1 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-10 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-100 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-101 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-102 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-103 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-104 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-105 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-106 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-107 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-108 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-109 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-110 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-112 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-115 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-118 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-119 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-12 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-120 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-121 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-122 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-123 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-126 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-128 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-129 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-13 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-130 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-131 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-132 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-133 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-134 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-135 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-136 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-137 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-138 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-139 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-14 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-140 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-141 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-142 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-143 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-144 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-145 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-146 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-147 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-148 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-149 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-15 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-150 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-151 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-152 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-153 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-155 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-156 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-157 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-158 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-159 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-16 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-160 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-161 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-162 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-163 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-164 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-165 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-166 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-167 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-168 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-169 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-17 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-170 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-171 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-172 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-173 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-174 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-175 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-178 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-179 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-18 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-180 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-181 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-182 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-183 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-184 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-185 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-186 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-187 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-188 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-189 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-19 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-190 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-191 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-192 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-193 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-194 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-195 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-196 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-198 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-199 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-2 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-20 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-200 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-201 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-202 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-203 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-204 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-205 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-206 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-207 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-208 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-209 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-21 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-210 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-211 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-212 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-213 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-214 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-215 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-216 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-217 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-218 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-219 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-22 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-220 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-221 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-222 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-223 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-224 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-225 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-226 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-227 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-228 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-229 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-23 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-230 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-231 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-232 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-233 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-234 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-235 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-236 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-237 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-238 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-239 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-24 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-240 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-241 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-242 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-243 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-244 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-245 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-246 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-247 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-248 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-249 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-25 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-250 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-251 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-252 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-253 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-254 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-255 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-256 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-257 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-258 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-259 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-26 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-260 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-261 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-262 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-263 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-264 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-265 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-266 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-267 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-268 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-269 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-27 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-270 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-271 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-272 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-273 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-274 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-275 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-276 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-277 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-278 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-279 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-28 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-280 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-281 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-282 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-283 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-284 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-285 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-286 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-287 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-288 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-289 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-29 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-290 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-291 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-292 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-293 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-294 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-295 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-296 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-297 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-298 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-299 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-3 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-30 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-300 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-301 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-302 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-303 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-304 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-305 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-306 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-307 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-308 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-309 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-31 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-310 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-311 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-312 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-313 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-314 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-315 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-316 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-317 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-318 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-319 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-32 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-320 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-321 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-322 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-323 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-324 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-325 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-326 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-327 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-328 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-329 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-33 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-330 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-331 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-332 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-333 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-334 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-335 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-336 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-337 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-338 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-339 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-34 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-340 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-341 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-342 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-343 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-344 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-345 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-346 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-347 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-348 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-349 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-35 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-350 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-351 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-352 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-353 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-354 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-355 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-356 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-357 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-358 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-359 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-36 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-360 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-361 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-362 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-363 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-364 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-365 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-366 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-367 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-368 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-369 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-37 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-370 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-371 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-372 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-373 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-374 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-375 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-376 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-377 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-378 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-379 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-38 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-380 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-381 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-382 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-383 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-384 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-385 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-386 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-387 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-388 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-389 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-39 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-390 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-391 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-392 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-393 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-394 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-395 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-396 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-397 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-398 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-399 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-4 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-40 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-400 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-401 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-402 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-403 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-404 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-405 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-406 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-407 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-408 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-409 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-41 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-410 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-411 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-412 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-413 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-414 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-415 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-416 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-417 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-418 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-419 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-42 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-420 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-421 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-422 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-423 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-424 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-425 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-426 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-427 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-428 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-429 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-43 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-430 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-431 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-432 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-433 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-434 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-435 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-436 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-437 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-438 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-439 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-44 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-440 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-441 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-442 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-443 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-444 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-445 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-446 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-447 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-448 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-449 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-45 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-450 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-451 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-452 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-453 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-454 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-455 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-456 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-457 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-458 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-459 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-46 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-460 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-461 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-462 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-463 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-464 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-465 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-466 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-467 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-468 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-469 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-47 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-470 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-471 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-472 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-473 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-474 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-475 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-476 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-477 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-478 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-479 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-48 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-480 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-481 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-482 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-483 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-484 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-485 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-486 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-487 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-488 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-489 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-49 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-490 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-491 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-492 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-493 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-494 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-495 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-496 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-497 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-498 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-499 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-5 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-50 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-500 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-501 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-502 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-503 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-504 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-505 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-506 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-507 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-508 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-509 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-51 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-510 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-511 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-512 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-513 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-514 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-515 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-516 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-517 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-518 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-519 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-52 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-520 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-521 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-522 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-523 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-524 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-525 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-526 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-527 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-528 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-529 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-53 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-530 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-531 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-532 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-533 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-534 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-535 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-536 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-537 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-538 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-539 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-54 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-540 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-541 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-542 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-543 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-544 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-545 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-546 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-547 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-548 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-549 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-55 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-550 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-551 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-552 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-553 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-554 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-555 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-556 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-557 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-558 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-559 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-56 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-560 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-561 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-562 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-563 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-564 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-565 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-566 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-567 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-568 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-569 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-57 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-570 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-571 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-572 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-573 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-574 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-575 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-576 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-577 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-578 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-579 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-58 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-580 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-581 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-582 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-583 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-584 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-585 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-586 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-587 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-588 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-589 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-59 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-590 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-591 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-592 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-593 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-594 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-595 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-596 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-597 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-598 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-599 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-6 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-60 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-600 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-601 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-602 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-603 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-604 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-605 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-606 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-607 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-608 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-609 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-61 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-610 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-611 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-612 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-613 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-614 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-615 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-616 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-617 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-618 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-619 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-62 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-620 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-621 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-622 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-623 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-624 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-625 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-626 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-627 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-628 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-629 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-63 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-630 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-631 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-632 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-633 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-634 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-635 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-636 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-637 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-638 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-639 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-64 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-640 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-641 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-642 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-643 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-644 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-645 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-646 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-647 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-648 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-649 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-65 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-650 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-651 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-652 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-653 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-654 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-655 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-656 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-66 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-67 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-68 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-69 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-7 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-70 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-71 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-72 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-73 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-74 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-75 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-76 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-77 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-78 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-79 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-8 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-80 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-81 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-82 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-83 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-84 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-85 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-86 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-87 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-88 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-89 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-9 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-90 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-91 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-92 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-93 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-94 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-95 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-96 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-97 create mode 100644 vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-98 rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/interpreter.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/interpreter_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/lexer.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/lexer_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/parser.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/parser_test.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/toktype_string.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/util.go (100%) rename vendor/github.com/{aws/aws-sdk-go/vendor/github.com => }/jmespath/go-jmespath/util_test.go (100%) create mode 100644 vendor/github.com/yuin/gopher-lua/.github/CONTRIBUTING.md create mode 100644 vendor/github.com/yuin/gopher-lua/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/github.com/yuin/gopher-lua/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 vendor/github.com/yuin/gopher-lua/.travis.yml diff --git a/Gopkg.lock b/Gopkg.lock index 83409998..dedb12c8 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -7,6 +7,12 @@ revision = "bbdbe644099b7fdc8327d5cc69c030945188b2e9" version = "v1.13.0" +[[projects]] + name = "github.com/aws/aws-sdk-go" + packages = ["aws","aws/awserr","aws/awsutil","aws/client","aws/client/metadata","aws/corehandlers","aws/credentials","aws/credentials/ec2rolecreds","aws/credentials/endpointcreds","aws/credentials/stscreds","aws/defaults","aws/ec2metadata","aws/endpoints","aws/request","aws/session","aws/signer/v4","internal/shareddefaults","private/protocol","private/protocol/query","private/protocol/query/queryutil","private/protocol/rest","private/protocol/xml/xmlutil","service/sqs","service/sts"] + revision = "da415b5fa0ff3f91d4707348a8ea1be53f700c22" + version = "v1.12.6" + [[projects]] name = "github.com/davecgh/go-spew" packages = ["spew"] @@ -43,6 +49,12 @@ revision = "433969511232c397de61b1442f9fd49ec06ae9ba" version = "v1.1.0" +[[projects]] + name = "github.com/go-ini/ini" + packages = ["."] + revision = "20b96f641a5ea98f2f8619ff4f3e061cff4833bd" + version = "v1.28.2" + [[projects]] branch = "master" name = "github.com/golang/protobuf" @@ -55,6 +67,11 @@ packages = ["."] revision = "553a641470496b2327abcac10b36396bd98e45c9" +[[projects]] + name = "github.com/jmespath/go-jmespath" + packages = ["."] + revision = "0b12d6b5" + [[projects]] branch = "master" name = "github.com/peterh/liner" @@ -163,6 +180,12 @@ packages = ["."] revision = "1feaf062ef04a231c9126f99a68eaa579fd0e390" +[[projects]] + branch = "master" + name = "github.com/yuin/gopher-lua" + packages = [".","ast","parse","pm"] + revision = "eb1c7299435cc746b72514f37f74a5154dfe460f" + [[projects]] branch = "master" name = "golang.org/x/crypto" @@ -202,6 +225,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "03a37ac805762eaebe7dbf8d7b1a079894ff6b0f67f4d2f38d3b9348dd5af40f" + inputs-digest = "4766bb1bebb736256ed12e864e0810ebf21e26e9fee09fa1884cda8072982155" solver-name = "gps-cdcl" solver-version = 1 diff --git a/vendor/github.com/aws/aws-sdk-go/.github/ISSUE_TEMPLATE.md b/vendor/github.com/aws/aws-sdk-go/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..1ecb636b --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,14 @@ +Please fill out the sections below to help us address your issue. + +### Version of AWS SDK for Go? + + +### Version of Go (`go version`)? + + +### What issue did you see? + +### Steps to reproduce + +If you have have an runnable example, please include it. + diff --git a/vendor/github.com/aws/aws-sdk-go/.github/PULL_REQUEST_TEMPLATE.md b/vendor/github.com/aws/aws-sdk-go/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..a9aaa9a8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,3 @@ +For changes to files under the `/model/` folder, and manual edits to autogenerated code (e.g. `/service/s3/api.go`) please create an Issue instead of a PR for those type of changes. + +If there is an existing bug or feature this PR is answers please reference it here. diff --git a/vendor/github.com/aws/aws-sdk-go/.gitignore b/vendor/github.com/aws/aws-sdk-go/.gitignore new file mode 100644 index 00000000..fb11ceca --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/.gitignore @@ -0,0 +1,11 @@ +dist +/doc +/doc-staging +.yardoc +Gemfile.lock +awstesting/integration/smoke/**/importmarker__.go +awstesting/integration/smoke/_test/ +/vendor/bin/ +/vendor/pkg/ +/vendor/src/ +/private/model/cli/gen-api/gen-api diff --git a/vendor/github.com/aws/aws-sdk-go/.godoc_config b/vendor/github.com/aws/aws-sdk-go/.godoc_config new file mode 100644 index 00000000..395878d6 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/.godoc_config @@ -0,0 +1,14 @@ +{ + "PkgHandler": { + "Pattern": "/sdk-for-go/api/", + "StripPrefix": "/sdk-for-go/api", + "Include": ["/src/github.com/aws/aws-sdk-go/aws", "/src/github.com/aws/aws-sdk-go/service"], + "Exclude": ["/src/cmd", "/src/github.com/aws/aws-sdk-go/awstesting", "/src/github.com/aws/aws-sdk-go/awsmigrate"], + "IgnoredSuffixes": ["iface"] + }, + "Github": { + "Tag": "master", + "Repo": "/aws/aws-sdk-go", + "UseGithub": true + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/.travis.yml b/vendor/github.com/aws/aws-sdk-go/.travis.yml new file mode 100644 index 00000000..130d9115 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/.travis.yml @@ -0,0 +1,25 @@ +language: go + +sudo: required + +go: + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - tip + +# Use Go 1.5's vendoring experiment for 1.5 tests. +env: + - GO15VENDOREXPERIMENT=1 + +install: + - make get-deps + +script: + - make unit-with-race-cover + +matrix: + allow_failures: + - go: tip diff --git a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md index ef243177..ccd17263 100644 --- a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md @@ -1,3 +1,136 @@ +Release v1.12.6 (2017-10-05) +=== + +### Service Client Updates +* `service/redshift`: Updates service API and documentation + * DescribeEventSubscriptions API supports tag keys and tag values as request parameters. + +Release v1.12.5 (2017-10-04) +=== + +### Service Client Updates +* `service/kinesisanalytics`: Updates service API and documentation + * Kinesis Analytics now supports schema discovery on objects in S3. Additionally, Kinesis Analytics now supports input data preprocessing through Lambda. +* `service/route53domains`: Updates service API and documentation + * Added a new API that checks whether a domain name can be transferred to Amazon Route 53. + +### SDK Bugs +* `service/s3/s3crypto`: Correct PutObjectRequest documentation ([#1568](https://github.com/aws/aws-sdk-go/pull/1568)) + * s3Crypto's PutObjectRequest docstring example was using an incorrect value. Corrected the type used in the example. +Release v1.12.4 (2017-10-03) +=== + +### Service Client Updates +* `service/ec2`: Updates service API, documentation, and waiters + * This release includes service updates to AWS VPN. +* `service/ssm`: Updates service API and documentation + * EC2 Systems Manager support for tagging SSM Documents. Also support for tag-based permissions to restrict access to SSM Documents based on these tags. + +Release v1.12.3 (2017-10-02) +=== + +### Service Client Updates +* `service/cloudhsm`: Updates service documentation and paginators + * Documentation updates for CloudHSM + +Release v1.12.2 (2017-09-29) +=== + +### Service Client Updates +* `service/appstream`: Updates service API and documentation + * Includes APIs for managing and accessing image builders, and deleting images. +* `service/codebuild`: Updates service API and documentation + * Adding support for Building GitHub Pull Requests in AWS CodeBuild +* `service/mturk-requester`: Updates service API and documentation +* `service/organizations`: Updates service API and documentation + * This release flags the HandshakeParty structure's Type and Id fields as 'required'. They effectively were required in the past, as you received an error if you did not include them. This is now reflected at the API definition level. +* `service/route53`: Updates service API and documentation + * This change allows customers to reset elements of health check. + +### SDK Bugs +* `private/protocol/query`: Fix query protocol handling of nested byte slices ([#1557](https://github.com/aws/aws-sdk-go/issues/1557)) + * Fixes the query protocol to correctly marshal nested []byte values of API operations. +* `service/s3`: Fix PutObject and UploadPart API to include ContentMD5 field ([#1559](https://github.com/aws/aws-sdk-go/pull/1559)) + * Fixes the SDK's S3 PutObject and UploadPart API code generation to correctly render the ContentMD5 field into the associated input types for these two API operations. + * Fixes [#1553](https://github.com/aws/aws-sdk-go/pull/1553) +Release v1.12.1 (2017-09-27) +=== + +### Service Client Updates +* `aws/endpoints`: Updated Regions and Endpoints metadata. +* `service/pinpoint`: Updates service API and documentation + * Added two new push notification channels: Amazon Device Messaging (ADM) and, for push notification support in China, Baidu Cloud Push. Added support for APNs auth via .p8 key file. Added operation for direct message deliveries to user IDs, enabling you to message an individual user on multiple endpoints. + +Release v1.12.0 (2017-09-26) +=== + +### SDK Bugs +* `API Marshaler`: Revert REST JSON and XML protocol marshaler improvements + * Bug [#1550](https://github.com/aws/aws-sdk-go/issues/1550) identified a missed condition in the Amazon Route 53 RESTXML protocol marshaling causing requests to that service to fail. Reverting the marshaler improvements until the bug can be fixed. + +Release v1.11.0 (2017-09-26) +=== + +### Service Client Updates +* `service/cloudformation`: Updates service API and documentation + * You can now prevent a stack from being accidentally deleted by enabling termination protection on the stack. If you attempt to delete a stack with termination protection enabled, the deletion fails and the stack, including its status, remains unchanged. You can enable termination protection on a stack when you create it. Termination protection on stacks is disabled by default. After creation, you can set termination protection on a stack whose status is CREATE_COMPLETE, UPDATE_COMPLETE, or UPDATE_ROLLBACK_COMPLETE. + +### SDK Features +* Add dep Go dependency management metadata files (#1544) + * Adds the Go `dep` dependency management metadata files to the SDK. + * Fixes [#1451](https://github.com/aws/aws-sdk-go/issues/1451) + * Fixes [#634](https://github.com/aws/aws-sdk-go/issues/634) +* `service/dynamodb/expression`: Add expression building utility for DynamoDB ([#1527](https://github.com/aws/aws-sdk-go/pull/1527)) + * Adds a new package, expression, to the SDK providing builder utilities to create DynamoDB expressions safely taking advantage of type safety. +* `API Marshaler`: Add generated marshalers for RESTXML protocol ([#1409](https://github.com/aws/aws-sdk-go/pull/1409)) + * Updates the RESTXML protocol marshaler to use generated code instead of reflection for REST XML based services. +* `API Marshaler`: Add generated marshalers for RESTJSON protocol ([#1547](https://github.com/aws/aws-sdk-go/pull/1547)) + * Updates the RESTJSON protocol marshaler to use generated code instead of reflection for REST JSON based services. + +### SDK Enhancements +* `private/protocol`: Update format of REST JSON and XMl benchmarks ([#1546](https://github.com/aws/aws-sdk-go/pull/1546)) + * Updates the format of the REST JSON and XML benchmarks to be readable. RESTJSON benchmarks were updated to more accurately bench building of the protocol. + +Release v1.10.51 (2017-09-22) +=== + +### Service Client Updates +* `service/config`: Updates service API and documentation +* `service/ecs`: Updates service API and documentation + * Amazon ECS users can now add and drop Linux capabilities to their containers through the use of docker's cap-add and cap-drop features. Customers can specify the capabilities they wish to add or drop for each container in their task definition. +* `aws/endpoints`: Updated Regions and Endpoints metadata. +* `service/rds`: Updates service documentation + * Documentation updates for rds + +Release v1.10.50 (2017-09-21) +=== + +### Service Client Updates +* `service/budgets`: Updates service API + * Including "DuplicateRecordException" in UpdateNotification and UpdateSubscriber. +* `service/ec2`: Updates service API and documentation + * Add EC2 APIs to copy Amazon FPGA Images (AFIs) within the same region and across multiple regions, delete AFIs, and modify AFI attributes. AFI attributes include name, description and granting/denying other AWS accounts to load the AFI. +* `service/logs`: Updates service API and documentation + * Adds support for associating LogGroups with KMS Keys. + +### SDK Bugs +* Fix greengrass service model being duplicated with different casing. ([#1541](https://github.com/aws/aws-sdk-go/pull/1541)) + * Fixes [#1540](https://github.com/aws/aws-sdk-go/issues/1540) + * Fixes [#1539](https://github.com/aws/aws-sdk-go/issues/1539) +Release v1.10.49 (2017-09-20) +=== + +### Service Client Updates +* `service/Greengrass`: Adds new service +* `service/appstream`: Updates service API and documentation + * API updates for supporting On-Demand fleets. +* `service/codepipeline`: Updates service API and documentation + * This change includes a PipelineMetadata object that is part of the output from the GetPipeline API that includes the Pipeline ARN, created, and updated timestamp. +* `aws/endpoints`: Updated Regions and Endpoints metadata. +* `service/rds`: Updates service API and documentation + * Introduces the --option-group-name parameter to the ModifyDBSnapshot CLI command. You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Oracle.html#USER_UpgradeDBInstance.Oracle.OGPG.OG +* `service/runtime.lex`: Updates service API and documentation + Release v1.10.48 (2017-09-19) === diff --git a/vendor/github.com/aws/aws-sdk-go/Gopkg.lock b/vendor/github.com/aws/aws-sdk-go/Gopkg.lock new file mode 100644 index 00000000..854c94fd --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/Gopkg.lock @@ -0,0 +1,20 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + name = "github.com/go-ini/ini" + packages = ["."] + revision = "300e940a926eb277d3901b20bdfcc54928ad3642" + version = "v1.25.4" + +[[projects]] + name = "github.com/jmespath/go-jmespath" + packages = ["."] + revision = "0b12d6b5" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "51a86a867df617990082dec6b868e4efe2fdb2ed0e02a3daa93cd30f962b5085" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/vendor/github.com/aws/aws-sdk-go/Gopkg.toml b/vendor/github.com/aws/aws-sdk-go/Gopkg.toml new file mode 100644 index 00000000..664fc595 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/Gopkg.toml @@ -0,0 +1,48 @@ + +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" + +ignored = [ + # Testing/Example/Codegen dependencies + "github.com/stretchr/testify", + "github.com/stretchr/testify/assert", + "github.com/stretchr/testify/require", + "github.com/go-sql-driver/mysql", + "github.com/gucumber/gucumber", + "github.com/pkg/errors", + "golang.org/x/net", + "golang.org/x/net/html", + "golang.org/x/net/http2", + "golang.org/x/text", + "golang.org/x/text/html", + "golang.org/x/tools", + "golang.org/x/tools/go/loader", +] + + +[[constraint]] + name = "github.com/go-ini/ini" + version = "1.25.4" + +[[constraint]] + name = "github.com/jmespath/go-jmespath" + revision = "0b12d6b5" + #version = "0.2.2" diff --git a/vendor/github.com/aws/aws-sdk-go/aws/convert_types_test.go b/vendor/github.com/aws/aws-sdk-go/aws/convert_types_test.go index 0046d220..1a9461e1 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/convert_types_test.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/convert_types_test.go @@ -1,10 +1,9 @@ package aws import ( + "reflect" "testing" "time" - - "github.com/stretchr/testify/assert" ) var testCasesStringSlice = [][]string{ @@ -18,14 +17,22 @@ func TestStringSlice(t *testing.T) { continue } out := StringSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := StringValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -39,22 +46,34 @@ func TestStringValueSlice(t *testing.T) { continue } out := StringValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if out[i] != "" { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := StringSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if *(out2[i]) != "" { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := *in[i], *out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -70,14 +89,22 @@ func TestStringMap(t *testing.T) { continue } out := StringMap(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := StringValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -91,14 +118,22 @@ func TestBoolSlice(t *testing.T) { continue } out := BoolSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := BoolValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -110,22 +145,34 @@ func TestBoolValueSlice(t *testing.T) { continue } out := BoolValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if out[i] { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := BoolSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if *(out2[i]) { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := in[i], out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -141,14 +188,22 @@ func TestBoolMap(t *testing.T) { continue } out := BoolMap(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := BoolValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -162,14 +217,22 @@ func TestIntSlice(t *testing.T) { continue } out := IntSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := IntValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -181,22 +244,34 @@ func TestIntValueSlice(t *testing.T) { continue } out := IntValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if out[i] != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := IntSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if *(out2[i]) != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := in[i], out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -212,14 +287,22 @@ func TestIntMap(t *testing.T) { continue } out := IntMap(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := IntValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -233,14 +316,22 @@ func TestInt64Slice(t *testing.T) { continue } out := Int64Slice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := Int64ValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -252,22 +343,34 @@ func TestInt64ValueSlice(t *testing.T) { continue } out := Int64ValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if out[i] != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := Int64Slice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if *(out2[i]) != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := in[i], out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -283,14 +386,22 @@ func TestInt64Map(t *testing.T) { continue } out := Int64Map(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := Int64ValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -304,14 +415,22 @@ func TestFloat64Slice(t *testing.T) { continue } out := Float64Slice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := Float64ValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -323,22 +442,34 @@ func TestFloat64ValueSlice(t *testing.T) { continue } out := Float64ValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if out[i] != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := Float64Slice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if *(out2[i]) != 0 { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := in[i], out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -354,14 +485,22 @@ func TestFloat64Map(t *testing.T) { continue } out := Float64Map(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := Float64ValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -375,14 +514,22 @@ func TestTimeSlice(t *testing.T) { continue } out := TimeSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := TimeValueSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -394,22 +541,34 @@ func TestTimeValueSlice(t *testing.T) { continue } out := TimeValueSlice(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { if in[i] == nil { - assert.Empty(t, out[i], "Unexpected value at idx %d", idx) + if !out[i].IsZero() { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, *(in[i]), out[i], "Unexpected value at idx %d", idx) + if e, a := *(in[i]), out[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } out2 := TimeSlice(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out2 { if in[i] == nil { - assert.Empty(t, *(out2[i]), "Unexpected value at idx %d", idx) + if !(*(out2[i])).IsZero() { + t.Errorf("Unexpected value at idx %d", idx) + } } else { - assert.Equal(t, in[i], out2[i], "Unexpected value at idx %d", idx) + if e, a := in[i], out2[i]; e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } } } @@ -425,14 +584,22 @@ func TestTimeMap(t *testing.T) { continue } out := TimeMap(in) - assert.Len(t, out, len(in), "Unexpected len at idx %d", idx) + if e, a := len(out), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } for i := range out { - assert.Equal(t, in[i], *(out[i]), "Unexpected value at idx %d", idx) + if e, a := in[i], *(out[i]); e != a { + t.Errorf("Unexpected value at idx %d", idx) + } } out2 := TimeValueMap(out) - assert.Len(t, out2, len(in), "Unexpected len at idx %d", idx) - assert.Equal(t, in, out2, "Unexpected value at idx %d", idx) + if e, a := len(out2), len(in); e != a { + t.Errorf("Unexpected len at idx %d", idx) + } + if e, a := in, out2; !reflect.DeepEqual(e, a) { + t.Errorf("Unexpected value at idx %d", idx) + } } } @@ -458,13 +625,17 @@ var testCasesTimeValue = []TimeValueTestCase{ func TestSecondsTimeValue(t *testing.T) { for idx, testCase := range testCasesTimeValue { out := SecondsTimeValue(&testCase.in) - assert.Equal(t, testCase.outSecs, out, "Unexpected value for time value at %d", idx) + if e, a := testCase.outSecs, out; e != a { + t.Errorf("Unexpected value for time value at %d", idx) + } } } func TestMillisecondsTimeValue(t *testing.T) { for idx, testCase := range testCasesTimeValue { out := MillisecondsTimeValue(&testCase.in) - assert.Equal(t, testCase.outMillis, out, "Unexpected value for time value at %d", idx) + if e, a := testCase.outMillis, out; e != a { + t.Errorf("Unexpected value for time value at %d", idx) + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers_test.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers_test.go index fe7d3c9b..1d715c9f 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers_test.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers_test.go @@ -7,11 +7,10 @@ import ( "net/http" "net/http/httptest" "os" + "strings" "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/corehandlers" @@ -32,7 +31,9 @@ func TestValidateEndpointHandler(t *testing.T) { req := svc.NewRequest(&request.Operation{Name: "Operation"}, nil, nil) err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestValidateEndpointHandlerErrorRegion(t *testing.T) { @@ -45,8 +46,12 @@ func TestValidateEndpointHandlerErrorRegion(t *testing.T) { req := svc.NewRequest(&request.Operation{Name: "Operation"}, nil, nil) err := req.Build() - assert.Error(t, err) - assert.Equal(t, aws.ErrMissingRegion, err) + if err == nil { + t.Errorf("expect error, got none") + } + if e, a := aws.ErrMissingRegion, err; e != a { + t.Errorf("expect %v to be %v", e, a) + } } type mockCredsProvider struct { @@ -82,18 +87,30 @@ func TestAfterRetryRefreshCreds(t *testing.T) { }) svc.Handlers.AfterRetry.PushBackNamed(corehandlers.AfterRetryHandler) - assert.True(t, svc.Config.Credentials.IsExpired(), "Expect to start out expired") - assert.False(t, credProvider.retrieveCalled) + if !svc.Config.Credentials.IsExpired() { + t.Errorf("Expect to start out expired") + } + if credProvider.retrieveCalled { + t.Errorf("expect not called") + } req := svc.NewRequest(&request.Operation{Name: "Operation"}, nil, nil) req.Send() - assert.True(t, svc.Config.Credentials.IsExpired()) - assert.False(t, credProvider.retrieveCalled) + if !svc.Config.Credentials.IsExpired() { + t.Errorf("Expect to start out expired") + } + if credProvider.retrieveCalled { + t.Errorf("expect not called") + } _, err := svc.Config.Credentials.Get() - assert.NoError(t, err) - assert.True(t, credProvider.retrieveCalled) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if !credProvider.retrieveCalled { + t.Errorf("expect not called") + } } func TestAfterRetryWithContextCanceled(t *testing.T) { @@ -202,8 +219,12 @@ func TestSendHandlerError(t *testing.T) { r.Send() - assert.Error(t, r.Error) - assert.NotNil(t, r.HTTPResponse) + if r.Error == nil { + t.Errorf("expect error, got none") + } + if r.HTTPResponse == nil { + t.Errorf("expect response, got none") + } } func TestSendWithoutFollowRedirects(t *testing.T) { @@ -273,31 +294,47 @@ func TestValidateReqSigHandler(t *testing.T) { corehandlers.ValidateReqSigHandler.Fn(c.Req) - assert.NoError(t, c.Req.Error, "%d, expect no error", i) - assert.Equal(t, c.Resign, resigned, "%d, expected resigning to match", i) + if c.Req.Error != nil { + t.Errorf("expect no error, got %v", c.Req.Error) + } + if e, a := c.Resign, resigned; e != a { + t.Errorf("%d, expect %v to be %v", i, e, a) + } } } func setupContentLengthTestServer(t *testing.T, hasContentLength bool, contentLength int64) *httptest.Server { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, ok := r.Header["Content-Length"] - assert.Equal(t, hasContentLength, ok, "expect content length to be set, %t", hasContentLength) + if e, a := hasContentLength, ok; e != a { + t.Errorf("expect %v to be %v", e, a) + } if hasContentLength { - assert.Equal(t, contentLength, r.ContentLength) + if e, a := contentLength, r.ContentLength; e != a { + t.Errorf("expect %v to be %v", e, a) + } } b, err := ioutil.ReadAll(r.Body) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } r.Body.Close() authHeader := r.Header.Get("Authorization") if hasContentLength { - assert.Contains(t, authHeader, "content-length") + if e, a := "content-length", authHeader; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v", e, a) + } } else { - assert.NotContains(t, authHeader, "content-length") + if e, a := "content-length", authHeader; strings.Contains(a, e) { + t.Errorf("expect %v to not be in %v", e, a) + } } - assert.Equal(t, contentLength, int64(len(b))) + if e, a := contentLength, int64(len(b)); e != a { + t.Errorf("expect %v to be %v", e, a) + } })) return server @@ -316,7 +353,9 @@ func TestBuildContentLength_ZeroBody(t *testing.T) { Key: aws.String("keyname"), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestBuildContentLength_NegativeBody(t *testing.T) { @@ -334,7 +373,9 @@ func TestBuildContentLength_NegativeBody(t *testing.T) { req.HTTPRequest.Header.Set("Content-Length", "-1") - assert.NoError(t, req.Send()) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } } func TestBuildContentLength_WithBody(t *testing.T) { @@ -351,5 +392,7 @@ func TestBuildContentLength_WithBody(t *testing.T) { Body: bytes.NewReader(make([]byte, 1024)), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator_test.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator_test.go index 66973ca0..e1d8a08f 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator_test.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator_test.go @@ -3,8 +3,7 @@ package corehandlers_test import ( "fmt" "testing" - - "github.com/stretchr/testify/assert" + "reflect" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -14,7 +13,6 @@ import ( "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/kinesis" - "github.com/stretchr/testify/require" ) var testSvc = func() *client.Client { @@ -113,7 +111,9 @@ func TestNoErrors(t *testing.T) { req := testSvc.NewRequest(&request.Operation{}, input, nil) corehandlers.ValidateParametersHandler.Fn(req) - require.NoError(t, req.Error) + if req.Error != nil { + t.Fatalf("expect no error, got %v", req.Error) + } } func TestMissingRequiredParameters(t *testing.T) { @@ -121,17 +121,33 @@ func TestMissingRequiredParameters(t *testing.T) { req := testSvc.NewRequest(&request.Operation{}, input, nil) corehandlers.ValidateParametersHandler.Fn(req) - require.Error(t, req.Error) - assert.Equal(t, "InvalidParameter", req.Error.(awserr.Error).Code()) - assert.Equal(t, "3 validation error(s) found.", req.Error.(awserr.Error).Message()) + if req.Error == nil { + t.Fatalf("expect error") + } + if e, a := "InvalidParameter", req.Error.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "3 validation error(s) found.", req.Error.(awserr.Error).Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } errs := req.Error.(awserr.BatchedErrors).OrigErrs() - assert.Len(t, errs, 3) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.RequiredList.", errs[0].Error()) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.RequiredMap.", errs[1].Error()) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.RequiredBool.", errs[2].Error()) + if e, a := 3, len(errs); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.RequiredList.", errs[0].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.RequiredMap.", errs[1].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.RequiredBool.", errs[2].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } - assert.Equal(t, "InvalidParameter: 3 validation error(s) found.\n- missing required field, StructShape.RequiredList.\n- missing required field, StructShape.RequiredMap.\n- missing required field, StructShape.RequiredBool.\n", req.Error.Error()) + if e, a := "InvalidParameter: 3 validation error(s) found.\n- missing required field, StructShape.RequiredList.\n- missing required field, StructShape.RequiredMap.\n- missing required field, StructShape.RequiredBool.\n", req.Error.Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestNestedMissingRequiredParameters(t *testing.T) { @@ -148,15 +164,29 @@ func TestNestedMissingRequiredParameters(t *testing.T) { req := testSvc.NewRequest(&request.Operation{}, input, nil) corehandlers.ValidateParametersHandler.Fn(req) - require.Error(t, req.Error) - assert.Equal(t, "InvalidParameter", req.Error.(awserr.Error).Code()) - assert.Equal(t, "3 validation error(s) found.", req.Error.(awserr.Error).Message()) + if req.Error == nil { + t.Fatalf("expect error") + } + if e, a := "InvalidParameter", req.Error.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "3 validation error(s) found.", req.Error.(awserr.Error).Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } errs := req.Error.(awserr.BatchedErrors).OrigErrs() - assert.Len(t, errs, 3) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.RequiredList[0].Name.", errs[0].Error()) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.RequiredMap[key2].Name.", errs[1].Error()) - assert.Equal(t, "ParamRequiredError: missing required field, StructShape.OptionalStruct.Name.", errs[2].Error()) + if e, a := 3, len(errs); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.RequiredList[0].Name.", errs[0].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.RequiredMap[key2].Name.", errs[1].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "ParamRequiredError: missing required field, StructShape.OptionalStruct.Name.", errs[2].Error(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } type testInput struct { @@ -226,7 +256,9 @@ func TestValidateFieldMinParameter(t *testing.T) { req := testSvc.NewRequest(&request.Operation{}, &c.in, nil) corehandlers.ValidateParametersHandler.Fn(req) - assert.Equal(t, c.err, req.Error, "%d case failed", i) + if e, a := c.err, req.Error; !reflect.DeepEqual(e,a) { + t.Errorf("%d, expect %v, got %v", i, e, a) + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api_test.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api_test.go index 35e75782..7dde1fb3 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api_test.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api_test.go @@ -11,8 +11,6 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/ec2metadata" @@ -71,8 +69,12 @@ func TestEndpoint(t *testing.T) { } req := c.NewRequest(op, nil, nil) - assert.Equal(t, "http://169.254.169.254/latest", req.ClientInfo.Endpoint) - assert.Equal(t, "http://169.254.169.254/latest/meta-data/testpath", req.HTTPRequest.URL.String()) + if e, a := "http://169.254.169.254/latest", req.ClientInfo.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "http://169.254.169.254/latest/meta-data/testpath", req.HTTPRequest.URL.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestGetMetadata(t *testing.T) { @@ -85,8 +87,12 @@ func TestGetMetadata(t *testing.T) { resp, err := c.GetMetadata("some/path") - assert.NoError(t, err) - assert.Equal(t, "success", resp) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "success", resp; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestGetUserData(t *testing.T) { @@ -99,8 +105,12 @@ func TestGetUserData(t *testing.T) { resp, err := c.GetUserData() - assert.NoError(t, err) - assert.Equal(t, "success", resp) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "success", resp; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestGetUserData_Error(t *testing.T) { @@ -126,12 +136,17 @@ func TestGetUserData_Error(t *testing.T) { c := ec2metadata.New(unit.Session, &aws.Config{Endpoint: aws.String(server.URL + "/latest")}) resp, err := c.GetUserData() - assert.Error(t, err) - assert.Empty(t, resp) + if err == nil { + t.Errorf("expect error") + } + if len(resp) != 0 { + t.Errorf("expect empty, got %v", resp) + } - aerr, ok := err.(awserr.Error) - assert.True(t, ok) - assert.Equal(t, "NotFoundError", aerr.Code()) + aerr := err.(awserr.Error) + if e, a := "NotFoundError", aerr.Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestGetRegion(t *testing.T) { @@ -144,8 +159,12 @@ func TestGetRegion(t *testing.T) { region, err := c.Region() - assert.NoError(t, err) - assert.Equal(t, "us-west-2", region) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "us-west-2", region; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestMetadataAvailable(t *testing.T) { @@ -156,9 +175,9 @@ func TestMetadataAvailable(t *testing.T) { defer server.Close() c := ec2metadata.New(unit.Session, &aws.Config{Endpoint: aws.String(server.URL + "/latest")}) - available := c.Available() - - assert.True(t, available) + if !c.Available() { + t.Errorf("expect available") + } } func TestMetadataIAMInfo_success(t *testing.T) { @@ -170,10 +189,18 @@ func TestMetadataIAMInfo_success(t *testing.T) { c := ec2metadata.New(unit.Session, &aws.Config{Endpoint: aws.String(server.URL + "/latest")}) iamInfo, err := c.IAMInfo() - assert.NoError(t, err) - assert.Equal(t, "Success", iamInfo.Code) - assert.Equal(t, "arn:aws:iam::123456789012:instance-profile/my-instance-profile", iamInfo.InstanceProfileArn) - assert.Equal(t, "AIPAABCDEFGHIJKLMN123", iamInfo.InstanceProfileID) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "Success", iamInfo.Code; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "arn:aws:iam::123456789012:instance-profile/my-instance-profile", iamInfo.InstanceProfileArn; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "AIPAABCDEFGHIJKLMN123", iamInfo.InstanceProfileID; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestMetadataIAMInfo_failure(t *testing.T) { @@ -185,10 +212,18 @@ func TestMetadataIAMInfo_failure(t *testing.T) { c := ec2metadata.New(unit.Session, &aws.Config{Endpoint: aws.String(server.URL + "/latest")}) iamInfo, err := c.IAMInfo() - assert.NotNil(t, err) - assert.Equal(t, "", iamInfo.Code) - assert.Equal(t, "", iamInfo.InstanceProfileArn) - assert.Equal(t, "", iamInfo.InstanceProfileID) + if err == nil { + t.Errorf("expect error") + } + if e, a := "", iamInfo.Code; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "", iamInfo.InstanceProfileArn; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "", iamInfo.InstanceProfileID; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestMetadataNotAvailable(t *testing.T) { @@ -204,9 +239,9 @@ func TestMetadataNotAvailable(t *testing.T) { r.Retryable = aws.Bool(true) // network errors are retryable }) - available := c.Available() - - assert.False(t, available) + if c.Available() { + t.Errorf("expect not available") + } } func TestMetadataErrorResponse(t *testing.T) { @@ -222,8 +257,12 @@ func TestMetadataErrorResponse(t *testing.T) { }) data, err := c.GetMetadata("uri/path") - assert.Empty(t, data) - assert.Contains(t, err.Error(), "error message text") + if len(data) != 0 { + t.Errorf("expect empty, got %v", data) + } + if e, a := "error message text", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v", e, a) + } } func TestEC2RoleProviderInstanceIdentity(t *testing.T) { @@ -235,8 +274,16 @@ func TestEC2RoleProviderInstanceIdentity(t *testing.T) { c := ec2metadata.New(unit.Session, &aws.Config{Endpoint: aws.String(server.URL + "/latest")}) doc, err := c.GetInstanceIdentityDocument() - assert.Nil(t, err, "Expect no error, %v", err) - assert.Equal(t, doc.AccountID, "123456789012") - assert.Equal(t, doc.AvailabilityZone, "us-east-1d") - assert.Equal(t, doc.Region, "us-east-1") + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := doc.AccountID, "123456789012"; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := doc.AvailabilityZone, "us-east-1d"; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := doc.Region, "us-east-1"; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 56fefcfc..f468de00 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -1008,6 +1008,7 @@ var awsPartition = partition{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, @@ -1023,6 +1024,8 @@ var awsPartition = partition{ Endpoints: endpoints{ "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "greengrass": service{ @@ -1031,6 +1034,7 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "us-east-1": endpoint{}, @@ -1545,6 +1549,7 @@ var awsPartition = partition{ "snowball": service{ Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, @@ -1825,6 +1830,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, }, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 403f5560..ea8febed 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.10.48" +const SDKVersion = "1.12.6" diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/LICENSE b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/PATENTS b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go deleted file mode 100644 index 340c9e6c..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go +++ /dev/null @@ -1,624 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package astutil - -// This file defines utilities for working with source positions. - -import ( - "fmt" - "go/ast" - "go/token" - "sort" -) - -// PathEnclosingInterval returns the node that encloses the source -// interval [start, end), and all its ancestors up to the AST root. -// -// The definition of "enclosing" used by this function considers -// additional whitespace abutting a node to be enclosed by it. -// In this example: -// -// z := x + y // add them -// <-A-> -// <----B-----> -// -// the ast.BinaryExpr(+) node is considered to enclose interval B -// even though its [Pos()..End()) is actually only interval A. -// This behaviour makes user interfaces more tolerant of imperfect -// input. -// -// This function treats tokens as nodes, though they are not included -// in the result. e.g. PathEnclosingInterval("+") returns the -// enclosing ast.BinaryExpr("x + y"). -// -// If start==end, the 1-char interval following start is used instead. -// -// The 'exact' result is true if the interval contains only path[0] -// and perhaps some adjacent whitespace. It is false if the interval -// overlaps multiple children of path[0], or if it contains only -// interior whitespace of path[0]. -// In this example: -// -// z := x + y // add them -// <--C--> <---E--> -// ^ -// D -// -// intervals C, D and E are inexact. C is contained by the -// z-assignment statement, because it spans three of its children (:=, -// x, +). So too is the 1-char interval D, because it contains only -// interior whitespace of the assignment. E is considered interior -// whitespace of the BlockStmt containing the assignment. -// -// Precondition: [start, end) both lie within the same file as root. -// TODO(adonovan): return (nil, false) in this case and remove precond. -// Requires FileSet; see loader.tokenFileContainsPos. -// -// Postcondition: path is never nil; it always contains at least 'root'. -// -func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) { - // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging - - // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end). - var visit func(node ast.Node) bool - visit = func(node ast.Node) bool { - path = append(path, node) - - nodePos := node.Pos() - nodeEnd := node.End() - - // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging - - // Intersect [start, end) with interval of node. - if start < nodePos { - start = nodePos - } - if end > nodeEnd { - end = nodeEnd - } - - // Find sole child that contains [start, end). - children := childrenOf(node) - l := len(children) - for i, child := range children { - // [childPos, childEnd) is unaugmented interval of child. - childPos := child.Pos() - childEnd := child.End() - - // [augPos, augEnd) is whitespace-augmented interval of child. - augPos := childPos - augEnd := childEnd - if i > 0 { - augPos = children[i-1].End() // start of preceding whitespace - } - if i < l-1 { - nextChildPos := children[i+1].Pos() - // Does [start, end) lie between child and next child? - if start >= augEnd && end <= nextChildPos { - return false // inexact match - } - augEnd = nextChildPos // end of following whitespace - } - - // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n", - // i, augPos, augEnd, start, end) // debugging - - // Does augmented child strictly contain [start, end)? - if augPos <= start && end <= augEnd { - _, isToken := child.(tokenNode) - return isToken || visit(child) - } - - // Does [start, end) overlap multiple children? - // i.e. left-augmented child contains start - // but LR-augmented child does not contain end. - if start < childEnd && end > augEnd { - break - } - } - - // No single child contained [start, end), - // so node is the result. Is it exact? - - // (It's tempting to put this condition before the - // child loop, but it gives the wrong result in the - // case where a node (e.g. ExprStmt) and its sole - // child have equal intervals.) - if start == nodePos && end == nodeEnd { - return true // exact match - } - - return false // inexact: overlaps multiple children - } - - if start > end { - start, end = end, start - } - - if start < root.End() && end > root.Pos() { - if start == end { - end = start + 1 // empty interval => interval of size 1 - } - exact = visit(root) - - // Reverse the path: - for i, l := 0, len(path); i < l/2; i++ { - path[i], path[l-1-i] = path[l-1-i], path[i] - } - } else { - // Selection lies within whitespace preceding the - // first (or following the last) declaration in the file. - // The result nonetheless always includes the ast.File. - path = append(path, root) - } - - return -} - -// tokenNode is a dummy implementation of ast.Node for a single token. -// They are used transiently by PathEnclosingInterval but never escape -// this package. -// -type tokenNode struct { - pos token.Pos - end token.Pos -} - -func (n tokenNode) Pos() token.Pos { - return n.pos -} - -func (n tokenNode) End() token.Pos { - return n.end -} - -func tok(pos token.Pos, len int) ast.Node { - return tokenNode{pos, pos + token.Pos(len)} -} - -// childrenOf returns the direct non-nil children of ast.Node n. -// It may include fake ast.Node implementations for bare tokens. -// it is not safe to call (e.g.) ast.Walk on such nodes. -// -func childrenOf(n ast.Node) []ast.Node { - var children []ast.Node - - // First add nodes for all true subtrees. - ast.Inspect(n, func(node ast.Node) bool { - if node == n { // push n - return true // recur - } - if node != nil { // push child - children = append(children, node) - } - return false // no recursion - }) - - // Then add fake Nodes for bare tokens. - switch n := n.(type) { - case *ast.ArrayType: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Elt.End(), len("]"))) - - case *ast.AssignStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.BasicLit: - children = append(children, - tok(n.ValuePos, len(n.Value))) - - case *ast.BinaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.BlockStmt: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("}"))) - - case *ast.BranchStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.CallExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - if n.Ellipsis != 0 { - children = append(children, tok(n.Ellipsis, len("..."))) - } - - case *ast.CaseClause: - if n.List == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.ChanType: - switch n.Dir { - case ast.RECV: - children = append(children, tok(n.Begin, len("<-chan"))) - case ast.SEND: - children = append(children, tok(n.Begin, len("chan<-"))) - case ast.RECV | ast.SEND: - children = append(children, tok(n.Begin, len("chan"))) - } - - case *ast.CommClause: - if n.Comm == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.Comment: - // nop - - case *ast.CommentGroup: - // nop - - case *ast.CompositeLit: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("{"))) - - case *ast.DeclStmt: - // nop - - case *ast.DeferStmt: - children = append(children, - tok(n.Defer, len("defer"))) - - case *ast.Ellipsis: - children = append(children, - tok(n.Ellipsis, len("..."))) - - case *ast.EmptyStmt: - // nop - - case *ast.ExprStmt: - // nop - - case *ast.Field: - // TODO(adonovan): Field.{Doc,Comment,Tag}? - - case *ast.FieldList: - children = append(children, - tok(n.Opening, len("(")), - tok(n.Closing, len(")"))) - - case *ast.File: - // TODO test: Doc - children = append(children, - tok(n.Package, len("package"))) - - case *ast.ForStmt: - children = append(children, - tok(n.For, len("for"))) - - case *ast.FuncDecl: - // TODO(adonovan): FuncDecl.Comment? - - // Uniquely, FuncDecl breaks the invariant that - // preorder traversal yields tokens in lexical order: - // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func. - // - // As a workaround, we inline the case for FuncType - // here and order things correctly. - // - children = nil // discard ast.Walk(FuncDecl) info subtrees - children = append(children, tok(n.Type.Func, len("func"))) - if n.Recv != nil { - children = append(children, n.Recv) - } - children = append(children, n.Name) - if n.Type.Params != nil { - children = append(children, n.Type.Params) - } - if n.Type.Results != nil { - children = append(children, n.Type.Results) - } - if n.Body != nil { - children = append(children, n.Body) - } - - case *ast.FuncLit: - // nop - - case *ast.FuncType: - if n.Func != 0 { - children = append(children, - tok(n.Func, len("func"))) - } - - case *ast.GenDecl: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - if n.Lparen != 0 { - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - } - - case *ast.GoStmt: - children = append(children, - tok(n.Go, len("go"))) - - case *ast.Ident: - children = append(children, - tok(n.NamePos, len(n.Name))) - - case *ast.IfStmt: - children = append(children, - tok(n.If, len("if"))) - - case *ast.ImportSpec: - // TODO(adonovan): ImportSpec.{Doc,EndPos}? - - case *ast.IncDecStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.IndexExpr: - children = append(children, - tok(n.Lbrack, len("{")), - tok(n.Rbrack, len("}"))) - - case *ast.InterfaceType: - children = append(children, - tok(n.Interface, len("interface"))) - - case *ast.KeyValueExpr: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.LabeledStmt: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.MapType: - children = append(children, - tok(n.Map, len("map"))) - - case *ast.ParenExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.RangeStmt: - children = append(children, - tok(n.For, len("for")), - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.ReturnStmt: - children = append(children, - tok(n.Return, len("return"))) - - case *ast.SelectStmt: - children = append(children, - tok(n.Select, len("select"))) - - case *ast.SelectorExpr: - // nop - - case *ast.SendStmt: - children = append(children, - tok(n.Arrow, len("<-"))) - - case *ast.SliceExpr: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Rbrack, len("]"))) - - case *ast.StarExpr: - children = append(children, tok(n.Star, len("*"))) - - case *ast.StructType: - children = append(children, tok(n.Struct, len("struct"))) - - case *ast.SwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.TypeAssertExpr: - children = append(children, - tok(n.Lparen-1, len(".")), - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.TypeSpec: - // TODO(adonovan): TypeSpec.{Doc,Comment}? - - case *ast.TypeSwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.UnaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.ValueSpec: - // TODO(adonovan): ValueSpec.{Doc,Comment}? - - case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt: - // nop - } - - // TODO(adonovan): opt: merge the logic of ast.Inspect() into - // the switch above so we can make interleaved callbacks for - // both Nodes and Tokens in the right order and avoid the need - // to sort. - sort.Sort(byPos(children)) - - return children -} - -type byPos []ast.Node - -func (sl byPos) Len() int { - return len(sl) -} -func (sl byPos) Less(i, j int) bool { - return sl[i].Pos() < sl[j].Pos() -} -func (sl byPos) Swap(i, j int) { - sl[i], sl[j] = sl[j], sl[i] -} - -// NodeDescription returns a description of the concrete type of n suitable -// for a user interface. -// -// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident, -// StarExpr) we could be much more specific given the path to the AST -// root. Perhaps we should do that. -// -func NodeDescription(n ast.Node) string { - switch n := n.(type) { - case *ast.ArrayType: - return "array type" - case *ast.AssignStmt: - return "assignment" - case *ast.BadDecl: - return "bad declaration" - case *ast.BadExpr: - return "bad expression" - case *ast.BadStmt: - return "bad statement" - case *ast.BasicLit: - return "basic literal" - case *ast.BinaryExpr: - return fmt.Sprintf("binary %s operation", n.Op) - case *ast.BlockStmt: - return "block" - case *ast.BranchStmt: - switch n.Tok { - case token.BREAK: - return "break statement" - case token.CONTINUE: - return "continue statement" - case token.GOTO: - return "goto statement" - case token.FALLTHROUGH: - return "fall-through statement" - } - case *ast.CallExpr: - return "function call (or conversion)" - case *ast.CaseClause: - return "case clause" - case *ast.ChanType: - return "channel type" - case *ast.CommClause: - return "communication clause" - case *ast.Comment: - return "comment" - case *ast.CommentGroup: - return "comment group" - case *ast.CompositeLit: - return "composite literal" - case *ast.DeclStmt: - return NodeDescription(n.Decl) + " statement" - case *ast.DeferStmt: - return "defer statement" - case *ast.Ellipsis: - return "ellipsis" - case *ast.EmptyStmt: - return "empty statement" - case *ast.ExprStmt: - return "expression statement" - case *ast.Field: - // Can be any of these: - // struct {x, y int} -- struct field(s) - // struct {T} -- anon struct field - // interface {I} -- interface embedding - // interface {f()} -- interface method - // func (A) func(B) C -- receiver, param(s), result(s) - return "field/method/parameter" - case *ast.FieldList: - return "field/method/parameter list" - case *ast.File: - return "source file" - case *ast.ForStmt: - return "for loop" - case *ast.FuncDecl: - return "function declaration" - case *ast.FuncLit: - return "function literal" - case *ast.FuncType: - return "function type" - case *ast.GenDecl: - switch n.Tok { - case token.IMPORT: - return "import declaration" - case token.CONST: - return "constant declaration" - case token.TYPE: - return "type declaration" - case token.VAR: - return "variable declaration" - } - case *ast.GoStmt: - return "go statement" - case *ast.Ident: - return "identifier" - case *ast.IfStmt: - return "if statement" - case *ast.ImportSpec: - return "import specification" - case *ast.IncDecStmt: - if n.Tok == token.INC { - return "increment statement" - } - return "decrement statement" - case *ast.IndexExpr: - return "index expression" - case *ast.InterfaceType: - return "interface type" - case *ast.KeyValueExpr: - return "key/value association" - case *ast.LabeledStmt: - return "statement label" - case *ast.MapType: - return "map type" - case *ast.Package: - return "package" - case *ast.ParenExpr: - return "parenthesized " + NodeDescription(n.X) - case *ast.RangeStmt: - return "range loop" - case *ast.ReturnStmt: - return "return statement" - case *ast.SelectStmt: - return "select statement" - case *ast.SelectorExpr: - return "selector" - case *ast.SendStmt: - return "channel send" - case *ast.SliceExpr: - return "slice expression" - case *ast.StarExpr: - return "*-operation" // load/store expr or pointer type - case *ast.StructType: - return "struct type" - case *ast.SwitchStmt: - return "switch statement" - case *ast.TypeAssertExpr: - return "type assertion" - case *ast.TypeSpec: - return "type specification" - case *ast.TypeSwitchStmt: - return "type switch" - case *ast.UnaryExpr: - return fmt.Sprintf("unary %s operation", n.Op) - case *ast.ValueSpec: - return "value specification" - - } - panic(fmt.Sprintf("unexpected node type: %T", n)) -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/imports.go deleted file mode 100644 index a47bcfa3..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ /dev/null @@ -1,400 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package astutil contains common utilities for working with the Go AST. -package astutil - -import ( - "fmt" - "go/ast" - "go/token" - "strconv" - "strings" -) - -// AddImport adds the import path to the file f, if absent. -func AddImport(fset *token.FileSet, f *ast.File, ipath string) (added bool) { - return AddNamedImport(fset, f, "", ipath) -} - -// AddNamedImport adds the import path to the file f, if absent. -// If name is not empty, it is used to rename the import. -// -// For example, calling -// AddNamedImport(fset, f, "pathpkg", "path") -// adds -// import pathpkg "path" -func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added bool) { - if imports(f, ipath) { - return false - } - - newImport := &ast.ImportSpec{ - Path: &ast.BasicLit{ - Kind: token.STRING, - Value: strconv.Quote(ipath), - }, - } - if name != "" { - newImport.Name = &ast.Ident{Name: name} - } - - // Find an import decl to add to. - // The goal is to find an existing import - // whose import path has the longest shared - // prefix with ipath. - var ( - bestMatch = -1 // length of longest shared prefix - lastImport = -1 // index in f.Decls of the file's final import decl - impDecl *ast.GenDecl // import decl containing the best match - impIndex = -1 // spec index in impDecl containing the best match - ) - for i, decl := range f.Decls { - gen, ok := decl.(*ast.GenDecl) - if ok && gen.Tok == token.IMPORT { - lastImport = i - // Do not add to import "C", to avoid disrupting the - // association with its doc comment, breaking cgo. - if declImports(gen, "C") { - continue - } - - // Match an empty import decl if that's all that is available. - if len(gen.Specs) == 0 && bestMatch == -1 { - impDecl = gen - } - - // Compute longest shared prefix with imports in this group. - for j, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - n := matchLen(importPath(impspec), ipath) - if n > bestMatch { - bestMatch = n - impDecl = gen - impIndex = j - } - } - } - } - - // If no import decl found, add one after the last import. - if impDecl == nil { - impDecl = &ast.GenDecl{ - Tok: token.IMPORT, - } - if lastImport >= 0 { - impDecl.TokPos = f.Decls[lastImport].End() - } else { - // There are no existing imports. - // Our new import goes after the package declaration and after - // the comment, if any, that starts on the same line as the - // package declaration. - impDecl.TokPos = f.Package - - file := fset.File(f.Package) - pkgLine := file.Line(f.Package) - for _, c := range f.Comments { - if file.Line(c.Pos()) > pkgLine { - break - } - impDecl.TokPos = c.End() - } - } - f.Decls = append(f.Decls, nil) - copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:]) - f.Decls[lastImport+1] = impDecl - } - - // Insert new import at insertAt. - insertAt := 0 - if impIndex >= 0 { - // insert after the found import - insertAt = impIndex + 1 - } - impDecl.Specs = append(impDecl.Specs, nil) - copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:]) - impDecl.Specs[insertAt] = newImport - pos := impDecl.Pos() - if insertAt > 0 { - // If there is a comment after an existing import, preserve the comment - // position by adding the new import after the comment. - if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil { - pos = spec.Comment.End() - } else { - // Assign same position as the previous import, - // so that the sorter sees it as being in the same block. - pos = impDecl.Specs[insertAt-1].Pos() - } - } - if newImport.Name != nil { - newImport.Name.NamePos = pos - } - newImport.Path.ValuePos = pos - newImport.EndPos = pos - - // Clean up parens. impDecl contains at least one spec. - if len(impDecl.Specs) == 1 { - // Remove unneeded parens. - impDecl.Lparen = token.NoPos - } else if !impDecl.Lparen.IsValid() { - // impDecl needs parens added. - impDecl.Lparen = impDecl.Specs[0].Pos() - } - - f.Imports = append(f.Imports, newImport) - - if len(f.Decls) <= 1 { - return true - } - - // Merge all the import declarations into the first one. - var first *ast.GenDecl - for i, decl := range f.Decls { - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { - continue - } - if first == nil { - first = gen - continue // Don't touch the first one. - } - // Move the imports of the other import declaration to the first one. - for _, spec := range gen.Specs { - spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() - first.Specs = append(first.Specs, spec) - } - f.Decls = append(f.Decls[:i], f.Decls[i+1:]...) - } - - return true -} - -// DeleteImport deletes the import path from the file f, if present. -func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) { - return DeleteNamedImport(fset, f, "", path) -} - -// DeleteNamedImport deletes the import with the given name and path from the file f, if present. -func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { - var delspecs []*ast.ImportSpec - - // Find the import nodes that import path, if any. - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT { - continue - } - for j := 0; j < len(gen.Specs); j++ { - spec := gen.Specs[j] - impspec := spec.(*ast.ImportSpec) - if impspec.Name == nil && name != "" { - continue - } - if impspec.Name != nil && impspec.Name.Name != name { - continue - } - if importPath(impspec) != path { - continue - } - - // We found an import spec that imports path. - // Delete it. - delspecs = append(delspecs, impspec) - deleted = true - copy(gen.Specs[j:], gen.Specs[j+1:]) - gen.Specs = gen.Specs[:len(gen.Specs)-1] - - // If this was the last import spec in this decl, - // delete the decl, too. - if len(gen.Specs) == 0 { - copy(f.Decls[i:], f.Decls[i+1:]) - f.Decls = f.Decls[:len(f.Decls)-1] - i-- - break - } else if len(gen.Specs) == 1 { - gen.Lparen = token.NoPos // drop parens - } - if j > 0 { - lastImpspec := gen.Specs[j-1].(*ast.ImportSpec) - lastLine := fset.Position(lastImpspec.Path.ValuePos).Line - line := fset.Position(impspec.Path.ValuePos).Line - - // We deleted an entry but now there may be - // a blank line-sized hole where the import was. - if line-lastLine > 1 { - // There was a blank line immediately preceding the deleted import, - // so there's no need to close the hole. - // Do nothing. - } else { - // There was no blank line. Close the hole. - fset.File(gen.Rparen).MergeLine(line) - } - } - j-- - } - } - - // Delete them from f.Imports. - for i := 0; i < len(f.Imports); i++ { - imp := f.Imports[i] - for j, del := range delspecs { - if imp == del { - copy(f.Imports[i:], f.Imports[i+1:]) - f.Imports = f.Imports[:len(f.Imports)-1] - copy(delspecs[j:], delspecs[j+1:]) - delspecs = delspecs[:len(delspecs)-1] - i-- - break - } - } - } - - if len(delspecs) > 0 { - panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) - } - - return -} - -// RewriteImport rewrites any import of path oldPath to path newPath. -func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) { - for _, imp := range f.Imports { - if importPath(imp) == oldPath { - rewrote = true - // record old End, because the default is to compute - // it using the length of imp.Path.Value. - imp.EndPos = imp.End() - imp.Path.Value = strconv.Quote(newPath) - } - } - return -} - -// UsesImport reports whether a given import is used. -func UsesImport(f *ast.File, path string) (used bool) { - spec := importSpec(f, path) - if spec == nil { - return - } - - name := spec.Name.String() - switch name { - case "": - // If the package name is not explicitly specified, - // make an educated guess. This is not guaranteed to be correct. - lastSlash := strings.LastIndex(path, "/") - if lastSlash == -1 { - name = path - } else { - name = path[lastSlash+1:] - } - case "_", ".": - // Not sure if this import is used - err on the side of caution. - return true - } - - ast.Walk(visitFn(func(n ast.Node) { - sel, ok := n.(*ast.SelectorExpr) - if ok && isTopName(sel.X, name) { - used = true - } - }), f) - - return -} - -type visitFn func(node ast.Node) - -func (fn visitFn) Visit(node ast.Node) ast.Visitor { - fn(node) - return fn -} - -// imports returns true if f imports path. -func imports(f *ast.File, path string) bool { - return importSpec(f, path) != nil -} - -// importSpec returns the import spec if f imports path, -// or nil otherwise. -func importSpec(f *ast.File, path string) *ast.ImportSpec { - for _, s := range f.Imports { - if importPath(s) == path { - return s - } - } - return nil -} - -// importPath returns the unquoted import path of s, -// or "" if the path is not properly quoted. -func importPath(s *ast.ImportSpec) string { - t, err := strconv.Unquote(s.Path.Value) - if err == nil { - return t - } - return "" -} - -// declImports reports whether gen contains an import of path. -func declImports(gen *ast.GenDecl, path string) bool { - if gen.Tok != token.IMPORT { - return false - } - for _, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - if importPath(impspec) == path { - return true - } - } - return false -} - -// matchLen returns the length of the longest path segment prefix shared by x and y. -func matchLen(x, y string) int { - n := 0 - for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ { - if x[i] == '/' { - n++ - } - } - return n -} - -// isTopName returns true if n is a top-level unresolved identifier with the given name. -func isTopName(n ast.Expr, name string) bool { - id, ok := n.(*ast.Ident) - return ok && id.Name == name && id.Obj == nil -} - -// Imports returns the file imports grouped by paragraph. -func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec { - var groups [][]*ast.ImportSpec - - for _, decl := range f.Decls { - genDecl, ok := decl.(*ast.GenDecl) - if !ok || genDecl.Tok != token.IMPORT { - break - } - - group := []*ast.ImportSpec{} - - var lastLine int - for _, spec := range genDecl.Specs { - importSpec := spec.(*ast.ImportSpec) - pos := importSpec.Path.ValuePos - line := fset.Position(pos).Line - if lastLine > 0 && pos > 0 && line-lastLine > 1 { - groups = append(groups, group) - group = []*ast.ImportSpec{} - } - group = append(group, importSpec) - lastLine = line - } - groups = append(groups, group) - } - - return groups -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/util.go deleted file mode 100644 index 76306298..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/ast/astutil/util.go +++ /dev/null @@ -1,14 +0,0 @@ -package astutil - -import "go/ast" - -// Unparen returns e with any enclosing parentheses stripped. -func Unparen(e ast.Expr) ast.Expr { - for { - p, ok := e.(*ast.ParenExpr) - if !ok { - return e - } - e = p.X - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/allpackages.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/allpackages.go deleted file mode 100644 index 30208095..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/allpackages.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package buildutil provides utilities related to the go/build -// package in the standard library. -// -// All I/O is done via the build.Context file system interface, which must -// be concurrency-safe. -package buildutil - -import ( - "go/build" - "os" - "path/filepath" - "sort" - "strings" - "sync" -) - -// AllPackages returns the package path of each Go package in any source -// directory of the specified build context (e.g. $GOROOT or an element -// of $GOPATH). Errors are ignored. The results are sorted. -// All package paths are canonical, and thus may contain "/vendor/". -// -// The result may include import paths for directories that contain no -// *.go files, such as "archive" (in $GOROOT/src). -// -// All I/O is done via the build.Context file system interface, -// which must be concurrency-safe. -// -func AllPackages(ctxt *build.Context) []string { - var list []string - ForEachPackage(ctxt, func(pkg string, _ error) { - list = append(list, pkg) - }) - sort.Strings(list) - return list -} - -// ForEachPackage calls the found function with the package path of -// each Go package it finds in any source directory of the specified -// build context (e.g. $GOROOT or an element of $GOPATH). -// All package paths are canonical, and thus may contain "/vendor/". -// -// If the package directory exists but could not be read, the second -// argument to the found function provides the error. -// -// All I/O is done via the build.Context file system interface, -// which must be concurrency-safe. -// -func ForEachPackage(ctxt *build.Context, found func(importPath string, err error)) { - ch := make(chan item) - - var wg sync.WaitGroup - for _, root := range ctxt.SrcDirs() { - root := root - wg.Add(1) - go func() { - allPackages(ctxt, root, ch) - wg.Done() - }() - } - go func() { - wg.Wait() - close(ch) - }() - - // All calls to found occur in the caller's goroutine. - for i := range ch { - found(i.importPath, i.err) - } -} - -type item struct { - importPath string - err error // (optional) -} - -// We use a process-wide counting semaphore to limit -// the number of parallel calls to ReadDir. -var ioLimit = make(chan bool, 20) - -func allPackages(ctxt *build.Context, root string, ch chan<- item) { - root = filepath.Clean(root) + string(os.PathSeparator) - - var wg sync.WaitGroup - - var walkDir func(dir string) - walkDir = func(dir string) { - // Avoid .foo, _foo, and testdata directory trees. - base := filepath.Base(dir) - if base == "" || base[0] == '.' || base[0] == '_' || base == "testdata" { - return - } - - pkg := filepath.ToSlash(strings.TrimPrefix(dir, root)) - - // Prune search if we encounter any of these import paths. - switch pkg { - case "builtin": - return - } - - ioLimit <- true - files, err := ReadDir(ctxt, dir) - <-ioLimit - if pkg != "" || err != nil { - ch <- item{pkg, err} - } - for _, fi := range files { - fi := fi - if fi.IsDir() { - wg.Add(1) - go func() { - walkDir(filepath.Join(dir, fi.Name())) - wg.Done() - }() - } - } - } - - walkDir(root) - wg.Wait() -} - -// ExpandPatterns returns the set of packages matched by patterns, -// which may have the following forms: -// -// golang.org/x/tools/cmd/guru # a single package -// golang.org/x/tools/... # all packages beneath dir -// ... # the entire workspace. -// -// Order is significant: a pattern preceded by '-' removes matching -// packages from the set. For example, these patterns match all encoding -// packages except encoding/xml: -// -// encoding/... -encoding/xml -// -func ExpandPatterns(ctxt *build.Context, patterns []string) map[string]bool { - // TODO(adonovan): support other features of 'go list': - // - "std"/"cmd"/"all" meta-packages - // - "..." not at the end of a pattern - // - relative patterns using "./" or "../" prefix - - pkgs := make(map[string]bool) - doPkg := func(pkg string, neg bool) { - if neg { - delete(pkgs, pkg) - } else { - pkgs[pkg] = true - } - } - - // Scan entire workspace if wildcards are present. - // TODO(adonovan): opt: scan only the necessary subtrees of the workspace. - var all []string - for _, arg := range patterns { - if strings.HasSuffix(arg, "...") { - all = AllPackages(ctxt) - break - } - } - - for _, arg := range patterns { - if arg == "" { - continue - } - - neg := arg[0] == '-' - if neg { - arg = arg[1:] - } - - if arg == "..." { - // ... matches all packages - for _, pkg := range all { - doPkg(pkg, neg) - } - } else if dir := strings.TrimSuffix(arg, "/..."); dir != arg { - // dir/... matches all packages beneath dir - for _, pkg := range all { - if strings.HasPrefix(pkg, dir) && - (len(pkg) == len(dir) || pkg[len(dir)] == '/') { - doPkg(pkg, neg) - } - } - } else { - // single package - doPkg(arg, neg) - } - } - - return pkgs -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/fakecontext.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/fakecontext.go deleted file mode 100644 index 24cbcbea..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/fakecontext.go +++ /dev/null @@ -1,108 +0,0 @@ -package buildutil - -import ( - "fmt" - "go/build" - "io" - "io/ioutil" - "os" - "path" - "path/filepath" - "sort" - "strings" - "time" -) - -// FakeContext returns a build.Context for the fake file tree specified -// by pkgs, which maps package import paths to a mapping from file base -// names to contents. -// -// The fake Context has a GOROOT of "/go" and no GOPATH, and overrides -// the necessary file access methods to read from memory instead of the -// real file system. -// -// Unlike a real file tree, the fake one has only two levels---packages -// and files---so ReadDir("/go/src/") returns all packages under -// /go/src/ including, for instance, "math" and "math/big". -// ReadDir("/go/src/math/big") would return all the files in the -// "math/big" package. -// -func FakeContext(pkgs map[string]map[string]string) *build.Context { - clean := func(filename string) string { - f := path.Clean(filepath.ToSlash(filename)) - // Removing "/go/src" while respecting segment - // boundaries has this unfortunate corner case: - if f == "/go/src" { - return "" - } - return strings.TrimPrefix(f, "/go/src/") - } - - ctxt := build.Default // copy - ctxt.GOROOT = "/go" - ctxt.GOPATH = "" - ctxt.IsDir = func(dir string) bool { - dir = clean(dir) - if dir == "" { - return true // needed by (*build.Context).SrcDirs - } - return pkgs[dir] != nil - } - ctxt.ReadDir = func(dir string) ([]os.FileInfo, error) { - dir = clean(dir) - var fis []os.FileInfo - if dir == "" { - // enumerate packages - for importPath := range pkgs { - fis = append(fis, fakeDirInfo(importPath)) - } - } else { - // enumerate files of package - for basename := range pkgs[dir] { - fis = append(fis, fakeFileInfo(basename)) - } - } - sort.Sort(byName(fis)) - return fis, nil - } - ctxt.OpenFile = func(filename string) (io.ReadCloser, error) { - filename = clean(filename) - dir, base := path.Split(filename) - content, ok := pkgs[path.Clean(dir)][base] - if !ok { - return nil, fmt.Errorf("file not found: %s", filename) - } - return ioutil.NopCloser(strings.NewReader(content)), nil - } - ctxt.IsAbsPath = func(path string) bool { - path = filepath.ToSlash(path) - // Don't rely on the default (filepath.Path) since on - // Windows, it reports virtual paths as non-absolute. - return strings.HasPrefix(path, "/") - } - return &ctxt -} - -type byName []os.FileInfo - -func (s byName) Len() int { return len(s) } -func (s byName) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s byName) Less(i, j int) bool { return s[i].Name() < s[j].Name() } - -type fakeFileInfo string - -func (fi fakeFileInfo) Name() string { return string(fi) } -func (fakeFileInfo) Sys() interface{} { return nil } -func (fakeFileInfo) ModTime() time.Time { return time.Time{} } -func (fakeFileInfo) IsDir() bool { return false } -func (fakeFileInfo) Size() int64 { return 0 } -func (fakeFileInfo) Mode() os.FileMode { return 0644 } - -type fakeDirInfo string - -func (fd fakeDirInfo) Name() string { return string(fd) } -func (fakeDirInfo) Sys() interface{} { return nil } -func (fakeDirInfo) ModTime() time.Time { return time.Time{} } -func (fakeDirInfo) IsDir() bool { return true } -func (fakeDirInfo) Size() int64 { return 0 } -func (fakeDirInfo) Mode() os.FileMode { return 0755 } diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/tags.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/tags.go deleted file mode 100644 index 486606f3..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/tags.go +++ /dev/null @@ -1,75 +0,0 @@ -package buildutil - -// This logic was copied from stringsFlag from $GOROOT/src/cmd/go/build.go. - -import "fmt" - -const TagsFlagDoc = "a list of `build tags` to consider satisfied during the build. " + - "For more information about build tags, see the description of " + - "build constraints in the documentation for the go/build package" - -// TagsFlag is an implementation of the flag.Value and flag.Getter interfaces that parses -// a flag value in the same manner as go build's -tags flag and -// populates a []string slice. -// -// See $GOROOT/src/go/build/doc.go for description of build tags. -// See $GOROOT/src/cmd/go/doc.go for description of 'go build -tags' flag. -// -// Example: -// flag.Var((*buildutil.TagsFlag)(&build.Default.BuildTags), "tags", buildutil.TagsFlagDoc) -type TagsFlag []string - -func (v *TagsFlag) Set(s string) error { - var err error - *v, err = splitQuotedFields(s) - if *v == nil { - *v = []string{} - } - return err -} - -func (v *TagsFlag) Get() interface{} { return *v } - -func splitQuotedFields(s string) ([]string, error) { - // Split fields allowing '' or "" around elements. - // Quotes further inside the string do not count. - var f []string - for len(s) > 0 { - for len(s) > 0 && isSpaceByte(s[0]) { - s = s[1:] - } - if len(s) == 0 { - break - } - // Accepted quoted string. No unescaping inside. - if s[0] == '"' || s[0] == '\'' { - quote := s[0] - s = s[1:] - i := 0 - for i < len(s) && s[i] != quote { - i++ - } - if i >= len(s) { - return nil, fmt.Errorf("unterminated %c string", quote) - } - f = append(f, s[:i]) - s = s[i+1:] - continue - } - i := 0 - for i < len(s) && !isSpaceByte(s[i]) { - i++ - } - f = append(f, s[:i]) - s = s[i:] - } - return f, nil -} - -func (v *TagsFlag) String() string { - return "" -} - -func isSpaceByte(c byte) bool { - return c == ' ' || c == '\t' || c == '\n' || c == '\r' -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/util.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/util.go deleted file mode 100644 index 0e093fc0..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/buildutil/util.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package buildutil - -import ( - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "io" - "io/ioutil" - "os" - "path" - "path/filepath" - "runtime" - "strings" -) - -// ParseFile behaves like parser.ParseFile, -// but uses the build context's file system interface, if any. -// -// If file is not absolute (as defined by IsAbsPath), the (dir, file) -// components are joined using JoinPath; dir must be absolute. -// -// The displayPath function, if provided, is used to transform the -// filename that will be attached to the ASTs. -// -// TODO(adonovan): call this from go/loader.parseFiles when the tree thaws. -// -func ParseFile(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, file string, mode parser.Mode) (*ast.File, error) { - if !IsAbsPath(ctxt, file) { - file = JoinPath(ctxt, dir, file) - } - rd, err := OpenFile(ctxt, file) - if err != nil { - return nil, err - } - defer rd.Close() // ignore error - if displayPath != nil { - file = displayPath(file) - } - return parser.ParseFile(fset, file, rd, mode) -} - -// ContainingPackage returns the package containing filename. -// -// If filename is not absolute, it is interpreted relative to working directory dir. -// All I/O is via the build context's file system interface, if any. -// -// The '...Files []string' fields of the resulting build.Package are not -// populated (build.FindOnly mode). -// -// TODO(adonovan): call this from oracle when the tree thaws. -// -func ContainingPackage(ctxt *build.Context, dir, filename string) (*build.Package, error) { - if !IsAbsPath(ctxt, filename) { - filename = JoinPath(ctxt, dir, filename) - } - - // We must not assume the file tree uses - // "/" always, - // `\` always, - // or os.PathSeparator (which varies by platform), - // but to make any progress, we are forced to assume that - // paths will not use `\` unless the PathSeparator - // is also `\`, thus we can rely on filepath.ToSlash for some sanity. - - dirSlash := path.Dir(filepath.ToSlash(filename)) + "/" - - // We assume that no source root (GOPATH[i] or GOROOT) contains any other. - for _, srcdir := range ctxt.SrcDirs() { - srcdirSlash := filepath.ToSlash(srcdir) + "/" - if dirHasPrefix(dirSlash, srcdirSlash) { - importPath := dirSlash[len(srcdirSlash) : len(dirSlash)-len("/")] - return ctxt.Import(importPath, dir, build.FindOnly) - } - } - - return nil, fmt.Errorf("can't find package containing %s", filename) -} - -// dirHasPrefix tests whether the directory dir begins with prefix. -func dirHasPrefix(dir, prefix string) bool { - if runtime.GOOS != "windows" { - return strings.HasPrefix(dir, prefix) - } - return len(dir) >= len(prefix) && strings.EqualFold(dir[:len(prefix)], prefix) -} - -// -- Effective methods of file system interface ------------------------- - -// (go/build.Context defines these as methods, but does not export them.) - -// TODO(adonovan): HasSubdir? - -// FileExists returns true if the specified file exists, -// using the build context's file system interface. -func FileExists(ctxt *build.Context, path string) bool { - if ctxt.OpenFile != nil { - r, err := ctxt.OpenFile(path) - if err != nil { - return false - } - r.Close() // ignore error - return true - } - _, err := os.Stat(path) - return err == nil -} - -// OpenFile behaves like os.Open, -// but uses the build context's file system interface, if any. -func OpenFile(ctxt *build.Context, path string) (io.ReadCloser, error) { - if ctxt.OpenFile != nil { - return ctxt.OpenFile(path) - } - return os.Open(path) -} - -// IsAbsPath behaves like filepath.IsAbs, -// but uses the build context's file system interface, if any. -func IsAbsPath(ctxt *build.Context, path string) bool { - if ctxt.IsAbsPath != nil { - return ctxt.IsAbsPath(path) - } - return filepath.IsAbs(path) -} - -// JoinPath behaves like filepath.Join, -// but uses the build context's file system interface, if any. -func JoinPath(ctxt *build.Context, path ...string) string { - if ctxt.JoinPath != nil { - return ctxt.JoinPath(path...) - } - return filepath.Join(path...) -} - -// IsDir behaves like os.Stat plus IsDir, -// but uses the build context's file system interface, if any. -func IsDir(ctxt *build.Context, path string) bool { - if ctxt.IsDir != nil { - return ctxt.IsDir(path) - } - fi, err := os.Stat(path) - return err == nil && fi.IsDir() -} - -// ReadDir behaves like ioutil.ReadDir, -// but uses the build context's file system interface, if any. -func ReadDir(ctxt *build.Context, path string) ([]os.FileInfo, error) { - if ctxt.ReadDir != nil { - return ctxt.ReadDir(path) - } - return ioutil.ReadDir(path) -} - -// SplitPathList behaves like filepath.SplitList, -// but uses the build context's file system interface, if any. -func SplitPathList(ctxt *build.Context, s string) []string { - if ctxt.SplitPathList != nil { - return ctxt.SplitPathList(s) - } - return filepath.SplitList(s) -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo.go deleted file mode 100644 index 245b9149..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.5 - -package loader - -// This file handles cgo preprocessing of files containing `import "C"`. -// -// DESIGN -// -// The approach taken is to run the cgo processor on the package's -// CgoFiles and parse the output, faking the filenames of the -// resulting ASTs so that the synthetic file containing the C types is -// called "C" (e.g. "~/go/src/net/C") and the preprocessed files -// have their original names (e.g. "~/go/src/net/cgo_unix.go"), -// not the names of the actual temporary files. -// -// The advantage of this approach is its fidelity to 'go build'. The -// downside is that the token.Position.Offset for each AST node is -// incorrect, being an offset within the temporary file. Line numbers -// should still be correct because of the //line comments. -// -// The logic of this file is mostly plundered from the 'go build' -// tool, which also invokes the cgo preprocessor. -// -// -// REJECTED ALTERNATIVE -// -// An alternative approach that we explored is to extend go/types' -// Importer mechanism to provide the identity of the importing package -// so that each time `import "C"` appears it resolves to a different -// synthetic package containing just the objects needed in that case. -// The loader would invoke cgo but parse only the cgo_types.go file -// defining the package-level objects, discarding the other files -// resulting from preprocessing. -// -// The benefit of this approach would have been that source-level -// syntax information would correspond exactly to the original cgo -// file, with no preprocessing involved, making source tools like -// godoc, oracle, and eg happy. However, the approach was rejected -// due to the additional complexity it would impose on go/types. (It -// made for a beautiful demo, though.) -// -// cgo files, despite their *.go extension, are not legal Go source -// files per the specification since they may refer to unexported -// members of package "C" such as C.int. Also, a function such as -// C.getpwent has in effect two types, one matching its C type and one -// which additionally returns (errno C.int). The cgo preprocessor -// uses name mangling to distinguish these two functions in the -// processed code, but go/types would need to duplicate this logic in -// its handling of function calls, analogous to the treatment of map -// lookups in which y=m[k] and y,ok=m[k] are both legal. - -import ( - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "io/ioutil" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "strings" -) - -// processCgoFiles invokes the cgo preprocessor on bp.CgoFiles, parses -// the output and returns the resulting ASTs. -// -func processCgoFiles(bp *build.Package, fset *token.FileSet, DisplayPath func(path string) string, mode parser.Mode) ([]*ast.File, error) { - tmpdir, err := ioutil.TempDir("", strings.Replace(bp.ImportPath, "/", "_", -1)+"_C") - if err != nil { - return nil, err - } - defer os.RemoveAll(tmpdir) - - pkgdir := bp.Dir - if DisplayPath != nil { - pkgdir = DisplayPath(pkgdir) - } - - cgoFiles, cgoDisplayFiles, err := runCgo(bp, pkgdir, tmpdir) - if err != nil { - return nil, err - } - var files []*ast.File - for i := range cgoFiles { - rd, err := os.Open(cgoFiles[i]) - if err != nil { - return nil, err - } - display := filepath.Join(bp.Dir, cgoDisplayFiles[i]) - f, err := parser.ParseFile(fset, display, rd, mode) - rd.Close() - if err != nil { - return nil, err - } - files = append(files, f) - } - return files, nil -} - -var cgoRe = regexp.MustCompile(`[/\\:]`) - -// runCgo invokes the cgo preprocessor on bp.CgoFiles and returns two -// lists of files: the resulting processed files (in temporary -// directory tmpdir) and the corresponding names of the unprocessed files. -// -// runCgo is adapted from (*builder).cgo in -// $GOROOT/src/cmd/go/build.go, but these features are unsupported: -// Objective C, CGOPKGPATH, CGO_FLAGS. -// -func runCgo(bp *build.Package, pkgdir, tmpdir string) (files, displayFiles []string, err error) { - cgoCPPFLAGS, _, _, _ := cflags(bp, true) - _, cgoexeCFLAGS, _, _ := cflags(bp, false) - - if len(bp.CgoPkgConfig) > 0 { - pcCFLAGS, err := pkgConfigFlags(bp) - if err != nil { - return nil, nil, err - } - cgoCPPFLAGS = append(cgoCPPFLAGS, pcCFLAGS...) - } - - // Allows including _cgo_export.h from .[ch] files in the package. - cgoCPPFLAGS = append(cgoCPPFLAGS, "-I", tmpdir) - - // _cgo_gotypes.go (displayed "C") contains the type definitions. - files = append(files, filepath.Join(tmpdir, "_cgo_gotypes.go")) - displayFiles = append(displayFiles, "C") - for _, fn := range bp.CgoFiles { - // "foo.cgo1.go" (displayed "foo.go") is the processed Go source. - f := cgoRe.ReplaceAllString(fn[:len(fn)-len("go")], "_") - files = append(files, filepath.Join(tmpdir, f+"cgo1.go")) - displayFiles = append(displayFiles, fn) - } - - var cgoflags []string - if bp.Goroot && bp.ImportPath == "runtime/cgo" { - cgoflags = append(cgoflags, "-import_runtime_cgo=false") - } - if bp.Goroot && bp.ImportPath == "runtime/race" || bp.ImportPath == "runtime/cgo" { - cgoflags = append(cgoflags, "-import_syscall=false") - } - - args := stringList( - "go", "tool", "cgo", "-objdir", tmpdir, cgoflags, "--", - cgoCPPFLAGS, cgoexeCFLAGS, bp.CgoFiles, - ) - if false { - log.Printf("Running cgo for package %q: %s (dir=%s)", bp.ImportPath, args, pkgdir) - } - cmd := exec.Command(args[0], args[1:]...) - cmd.Dir = pkgdir - cmd.Stdout = os.Stderr - cmd.Stderr = os.Stderr - if err := cmd.Run(); err != nil { - return nil, nil, fmt.Errorf("cgo failed: %s: %s", args, err) - } - - return files, displayFiles, nil -} - -// -- unmodified from 'go build' --------------------------------------- - -// Return the flags to use when invoking the C or C++ compilers, or cgo. -func cflags(p *build.Package, def bool) (cppflags, cflags, cxxflags, ldflags []string) { - var defaults string - if def { - defaults = "-g -O2" - } - - cppflags = stringList(envList("CGO_CPPFLAGS", ""), p.CgoCPPFLAGS) - cflags = stringList(envList("CGO_CFLAGS", defaults), p.CgoCFLAGS) - cxxflags = stringList(envList("CGO_CXXFLAGS", defaults), p.CgoCXXFLAGS) - ldflags = stringList(envList("CGO_LDFLAGS", defaults), p.CgoLDFLAGS) - return -} - -// envList returns the value of the given environment variable broken -// into fields, using the default value when the variable is empty. -func envList(key, def string) []string { - v := os.Getenv(key) - if v == "" { - v = def - } - return strings.Fields(v) -} - -// stringList's arguments should be a sequence of string or []string values. -// stringList flattens them into a single []string. -func stringList(args ...interface{}) []string { - var x []string - for _, arg := range args { - switch arg := arg.(type) { - case []string: - x = append(x, arg...) - case string: - x = append(x, arg) - default: - panic("stringList: invalid argument") - } - } - return x -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go deleted file mode 100644 index de57422d..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package loader - -import ( - "errors" - "fmt" - "go/build" - "os/exec" - "strings" -) - -// pkgConfig runs pkg-config with the specified arguments and returns the flags it prints. -func pkgConfig(mode string, pkgs []string) (flags []string, err error) { - cmd := exec.Command("pkg-config", append([]string{mode}, pkgs...)...) - out, err := cmd.CombinedOutput() - if err != nil { - s := fmt.Sprintf("%s failed: %v", strings.Join(cmd.Args, " "), err) - if len(out) > 0 { - s = fmt.Sprintf("%s: %s", s, out) - } - return nil, errors.New(s) - } - if len(out) > 0 { - flags = strings.Fields(string(out)) - } - return -} - -// pkgConfigFlags calls pkg-config if needed and returns the cflags -// needed to build the package. -func pkgConfigFlags(p *build.Package) (cflags []string, err error) { - if len(p.CgoPkgConfig) == 0 { - return nil, nil - } - return pkgConfig("--cflags", p.CgoPkgConfig) -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/doc.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/doc.go deleted file mode 100644 index 9b51c9ec..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/doc.go +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package loader loads a complete Go program from source code, parsing -// and type-checking the initial packages plus their transitive closure -// of dependencies. The ASTs and the derived facts are retained for -// later use. -// -// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE. -// -// The package defines two primary types: Config, which specifies a -// set of initial packages to load and various other options; and -// Program, which is the result of successfully loading the packages -// specified by a configuration. -// -// The configuration can be set directly, but *Config provides various -// convenience methods to simplify the common cases, each of which can -// be called any number of times. Finally, these are followed by a -// call to Load() to actually load and type-check the program. -// -// var conf loader.Config -// -// // Use the command-line arguments to specify -// // a set of initial packages to load from source. -// // See FromArgsUsage for help. -// rest, err := conf.FromArgs(os.Args[1:], wantTests) -// -// // Parse the specified files and create an ad hoc package with path "foo". -// // All files must have the same 'package' declaration. -// conf.CreateFromFilenames("foo", "foo.go", "bar.go") -// -// // Create an ad hoc package with path "foo" from -// // the specified already-parsed files. -// // All ASTs must have the same 'package' declaration. -// conf.CreateFromFiles("foo", parsedFiles) -// -// // Add "runtime" to the set of packages to be loaded. -// conf.Import("runtime") -// -// // Adds "fmt" and "fmt_test" to the set of packages -// // to be loaded. "fmt" will include *_test.go files. -// conf.ImportWithTests("fmt") -// -// // Finally, load all the packages specified by the configuration. -// prog, err := conf.Load() -// -// See examples_test.go for examples of API usage. -// -// -// CONCEPTS AND TERMINOLOGY -// -// The WORKSPACE is the set of packages accessible to the loader. The -// workspace is defined by Config.Build, a *build.Context. The -// default context treats subdirectories of $GOROOT and $GOPATH as -// packages, but this behavior may be overridden. -// -// An AD HOC package is one specified as a set of source files on the -// command line. In the simplest case, it may consist of a single file -// such as $GOROOT/src/net/http/triv.go. -// -// EXTERNAL TEST packages are those comprised of a set of *_test.go -// files all with the same 'package foo_test' declaration, all in the -// same directory. (go/build.Package calls these files XTestFiles.) -// -// An IMPORTABLE package is one that can be referred to by some import -// spec. Every importable package is uniquely identified by its -// PACKAGE PATH or just PATH, a string such as "fmt", "encoding/json", -// or "cmd/vendor/golang.org/x/arch/x86/x86asm". A package path -// typically denotes a subdirectory of the workspace. -// -// An import declaration uses an IMPORT PATH to refer to a package. -// Most import declarations use the package path as the import path. -// -// Due to VENDORING (https://golang.org/s/go15vendor), the -// interpretation of an import path may depend on the directory in which -// it appears. To resolve an import path to a package path, go/build -// must search the enclosing directories for a subdirectory named -// "vendor". -// -// ad hoc packages and external test packages are NON-IMPORTABLE. The -// path of an ad hoc package is inferred from the package -// declarations of its files and is therefore not a unique package key. -// For example, Config.CreatePkgs may specify two initial ad hoc -// packages, both with path "main". -// -// An AUGMENTED package is an importable package P plus all the -// *_test.go files with same 'package foo' declaration as P. -// (go/build.Package calls these files TestFiles.) -// -// The INITIAL packages are those specified in the configuration. A -// DEPENDENCY is a package loaded to satisfy an import in an initial -// package or another dependency. -// -package loader - -// IMPLEMENTATION NOTES -// -// 'go test', in-package test files, and import cycles -// --------------------------------------------------- -// -// An external test package may depend upon members of the augmented -// package that are not in the unaugmented package, such as functions -// that expose internals. (See bufio/export_test.go for an example.) -// So, the loader must ensure that for each external test package -// it loads, it also augments the corresponding non-test package. -// -// The import graph over n unaugmented packages must be acyclic; the -// import graph over n-1 unaugmented packages plus one augmented -// package must also be acyclic. ('go test' relies on this.) But the -// import graph over n augmented packages may contain cycles. -// -// First, all the (unaugmented) non-test packages and their -// dependencies are imported in the usual way; the loader reports an -// error if it detects an import cycle. -// -// Then, each package P for which testing is desired is augmented by -// the list P' of its in-package test files, by calling -// (*types.Checker).Files. This arrangement ensures that P' may -// reference definitions within P, but P may not reference definitions -// within P'. Furthermore, P' may import any other package, including -// ones that depend upon P, without an import cycle error. -// -// Consider two packages A and B, both of which have lists of -// in-package test files we'll call A' and B', and which have the -// following import graph edges: -// B imports A -// B' imports A -// A' imports B -// This last edge would be expected to create an error were it not -// for the special type-checking discipline above. -// Cycles of size greater than two are possible. For example: -// compress/bzip2/bzip2_test.go (package bzip2) imports "io/ioutil" -// io/ioutil/tempfile_test.go (package ioutil) imports "regexp" -// regexp/exec_test.go (package regexp) imports "compress/bzip2" -// -// -// Concurrency -// ----------- -// -// Let us define the import dependency graph as follows. Each node is a -// list of files passed to (Checker).Files at once. Many of these lists -// are the production code of an importable Go package, so those nodes -// are labelled by the package's path. The remaining nodes are -// ad hoc packages and lists of in-package *_test.go files that augment -// an importable package; those nodes have no label. -// -// The edges of the graph represent import statements appearing within a -// file. An edge connects a node (a list of files) to the node it -// imports, which is importable and thus always labelled. -// -// Loading is controlled by this dependency graph. -// -// To reduce I/O latency, we start loading a package's dependencies -// asynchronously as soon as we've parsed its files and enumerated its -// imports (scanImports). This performs a preorder traversal of the -// import dependency graph. -// -// To exploit hardware parallelism, we type-check unrelated packages in -// parallel, where "unrelated" means not ordered by the partial order of -// the import dependency graph. -// -// We use a concurrency-safe non-blocking cache (importer.imported) to -// record the results of type-checking, whether success or failure. An -// entry is created in this cache by startLoad the first time the -// package is imported. The first goroutine to request an entry becomes -// responsible for completing the task and broadcasting completion to -// subsequent requestors, which block until then. -// -// Type checking occurs in (parallel) postorder: we cannot type-check a -// set of files until we have loaded and type-checked all of their -// immediate dependencies (and thus all of their transitive -// dependencies). If the input were guaranteed free of import cycles, -// this would be trivial: we could simply wait for completion of the -// dependencies and then invoke the typechecker. -// -// But as we saw in the 'go test' section above, some cycles in the -// import graph over packages are actually legal, so long as the -// cycle-forming edge originates in the in-package test files that -// augment the package. This explains why the nodes of the import -// dependency graph are not packages, but lists of files: the unlabelled -// nodes avoid the cycles. Consider packages A and B where B imports A -// and A's in-package tests AT import B. The naively constructed import -// graph over packages would contain a cycle (A+AT) --> B --> (A+AT) but -// the graph over lists of files is AT --> B --> A, where AT is an -// unlabelled node. -// -// Awaiting completion of the dependencies in a cyclic graph would -// deadlock, so we must materialize the import dependency graph (as -// importer.graph) and check whether each import edge forms a cycle. If -// x imports y, and the graph already contains a path from y to x, then -// there is an import cycle, in which case the processing of x must not -// wait for the completion of processing of y. -// -// When the type-checker makes a callback (doImport) to the loader for a -// given import edge, there are two possible cases. In the normal case, -// the dependency has already been completely type-checked; doImport -// does a cache lookup and returns it. In the cyclic case, the entry in -// the cache is still necessarily incomplete, indicating a cycle. We -// perform the cycle check again to obtain the error message, and return -// the error. -// -// The result of using concurrency is about a 2.5x speedup for stdlib_test. - -// TODO(adonovan): overhaul the package documentation. diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/go16.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/go16.go deleted file mode 100644 index c0ed50f4..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/go16.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.6 - -package loader - -import "go/build" - -func init() { - ignoreVendor = build.IgnoreVendor -} diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/loader.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/loader.go deleted file mode 100644 index f0171fc9..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/loader.go +++ /dev/null @@ -1,1059 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.5 - -package loader - -// See doc.go for package documentation and implementation notes. - -import ( - "errors" - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "go/types" - "os" - "sort" - "strings" - "sync" - "time" - - "golang.org/x/tools/go/ast/astutil" -) - -var ignoreVendor build.ImportMode - -const trace = false // show timing info for type-checking - -// Config specifies the configuration for loading a whole program from -// Go source code. -// The zero value for Config is a ready-to-use default configuration. -type Config struct { - // Fset is the file set for the parser to use when loading the - // program. If nil, it may be lazily initialized by any - // method of Config. - Fset *token.FileSet - - // ParserMode specifies the mode to be used by the parser when - // loading source packages. - ParserMode parser.Mode - - // TypeChecker contains options relating to the type checker. - // - // The supplied IgnoreFuncBodies is not used; the effective - // value comes from the TypeCheckFuncBodies func below. - // The supplied Import function is not used either. - TypeChecker types.Config - - // TypeCheckFuncBodies is a predicate over package paths. - // A package for which the predicate is false will - // have its package-level declarations type checked, but not - // its function bodies; this can be used to quickly load - // dependencies from source. If nil, all func bodies are type - // checked. - TypeCheckFuncBodies func(path string) bool - - // If Build is non-nil, it is used to locate source packages. - // Otherwise &build.Default is used. - // - // By default, cgo is invoked to preprocess Go files that - // import the fake package "C". This behaviour can be - // disabled by setting CGO_ENABLED=0 in the environment prior - // to startup, or by setting Build.CgoEnabled=false. - Build *build.Context - - // The current directory, used for resolving relative package - // references such as "./go/loader". If empty, os.Getwd will be - // used instead. - Cwd string - - // If DisplayPath is non-nil, it is used to transform each - // file name obtained from Build.Import(). This can be used - // to prevent a virtualized build.Config's file names from - // leaking into the user interface. - DisplayPath func(path string) string - - // If AllowErrors is true, Load will return a Program even - // if some of the its packages contained I/O, parser or type - // errors; such errors are accessible via PackageInfo.Errors. If - // false, Load will fail if any package had an error. - AllowErrors bool - - // CreatePkgs specifies a list of non-importable initial - // packages to create. The resulting packages will appear in - // the corresponding elements of the Program.Created slice. - CreatePkgs []PkgSpec - - // ImportPkgs specifies a set of initial packages to load. - // The map keys are package paths. - // - // The map value indicates whether to load tests. If true, Load - // will add and type-check two lists of files to the package: - // non-test files followed by in-package *_test.go files. In - // addition, it will append the external test package (if any) - // to Program.Created. - ImportPkgs map[string]bool - - // FindPackage is called during Load to create the build.Package - // for a given import path from a given directory. - // If FindPackage is nil, (*build.Context).Import is used. - // A client may use this hook to adapt to a proprietary build - // system that does not follow the "go build" layout - // conventions, for example. - // - // It must be safe to call concurrently from multiple goroutines. - FindPackage func(ctxt *build.Context, fromDir, importPath string, mode build.ImportMode) (*build.Package, error) - - // AfterTypeCheck is called immediately after a list of files - // has been type-checked and appended to info.Files. - // - // This optional hook function is the earliest opportunity for - // the client to observe the output of the type checker, - // which may be useful to reduce analysis latency when loading - // a large program. - // - // The function is permitted to modify info.Info, for instance - // to clear data structures that are no longer needed, which can - // dramatically reduce peak memory consumption. - // - // The function may be called twice for the same PackageInfo: - // once for the files of the package and again for the - // in-package test files. - // - // It must be safe to call concurrently from multiple goroutines. - AfterTypeCheck func(info *PackageInfo, files []*ast.File) -} - -// A PkgSpec specifies a non-importable package to be created by Load. -// Files are processed first, but typically only one of Files and -// Filenames is provided. The path needn't be globally unique. -// -type PkgSpec struct { - Path string // package path ("" => use package declaration) - Files []*ast.File // ASTs of already-parsed files - Filenames []string // names of files to be parsed -} - -// A Program is a Go program loaded from source as specified by a Config. -type Program struct { - Fset *token.FileSet // the file set for this program - - // Created[i] contains the initial package whose ASTs or - // filenames were supplied by Config.CreatePkgs[i], followed by - // the external test package, if any, of each package in - // Config.ImportPkgs ordered by ImportPath. - // - // NOTE: these files must not import "C". Cgo preprocessing is - // only performed on imported packages, not ad hoc packages. - // - // TODO(adonovan): we need to copy and adapt the logic of - // goFilesPackage (from $GOROOT/src/cmd/go/build.go) and make - // Config.Import and Config.Create methods return the same kind - // of entity, essentially a build.Package. - // Perhaps we can even reuse that type directly. - Created []*PackageInfo - - // Imported contains the initially imported packages, - // as specified by Config.ImportPkgs. - Imported map[string]*PackageInfo - - // AllPackages contains the PackageInfo of every package - // encountered by Load: all initial packages and all - // dependencies, including incomplete ones. - AllPackages map[*types.Package]*PackageInfo - - // importMap is the canonical mapping of package paths to - // packages. It contains all Imported initial packages, but not - // Created ones, and all imported dependencies. - importMap map[string]*types.Package -} - -// PackageInfo holds the ASTs and facts derived by the type-checker -// for a single package. -// -// Not mutated once exposed via the API. -// -type PackageInfo struct { - Pkg *types.Package - Importable bool // true if 'import "Pkg.Path()"' would resolve to this - TransitivelyErrorFree bool // true if Pkg and all its dependencies are free of errors - Files []*ast.File // syntax trees for the package's files - Errors []error // non-nil if the package had errors - types.Info // type-checker deductions. - dir string // package directory - - checker *types.Checker // transient type-checker state - errorFunc func(error) -} - -func (info *PackageInfo) String() string { return info.Pkg.Path() } - -func (info *PackageInfo) appendError(err error) { - if info.errorFunc != nil { - info.errorFunc(err) - } else { - fmt.Fprintln(os.Stderr, err) - } - info.Errors = append(info.Errors, err) -} - -func (conf *Config) fset() *token.FileSet { - if conf.Fset == nil { - conf.Fset = token.NewFileSet() - } - return conf.Fset -} - -// ParseFile is a convenience function (intended for testing) that invokes -// the parser using the Config's FileSet, which is initialized if nil. -// -// src specifies the parser input as a string, []byte, or io.Reader, and -// filename is its apparent name. If src is nil, the contents of -// filename are read from the file system. -// -func (conf *Config) ParseFile(filename string, src interface{}) (*ast.File, error) { - // TODO(adonovan): use conf.build() etc like parseFiles does. - return parser.ParseFile(conf.fset(), filename, src, conf.ParserMode) -} - -// FromArgsUsage is a partial usage message that applications calling -// FromArgs may wish to include in their -help output. -const FromArgsUsage = ` - is a list of arguments denoting a set of initial packages. -It may take one of two forms: - -1. A list of *.go source files. - - All of the specified files are loaded, parsed and type-checked - as a single package. All the files must belong to the same directory. - -2. A list of import paths, each denoting a package. - - The package's directory is found relative to the $GOROOT and - $GOPATH using similar logic to 'go build', and the *.go files in - that directory are loaded, parsed and type-checked as a single - package. - - In addition, all *_test.go files in the directory are then loaded - and parsed. Those files whose package declaration equals that of - the non-*_test.go files are included in the primary package. Test - files whose package declaration ends with "_test" are type-checked - as another package, the 'external' test package, so that a single - import path may denote two packages. (Whether this behaviour is - enabled is tool-specific, and may depend on additional flags.) - -A '--' argument terminates the list of packages. -` - -// FromArgs interprets args as a set of initial packages to load from -// source and updates the configuration. It returns the list of -// unconsumed arguments. -// -// It is intended for use in command-line interfaces that require a -// set of initial packages to be specified; see FromArgsUsage message -// for details. -// -// Only superficial errors are reported at this stage; errors dependent -// on I/O are detected during Load. -// -func (conf *Config) FromArgs(args []string, xtest bool) ([]string, error) { - var rest []string - for i, arg := range args { - if arg == "--" { - rest = args[i+1:] - args = args[:i] - break // consume "--" and return the remaining args - } - } - - if len(args) > 0 && strings.HasSuffix(args[0], ".go") { - // Assume args is a list of a *.go files - // denoting a single ad hoc package. - for _, arg := range args { - if !strings.HasSuffix(arg, ".go") { - return nil, fmt.Errorf("named files must be .go files: %s", arg) - } - } - conf.CreateFromFilenames("", args...) - } else { - // Assume args are directories each denoting a - // package and (perhaps) an external test, iff xtest. - for _, arg := range args { - if xtest { - conf.ImportWithTests(arg) - } else { - conf.Import(arg) - } - } - } - - return rest, nil -} - -// CreateFromFilenames is a convenience function that adds -// a conf.CreatePkgs entry to create a package of the specified *.go -// files. -// -func (conf *Config) CreateFromFilenames(path string, filenames ...string) { - conf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Filenames: filenames}) -} - -// CreateFromFiles is a convenience function that adds a conf.CreatePkgs -// entry to create package of the specified path and parsed files. -// -func (conf *Config) CreateFromFiles(path string, files ...*ast.File) { - conf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Files: files}) -} - -// ImportWithTests is a convenience function that adds path to -// ImportPkgs, the set of initial source packages located relative to -// $GOPATH. The package will be augmented by any *_test.go files in -// its directory that contain a "package x" (not "package x_test") -// declaration. -// -// In addition, if any *_test.go files contain a "package x_test" -// declaration, an additional package comprising just those files will -// be added to CreatePkgs. -// -func (conf *Config) ImportWithTests(path string) { conf.addImport(path, true) } - -// Import is a convenience function that adds path to ImportPkgs, the -// set of initial packages that will be imported from source. -// -func (conf *Config) Import(path string) { conf.addImport(path, false) } - -func (conf *Config) addImport(path string, tests bool) { - if path == "C" { - return // ignore; not a real package - } - if conf.ImportPkgs == nil { - conf.ImportPkgs = make(map[string]bool) - } - conf.ImportPkgs[path] = conf.ImportPkgs[path] || tests -} - -// PathEnclosingInterval returns the PackageInfo and ast.Node that -// contain source interval [start, end), and all the node's ancestors -// up to the AST root. It searches all ast.Files of all packages in prog. -// exact is defined as for astutil.PathEnclosingInterval. -// -// The zero value is returned if not found. -// -func (prog *Program) PathEnclosingInterval(start, end token.Pos) (pkg *PackageInfo, path []ast.Node, exact bool) { - for _, info := range prog.AllPackages { - for _, f := range info.Files { - if f.Pos() == token.NoPos { - // This can happen if the parser saw - // too many errors and bailed out. - // (Use parser.AllErrors to prevent that.) - continue - } - if !tokenFileContainsPos(prog.Fset.File(f.Pos()), start) { - continue - } - if path, exact := astutil.PathEnclosingInterval(f, start, end); path != nil { - return info, path, exact - } - } - } - return nil, nil, false -} - -// InitialPackages returns a new slice containing the set of initial -// packages (Created + Imported) in unspecified order. -// -func (prog *Program) InitialPackages() []*PackageInfo { - infos := make([]*PackageInfo, 0, len(prog.Created)+len(prog.Imported)) - infos = append(infos, prog.Created...) - for _, info := range prog.Imported { - infos = append(infos, info) - } - return infos -} - -// Package returns the ASTs and results of type checking for the -// specified package. -func (prog *Program) Package(path string) *PackageInfo { - if info, ok := prog.AllPackages[prog.importMap[path]]; ok { - return info - } - for _, info := range prog.Created { - if path == info.Pkg.Path() { - return info - } - } - return nil -} - -// ---------- Implementation ---------- - -// importer holds the working state of the algorithm. -type importer struct { - conf *Config // the client configuration - start time.Time // for logging - - progMu sync.Mutex // guards prog - prog *Program // the resulting program - - // findpkg is a memoization of FindPackage. - findpkgMu sync.Mutex // guards findpkg - findpkg map[findpkgKey]*findpkgValue - - importedMu sync.Mutex // guards imported - imported map[string]*importInfo // all imported packages (incl. failures) by import path - - // import dependency graph: graph[x][y] => x imports y - // - // Since non-importable packages cannot be cyclic, we ignore - // their imports, thus we only need the subgraph over importable - // packages. Nodes are identified by their import paths. - graphMu sync.Mutex - graph map[string]map[string]bool -} - -type findpkgKey struct { - importPath string - fromDir string - mode build.ImportMode -} - -type findpkgValue struct { - ready chan struct{} // closed to broadcast readiness - bp *build.Package - err error -} - -// importInfo tracks the success or failure of a single import. -// -// Upon completion, exactly one of info and err is non-nil: -// info on successful creation of a package, err otherwise. -// A successful package may still contain type errors. -// -type importInfo struct { - path string // import path - info *PackageInfo // results of typechecking (including errors) - complete chan struct{} // closed to broadcast that info is set. -} - -// awaitCompletion blocks until ii is complete, -// i.e. the info field is safe to inspect. -func (ii *importInfo) awaitCompletion() { - <-ii.complete // wait for close -} - -// Complete marks ii as complete. -// Its info and err fields will not be subsequently updated. -func (ii *importInfo) Complete(info *PackageInfo) { - if info == nil { - panic("info == nil") - } - ii.info = info - close(ii.complete) -} - -type importError struct { - path string // import path - err error // reason for failure to create a package -} - -// Load creates the initial packages specified by conf.{Create,Import}Pkgs, -// loading their dependencies packages as needed. -// -// On success, Load returns a Program containing a PackageInfo for -// each package. On failure, it returns an error. -// -// If AllowErrors is true, Load will return a Program even if some -// packages contained I/O, parser or type errors, or if dependencies -// were missing. (Such errors are accessible via PackageInfo.Errors. If -// false, Load will fail if any package had an error. -// -// It is an error if no packages were loaded. -// -func (conf *Config) Load() (*Program, error) { - // Create a simple default error handler for parse/type errors. - if conf.TypeChecker.Error == nil { - conf.TypeChecker.Error = func(e error) { fmt.Fprintln(os.Stderr, e) } - } - - // Set default working directory for relative package references. - if conf.Cwd == "" { - var err error - conf.Cwd, err = os.Getwd() - if err != nil { - return nil, err - } - } - - // Install default FindPackage hook using go/build logic. - if conf.FindPackage == nil { - conf.FindPackage = (*build.Context).Import - } - - prog := &Program{ - Fset: conf.fset(), - Imported: make(map[string]*PackageInfo), - importMap: make(map[string]*types.Package), - AllPackages: make(map[*types.Package]*PackageInfo), - } - - imp := importer{ - conf: conf, - prog: prog, - findpkg: make(map[findpkgKey]*findpkgValue), - imported: make(map[string]*importInfo), - start: time.Now(), - graph: make(map[string]map[string]bool), - } - - // -- loading proper (concurrent phase) -------------------------------- - - var errpkgs []string // packages that contained errors - - // Load the initially imported packages and their dependencies, - // in parallel. - // No vendor check on packages imported from the command line. - infos, importErrors := imp.importAll("", conf.Cwd, conf.ImportPkgs, ignoreVendor) - for _, ie := range importErrors { - conf.TypeChecker.Error(ie.err) // failed to create package - errpkgs = append(errpkgs, ie.path) - } - for _, info := range infos { - prog.Imported[info.Pkg.Path()] = info - } - - // Augment the designated initial packages by their tests. - // Dependencies are loaded in parallel. - var xtestPkgs []*build.Package - for importPath, augment := range conf.ImportPkgs { - if !augment { - continue - } - - // No vendor check on packages imported from command line. - bp, err := imp.findPackage(importPath, conf.Cwd, ignoreVendor) - if err != nil { - // Package not found, or can't even parse package declaration. - // Already reported by previous loop; ignore it. - continue - } - - // Needs external test package? - if len(bp.XTestGoFiles) > 0 { - xtestPkgs = append(xtestPkgs, bp) - } - - // Consult the cache using the canonical package path. - path := bp.ImportPath - imp.importedMu.Lock() // (unnecessary, we're sequential here) - ii, ok := imp.imported[path] - // Paranoid checks added due to issue #11012. - if !ok { - // Unreachable. - // The previous loop called importAll and thus - // startLoad for each path in ImportPkgs, which - // populates imp.imported[path] with a non-zero value. - panic(fmt.Sprintf("imported[%q] not found", path)) - } - if ii == nil { - // Unreachable. - // The ii values in this loop are the same as in - // the previous loop, which enforced the invariant - // that at least one of ii.err and ii.info is non-nil. - panic(fmt.Sprintf("imported[%q] == nil", path)) - } - if ii.info == nil { - // Unreachable. - // awaitCompletion has the postcondition - // ii.info != nil. - panic(fmt.Sprintf("imported[%q].info = nil", path)) - } - info := ii.info - imp.importedMu.Unlock() - - // Parse the in-package test files. - files, errs := imp.conf.parsePackageFiles(bp, 't') - for _, err := range errs { - info.appendError(err) - } - - // The test files augmenting package P cannot be imported, - // but may import packages that import P, - // so we must disable the cycle check. - imp.addFiles(info, files, false) - } - - createPkg := func(path string, files []*ast.File, errs []error) { - // TODO(adonovan): fix: use dirname of files, not cwd. - info := imp.newPackageInfo(path, conf.Cwd) - for _, err := range errs { - info.appendError(err) - } - - // Ad hoc packages are non-importable, - // so no cycle check is needed. - // addFiles loads dependencies in parallel. - imp.addFiles(info, files, false) - prog.Created = append(prog.Created, info) - } - - // Create packages specified by conf.CreatePkgs. - for _, cp := range conf.CreatePkgs { - files, errs := parseFiles(conf.fset(), conf.build(), nil, ".", cp.Filenames, conf.ParserMode) - files = append(files, cp.Files...) - - path := cp.Path - if path == "" { - if len(files) > 0 { - path = files[0].Name.Name - } else { - path = "(unnamed)" - } - } - createPkg(path, files, errs) - } - - // Create external test packages. - sort.Sort(byImportPath(xtestPkgs)) - for _, bp := range xtestPkgs { - files, errs := imp.conf.parsePackageFiles(bp, 'x') - createPkg(bp.ImportPath+"_test", files, errs) - } - - // -- finishing up (sequential) ---------------------------------------- - - if len(prog.Imported)+len(prog.Created) == 0 { - return nil, errors.New("no initial packages were loaded") - } - - // Create infos for indirectly imported packages. - // e.g. incomplete packages without syntax, loaded from export data. - for _, obj := range prog.importMap { - info := prog.AllPackages[obj] - if info == nil { - prog.AllPackages[obj] = &PackageInfo{Pkg: obj, Importable: true} - } else { - // finished - info.checker = nil - info.errorFunc = nil - } - } - - if !conf.AllowErrors { - // Report errors in indirectly imported packages. - for _, info := range prog.AllPackages { - if len(info.Errors) > 0 { - errpkgs = append(errpkgs, info.Pkg.Path()) - } - } - if errpkgs != nil { - var more string - if len(errpkgs) > 3 { - more = fmt.Sprintf(" and %d more", len(errpkgs)-3) - errpkgs = errpkgs[:3] - } - return nil, fmt.Errorf("couldn't load packages due to errors: %s%s", - strings.Join(errpkgs, ", "), more) - } - } - - markErrorFreePackages(prog.AllPackages) - - return prog, nil -} - -type byImportPath []*build.Package - -func (b byImportPath) Len() int { return len(b) } -func (b byImportPath) Less(i, j int) bool { return b[i].ImportPath < b[j].ImportPath } -func (b byImportPath) Swap(i, j int) { b[i], b[j] = b[j], b[i] } - -// markErrorFreePackages sets the TransitivelyErrorFree flag on all -// applicable packages. -func markErrorFreePackages(allPackages map[*types.Package]*PackageInfo) { - // Build the transpose of the import graph. - importedBy := make(map[*types.Package]map[*types.Package]bool) - for P := range allPackages { - for _, Q := range P.Imports() { - clients, ok := importedBy[Q] - if !ok { - clients = make(map[*types.Package]bool) - importedBy[Q] = clients - } - clients[P] = true - } - } - - // Find all packages reachable from some error package. - reachable := make(map[*types.Package]bool) - var visit func(*types.Package) - visit = func(p *types.Package) { - if !reachable[p] { - reachable[p] = true - for q := range importedBy[p] { - visit(q) - } - } - } - for _, info := range allPackages { - if len(info.Errors) > 0 { - visit(info.Pkg) - } - } - - // Mark the others as "transitively error-free". - for _, info := range allPackages { - if !reachable[info.Pkg] { - info.TransitivelyErrorFree = true - } - } -} - -// build returns the effective build context. -func (conf *Config) build() *build.Context { - if conf.Build != nil { - return conf.Build - } - return &build.Default -} - -// parsePackageFiles enumerates the files belonging to package path, -// then loads, parses and returns them, plus a list of I/O or parse -// errors that were encountered. -// -// 'which' indicates which files to include: -// 'g': include non-test *.go source files (GoFiles + processed CgoFiles) -// 't': include in-package *_test.go source files (TestGoFiles) -// 'x': include external *_test.go source files. (XTestGoFiles) -// -func (conf *Config) parsePackageFiles(bp *build.Package, which rune) ([]*ast.File, []error) { - if bp.ImportPath == "unsafe" { - return nil, nil - } - var filenames []string - switch which { - case 'g': - filenames = bp.GoFiles - case 't': - filenames = bp.TestGoFiles - case 'x': - filenames = bp.XTestGoFiles - default: - panic(which) - } - - files, errs := parseFiles(conf.fset(), conf.build(), conf.DisplayPath, bp.Dir, filenames, conf.ParserMode) - - // Preprocess CgoFiles and parse the outputs (sequentially). - if which == 'g' && bp.CgoFiles != nil { - cgofiles, err := processCgoFiles(bp, conf.fset(), conf.DisplayPath, conf.ParserMode) - if err != nil { - errs = append(errs, err) - } else { - files = append(files, cgofiles...) - } - } - - return files, errs -} - -// doImport imports the package denoted by path. -// It implements the types.Importer signature. -// -// It returns an error if a package could not be created -// (e.g. go/build or parse error), but type errors are reported via -// the types.Config.Error callback (the first of which is also saved -// in the package's PackageInfo). -// -// Idempotent. -// -func (imp *importer) doImport(from *PackageInfo, to string) (*types.Package, error) { - if to == "C" { - // This should be unreachable, but ad hoc packages are - // not currently subject to cgo preprocessing. - // See https://github.com/golang/go/issues/11627. - return nil, fmt.Errorf(`the loader doesn't cgo-process ad hoc packages like %q; see Go issue 11627`, - from.Pkg.Path()) - } - - bp, err := imp.findPackage(to, from.dir, 0) - if err != nil { - return nil, err - } - - // The standard unsafe package is handled specially, - // and has no PackageInfo. - if bp.ImportPath == "unsafe" { - return types.Unsafe, nil - } - - // Look for the package in the cache using its canonical path. - path := bp.ImportPath - imp.importedMu.Lock() - ii := imp.imported[path] - imp.importedMu.Unlock() - if ii == nil { - panic("internal error: unexpected import: " + path) - } - if ii.info != nil { - return ii.info.Pkg, nil - } - - // Import of incomplete package: this indicates a cycle. - fromPath := from.Pkg.Path() - if cycle := imp.findPath(path, fromPath); cycle != nil { - cycle = append([]string{fromPath}, cycle...) - return nil, fmt.Errorf("import cycle: %s", strings.Join(cycle, " -> ")) - } - - panic("internal error: import of incomplete (yet acyclic) package: " + fromPath) -} - -// findPackage locates the package denoted by the importPath in the -// specified directory. -func (imp *importer) findPackage(importPath, fromDir string, mode build.ImportMode) (*build.Package, error) { - // We use a non-blocking duplicate-suppressing cache (gopl.io §9.7) - // to avoid holding the lock around FindPackage. - key := findpkgKey{importPath, fromDir, mode} - imp.findpkgMu.Lock() - v, ok := imp.findpkg[key] - if ok { - // cache hit - imp.findpkgMu.Unlock() - - <-v.ready // wait for entry to become ready - } else { - // Cache miss: this goroutine becomes responsible for - // populating the map entry and broadcasting its readiness. - v = &findpkgValue{ready: make(chan struct{})} - imp.findpkg[key] = v - imp.findpkgMu.Unlock() - - ioLimit <- true - v.bp, v.err = imp.conf.FindPackage(imp.conf.build(), importPath, fromDir, mode) - <-ioLimit - - if _, ok := v.err.(*build.NoGoError); ok { - v.err = nil // empty directory is not an error - } - - close(v.ready) // broadcast ready condition - } - return v.bp, v.err -} - -// importAll loads, parses, and type-checks the specified packages in -// parallel and returns their completed importInfos in unspecified order. -// -// fromPath is the package path of the importing package, if it is -// importable, "" otherwise. It is used for cycle detection. -// -// fromDir is the directory containing the import declaration that -// caused these imports. -// -func (imp *importer) importAll(fromPath, fromDir string, imports map[string]bool, mode build.ImportMode) (infos []*PackageInfo, errors []importError) { - // TODO(adonovan): opt: do the loop in parallel once - // findPackage is non-blocking. - var pending []*importInfo - for importPath := range imports { - bp, err := imp.findPackage(importPath, fromDir, mode) - if err != nil { - errors = append(errors, importError{ - path: importPath, - err: err, - }) - continue - } - pending = append(pending, imp.startLoad(bp)) - } - - if fromPath != "" { - // We're loading a set of imports. - // - // We must record graph edges from the importing package - // to its dependencies, and check for cycles. - imp.graphMu.Lock() - deps, ok := imp.graph[fromPath] - if !ok { - deps = make(map[string]bool) - imp.graph[fromPath] = deps - } - for _, ii := range pending { - deps[ii.path] = true - } - imp.graphMu.Unlock() - } - - for _, ii := range pending { - if fromPath != "" { - if cycle := imp.findPath(ii.path, fromPath); cycle != nil { - // Cycle-forming import: we must not await its - // completion since it would deadlock. - // - // We don't record the error in ii since - // the error is really associated with the - // cycle-forming edge, not the package itself. - // (Also it would complicate the - // invariants of importPath completion.) - if trace { - fmt.Fprintf(os.Stderr, "import cycle: %q\n", cycle) - } - continue - } - } - ii.awaitCompletion() - infos = append(infos, ii.info) - } - - return infos, errors -} - -// findPath returns an arbitrary path from 'from' to 'to' in the import -// graph, or nil if there was none. -func (imp *importer) findPath(from, to string) []string { - imp.graphMu.Lock() - defer imp.graphMu.Unlock() - - seen := make(map[string]bool) - var search func(stack []string, importPath string) []string - search = func(stack []string, importPath string) []string { - if !seen[importPath] { - seen[importPath] = true - stack = append(stack, importPath) - if importPath == to { - return stack - } - for x := range imp.graph[importPath] { - if p := search(stack, x); p != nil { - return p - } - } - } - return nil - } - return search(make([]string, 0, 20), from) -} - -// startLoad initiates the loading, parsing and type-checking of the -// specified package and its dependencies, if it has not already begun. -// -// It returns an importInfo, not necessarily in a completed state. The -// caller must call awaitCompletion() before accessing its info field. -// -// startLoad is concurrency-safe and idempotent. -// -func (imp *importer) startLoad(bp *build.Package) *importInfo { - path := bp.ImportPath - imp.importedMu.Lock() - ii, ok := imp.imported[path] - if !ok { - ii = &importInfo{path: path, complete: make(chan struct{})} - imp.imported[path] = ii - go func() { - info := imp.load(bp) - ii.Complete(info) - }() - } - imp.importedMu.Unlock() - - return ii -} - -// load implements package loading by parsing Go source files -// located by go/build. -func (imp *importer) load(bp *build.Package) *PackageInfo { - info := imp.newPackageInfo(bp.ImportPath, bp.Dir) - info.Importable = true - files, errs := imp.conf.parsePackageFiles(bp, 'g') - for _, err := range errs { - info.appendError(err) - } - - imp.addFiles(info, files, true) - - imp.progMu.Lock() - imp.prog.importMap[bp.ImportPath] = info.Pkg - imp.progMu.Unlock() - - return info -} - -// addFiles adds and type-checks the specified files to info, loading -// their dependencies if needed. The order of files determines the -// package initialization order. It may be called multiple times on the -// same package. Errors are appended to the info.Errors field. -// -// cycleCheck determines whether the imports within files create -// dependency edges that should be checked for potential cycles. -// -func (imp *importer) addFiles(info *PackageInfo, files []*ast.File, cycleCheck bool) { - // Ensure the dependencies are loaded, in parallel. - var fromPath string - if cycleCheck { - fromPath = info.Pkg.Path() - } - // TODO(adonovan): opt: make the caller do scanImports. - // Callers with a build.Package can skip it. - imp.importAll(fromPath, info.dir, scanImports(files), 0) - - if trace { - fmt.Fprintf(os.Stderr, "%s: start %q (%d)\n", - time.Since(imp.start), info.Pkg.Path(), len(files)) - } - - // Ignore the returned (first) error since we - // already collect them all in the PackageInfo. - info.checker.Files(files) - info.Files = append(info.Files, files...) - - if imp.conf.AfterTypeCheck != nil { - imp.conf.AfterTypeCheck(info, files) - } - - if trace { - fmt.Fprintf(os.Stderr, "%s: stop %q\n", - time.Since(imp.start), info.Pkg.Path()) - } -} - -func (imp *importer) newPackageInfo(path, dir string) *PackageInfo { - pkg := types.NewPackage(path, "") - info := &PackageInfo{ - Pkg: pkg, - Info: types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - }, - errorFunc: imp.conf.TypeChecker.Error, - dir: dir, - } - - // Copy the types.Config so we can vary it across PackageInfos. - tc := imp.conf.TypeChecker - tc.IgnoreFuncBodies = false - if f := imp.conf.TypeCheckFuncBodies; f != nil { - tc.IgnoreFuncBodies = !f(path) - } - tc.Importer = closure{imp, info} - tc.Error = info.appendError // appendError wraps the user's Error function - - info.checker = types.NewChecker(&tc, imp.conf.fset(), pkg, &info.Info) - imp.progMu.Lock() - imp.prog.AllPackages[pkg] = info - imp.progMu.Unlock() - return info -} - -type closure struct { - imp *importer - info *PackageInfo -} - -func (c closure) Import(to string) (*types.Package, error) { return c.imp.doImport(c.info, to) } diff --git a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/util.go b/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/util.go deleted file mode 100644 index 7f38dd74..00000000 --- a/vendor/github.com/aws/aws-sdk-go/awsmigrate/awsmigrate-renamer/vendor/golang.org/x/tools/go/loader/util.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package loader - -import ( - "go/ast" - "go/build" - "go/parser" - "go/token" - "io" - "os" - "strconv" - "sync" - - "golang.org/x/tools/go/buildutil" -) - -// We use a counting semaphore to limit -// the number of parallel I/O calls per process. -var ioLimit = make(chan bool, 10) - -// parseFiles parses the Go source files within directory dir and -// returns the ASTs of the ones that could be at least partially parsed, -// along with a list of I/O and parse errors encountered. -// -// I/O is done via ctxt, which may specify a virtual file system. -// displayPath is used to transform the filenames attached to the ASTs. -// -func parseFiles(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, files []string, mode parser.Mode) ([]*ast.File, []error) { - if displayPath == nil { - displayPath = func(path string) string { return path } - } - var wg sync.WaitGroup - n := len(files) - parsed := make([]*ast.File, n) - errors := make([]error, n) - for i, file := range files { - if !buildutil.IsAbsPath(ctxt, file) { - file = buildutil.JoinPath(ctxt, dir, file) - } - wg.Add(1) - go func(i int, file string) { - ioLimit <- true // wait - defer func() { - wg.Done() - <-ioLimit // signal - }() - var rd io.ReadCloser - var err error - if ctxt.OpenFile != nil { - rd, err = ctxt.OpenFile(file) - } else { - rd, err = os.Open(file) - } - if err != nil { - errors[i] = err // open failed - return - } - - // ParseFile may return both an AST and an error. - parsed[i], errors[i] = parser.ParseFile(fset, displayPath(file), rd, mode) - rd.Close() - }(i, file) - } - wg.Wait() - - // Eliminate nils, preserving order. - var o int - for _, f := range parsed { - if f != nil { - parsed[o] = f - o++ - } - } - parsed = parsed[:o] - - o = 0 - for _, err := range errors { - if err != nil { - errors[o] = err - o++ - } - } - errors = errors[:o] - - return parsed, errors -} - -// scanImports returns the set of all import paths from all -// import specs in the specified files. -func scanImports(files []*ast.File) map[string]bool { - imports := make(map[string]bool) - for _, f := range files { - for _, decl := range f.Decls { - if decl, ok := decl.(*ast.GenDecl); ok && decl.Tok == token.IMPORT { - for _, spec := range decl.Specs { - spec := spec.(*ast.ImportSpec) - - // NB: do not assume the program is well-formed! - path, err := strconv.Unquote(spec.Path.Value) - if err != nil { - continue // quietly ignore the error - } - if path == "C" { - continue // skip pseudopackage - } - imports[path] = true - } - } - } - } - return imports -} - -// ---------- Internal helpers ---------- - -// TODO(adonovan): make this a method: func (*token.File) Contains(token.Pos) -func tokenFileContainsPos(f *token.File, pos token.Pos) bool { - p := int(pos) - base := f.Base() - return base <= p && p < base+f.Size() -} diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/assert.go b/vendor/github.com/aws/aws-sdk-go/awstesting/assert.go index 5d095d20..510066fc 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/assert.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/assert.go @@ -125,6 +125,22 @@ func AssertXML(t *testing.T, expect, actual string, container interface{}, msgAn return equal(t, expectVal, actualVal, msgAndArgs...) } +// DidPanic returns if the function paniced and returns true if the function paniced. +func DidPanic(fn func()) (bool, interface{}) { + var paniced bool + var msg interface{} + func() { + defer func() { + if msg = recover(); msg != nil { + paniced = true + } + }() + fn() + }() + + return paniced, msg +} + // objectsAreEqual determines if two objects are considered equal. // // This function does no assertion of any kind. diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/integration_test.go b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/integration_test.go index 93d5ff60..04b90c4b 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/integration_test.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/integration_test.go @@ -9,11 +9,10 @@ import ( "io/ioutil" "net/http" "os" + "reflect" "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/integration" "github.com/aws/aws-sdk-go/service/s3" @@ -67,16 +66,22 @@ func TestWriteToObject(t *testing.T) { Key: aws.String("key name"), Body: bytes.NewReader([]byte("hello world")), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } resp, err := svc.GetObject(&s3.GetObjectInput{ Bucket: bucketName, Key: aws.String("key name"), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } b, _ := ioutil.ReadAll(resp.Body) - assert.Equal(t, []byte("hello world"), b) + if e, a := []byte("hello world"), b; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } func TestPresignedGetPut(t *testing.T) { @@ -89,18 +94,26 @@ func TestPresignedGetPut(t *testing.T) { // Presign a PUT request var puturl string puturl, err = putreq.Presign(300 * time.Second) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } // PUT to the presigned URL with a body var puthttpreq *http.Request buf := bytes.NewReader([]byte("hello world")) puthttpreq, err = http.NewRequest("PUT", puturl, buf) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } var putresp *http.Response putresp, err = http.DefaultClient.Do(puthttpreq) - assert.NoError(t, err) - assert.Equal(t, 200, putresp.StatusCode) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := 200, putresp.StatusCode; e != a { + t.Errorf("expect %v, got %v", e, a) + } // Presign a GET on the same URL getreq, _ := svc.GetObjectRequest(&s3.GetObjectInput{ @@ -110,15 +123,21 @@ func TestPresignedGetPut(t *testing.T) { var geturl string geturl, err = getreq.Presign(300 * time.Second) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } // Get the body var getresp *http.Response getresp, err = http.Get(geturl) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } var b []byte defer getresp.Body.Close() b, err = ioutil.ReadAll(getresp.Body) - assert.Equal(t, "hello world", string(b)) + if e, a := "hello world", string(b); e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/s3crypto/stepdef.go b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/s3crypto/stepdef.go index 7d58e193..5587b0fa 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/s3crypto/stepdef.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/s3crypto/stepdef.go @@ -11,7 +11,6 @@ import ( "strings" "github.com/gucumber/gucumber" - "github.com/stretchr/testify/assert" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" @@ -31,7 +30,9 @@ func init() { Bucket: aws.String(bucket), Prefix: aws.String(baseFolder + "/" + prefix), }) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } plaintexts := make(map[string][]byte) for _, obj := range out.Contents { @@ -40,10 +41,14 @@ func init() { Bucket: aws.String(bucket), Key: plaintextKey, }) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } caseKey := strings.TrimPrefix(*plaintextKey, baseFolder+"/"+prefix) plaintext, err := ioutil.ReadAll(ptObj.Body) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } plaintexts[caseKey] = plaintext } @@ -84,10 +89,14 @@ func init() { Key: &cipherKey, }, ) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } ciphertext, err := ioutil.ReadAll(ctObj.Body) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } ciphertexts[caseKey] = ciphertext } gucumber.World["decrypted"] = ciphertexts @@ -97,8 +106,12 @@ func init() { plaintexts := gucumber.World["plaintexts"].(map[string][]byte) ciphertexts := gucumber.World["decrypted"].(map[string][]byte) for caseKey, ciphertext := range ciphertexts { - assert.Equal(gucumber.T, len(plaintexts[caseKey]), len(ciphertext)) - assert.True(gucumber.T, bytes.Equal(plaintexts[caseKey], ciphertext)) + if e, a := len(plaintexts[caseKey]), len(ciphertext); e != a { + gucumber.T.Errorf("expect %v, got %v", e, a) + } + if e, a := plaintexts[caseKey], ciphertext; !bytes.Equal(e, a) { + gucumber.T.Errorf("expect %v, got %v", e, a) + } } }) @@ -108,16 +121,22 @@ func init() { switch kek { case "kms": arn, err := getAliasInformation(v1, v2) - assert.Nil(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect nil, got %v", nil) + } b64Arn := base64.StdEncoding.EncodeToString([]byte(arn)) - assert.Nil(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect nil, got %v", nil) + } gucumber.World["Masterkey"] = b64Arn handler = s3crypto.NewKMSKeyGenerator(kms.New(session.New(&aws.Config{ Region: &v2, })), arn) - assert.Nil(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect nil, got %v", nil) + } default: gucumber.T.Skip() } @@ -157,7 +176,9 @@ func init() { } _, err := c.PutObject(input) - assert.Nil(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect nil, got %v", nil) + } } }) } diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/shared.go b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/shared.go index dbb1338f..a795ab30 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/shared.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/shared.go @@ -5,7 +5,6 @@ package smoke import ( "encoding/json" - "fmt" "os" "reflect" "regexp" @@ -13,7 +12,6 @@ import ( "strings" "github.com/gucumber/gucumber" - "github.com/stretchr/testify/assert" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -47,12 +45,16 @@ func init() { gucumber.Then(`^the value at "(.+?)" should be a list$`, func(member string) { vals, _ := awsutil.ValuesAtPath(gucumber.World["response"], member) - assert.NotNil(gucumber.T, vals) + if vals == nil { + gucumber.T.Errorf("expect not nil, was") + } }) gucumber.Then(`^the response should contain a "(.+?)"$`, func(member string) { vals, _ := awsutil.ValuesAtPath(gucumber.World["response"], member) - assert.NotEmpty(gucumber.T, vals) + if len(vals) == 0 { + gucumber.T.Errorf("expect values, got none") + } }) gucumber.When(`^I attempt to call the "(.+?)" API with:$`, func(op string, args [][]string) { @@ -61,23 +63,33 @@ func init() { gucumber.Then(`^I expect the response error code to be "(.+?)"$`, func(code string) { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") + if !ok { + gucumber.T.Errorf("no error returned") + } if ok { - assert.Equal(gucumber.T, code, err.Code(), "Error: %v", err) + if e, a := code, err.Code(); e != a { + gucumber.T.Errorf("Error: %v", err) + } } }) gucumber.And(`^I expect the response error message to include:$`, func(data string) { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") + if !ok { + gucumber.T.Errorf("no error returned") + } if ok { - assert.Contains(gucumber.T, err.Error(), data) + if e, a := data, err.Error(); !strings.Contains(a, e) { + gucumber.T.Errorf("expect %v to be in %v, was not", e, a) + } } }) gucumber.And(`^I expect the response error message to include one of:$`, func(table [][]string) { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") + if !ok { + gucumber.T.Errorf("no error returned") + } if ok { found := false for _, row := range table { @@ -87,14 +99,20 @@ func init() { } } - assert.True(gucumber.T, found, fmt.Sprintf("no error messages matched: \"%s\"", err.Error())) + if !found { + gucumber.T.Errorf("no error messages matched: \"%s\"", err.Error()) + } } }) gucumber.And(`^I expect the response error message not be empty$`, func() { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") - assert.NotEmpty(gucumber.T, err.Message()) + if !ok { + gucumber.T.Errorf("no error returned") + } + if len(err.Message()) == 0 { + gucumber.T.Errorf("expect values, got none") + } }) gucumber.When(`^I call the "(.+?)" API with JSON:$`, func(s1 string, data string) { @@ -107,26 +125,42 @@ func init() { gucumber.Then(`^the error code should be "(.+?)"$`, func(s1 string) { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") - assert.Equal(gucumber.T, s1, err.Code()) + if !ok { + gucumber.T.Errorf("no error returned") + } + if e, a := s1, err.Code(); e != a { + gucumber.T.Errorf("expect %v, got %v", e, a) + } }) gucumber.And(`^the error message should contain:$`, func(data string) { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") - assert.Contains(gucumber.T, err.Error(), data) + if !ok { + gucumber.T.Errorf("no error returned") + } + if e, a := data, err.Error(); !strings.Contains(a, e) { + gucumber.T.Errorf("expect %v to be in %v, was not", e, a) + } }) gucumber.Then(`^the request should fail$`, func() { err, ok := gucumber.World["error"].(awserr.Error) - assert.True(gucumber.T, ok, "no error returned") - assert.Error(gucumber.T, err) + if !ok { + gucumber.T.Errorf("no error returned") + } + if err == nil { + gucumber.T.Errorf("expect error, got none") + } }) gucumber.Then(`^the request should be successful$`, func() { err, ok := gucumber.World["error"].(awserr.Error) - assert.False(gucumber.T, ok, "error returned") - assert.NoError(gucumber.T, err) + if ok { + gucumber.T.Errorf("error returned") + } + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } }) } @@ -160,10 +194,12 @@ func call(op string, args [][]string, allowError bool) { if !allowError { err, _ := gucumber.World["error"].(error) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } } } else { - assert.Fail(gucumber.T, "failed to find operation "+op) + gucumber.T.Errorf("failed to find operation " + op) } } @@ -215,10 +251,12 @@ func callWithJSON(op, j string, allowError bool) { if !allowError { err, _ := gucumber.World["error"].(error) - assert.NoError(gucumber.T, err) + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } } } else { - assert.Fail(gucumber.T, "failed to find operation "+op) + gucumber.T.Errorf("failed to find operation " + op) } } diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/performance/init.go b/vendor/github.com/aws/aws-sdk-go/awstesting/performance/init.go index 81596d1c..50e2cf0d 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/performance/init.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/performance/init.go @@ -9,7 +9,6 @@ import ( "runtime" "github.com/gucumber/gucumber" - "github.com/stretchr/testify/assert" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -32,8 +31,12 @@ func init() { gucumber.Then(`^I should not have leaked any resources$`, func() { runtime.GC() err, ok := gucumber.World["error"].(awserr.Error) - assert.False(gucumber.T, ok, "error returned") - assert.NoError(gucumber.T, err) + if ok { + gucumber.T.Errorf("error returned") + } + if err != nil { + gucumber.T.Errorf("expect no error, got %v", err) + } }) gucumber.And(`^I have a list of services$`, func() { diff --git a/vendor/github.com/aws/aws-sdk-go/awstesting/util_test.go b/vendor/github.com/aws/aws-sdk-go/awstesting/util_test.go index 4b03db01..6700eb0d 100644 --- a/vendor/github.com/aws/aws-sdk-go/awstesting/util_test.go +++ b/vendor/github.com/aws/aws-sdk-go/awstesting/util_test.go @@ -4,8 +4,6 @@ import ( "io" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/awstesting" ) @@ -13,9 +11,15 @@ func TestReadCloserClose(t *testing.T) { rc := awstesting.ReadCloser{Size: 1} err := rc.Close() - assert.Nil(t, err) - assert.True(t, rc.Closed) - assert.Equal(t, rc.Size, 1) + if err != nil { + t.Errorf("expect nil, got %v", err) + } + if !rc.Closed { + t.Errorf("expect closed, was not") + } + if e, a := rc.Size, 1; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestReadCloserRead(t *testing.T) { @@ -24,16 +28,30 @@ func TestReadCloserRead(t *testing.T) { n, err := rc.Read(b) - assert.Nil(t, err) - assert.Equal(t, n, 2) - assert.False(t, rc.Closed) - assert.Equal(t, rc.Size, 3) + if err != nil { + t.Errorf("expect nil, got %v", err) + } + if e, a := n, 2; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if rc.Closed { + t.Errorf("expect not to be closed") + } + if e, a := rc.Size, 3; e != a { + t.Errorf("expect %v, got %v", e, a) + } err = rc.Close() - assert.Nil(t, err) + if err != nil { + t.Errorf("expect nil, got %v", err) + } n, err = rc.Read(b) - assert.Equal(t, err, io.EOF) - assert.Equal(t, n, 0) + if e, a := err, io.EOF; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := n, 0; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestReadCloserReadAll(t *testing.T) { @@ -42,8 +60,16 @@ func TestReadCloserReadAll(t *testing.T) { n, err := rc.Read(b) - assert.Equal(t, err, io.EOF) - assert.Equal(t, n, 5) - assert.False(t, rc.Closed) - assert.Equal(t, rc.Size, 0) + if e, a := err, io.EOF; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := n, 5; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if rc.Closed { + t.Errorf("expect not to be closed") + } + if e, a := rc.Size, 0; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/buildspec.yml b/vendor/github.com/aws/aws-sdk-go/buildspec.yml new file mode 100644 index 00000000..427208ed --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/buildspec.yml @@ -0,0 +1,21 @@ +version: 0.2 + +phases: + build: + commands: + - echo Build started on `date` + - export GOPATH=/go + - export SDK_CB_ROOT=`pwd` + - export SDK_GO_ROOT=/go/src/github.com/aws/aws-sdk-go + - mkdir -p /go/src/github.com/aws + - ln -s $SDK_CB_ROOT $SDK_GO_ROOT + - cd $SDK_GO_ROOT + - make unit + - cd $SDK_CB_ROOT + - #echo Compiling the Go code... + post_build: + commands: + - echo Build completed on `date` +#artifacts: +# files: +# - hello diff --git a/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/readme.md b/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/readme.md new file mode 100644 index 00000000..6fb164a4 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/readme.md @@ -0,0 +1,102 @@ +# Example + +`scan` is an example how to use Amazon DynamoDB's `expression` package to fill +the member fields of Amazon DynamoDB's Operation input types. + +## Representing DynamoDB Expressions + +In the example, the variable `filt` represents a `FilterExpression`. Note that +DynamoDB item attributes are represented using the function `Name()` and +DynamoDB item values are similarly represented using the function `Value()`. In +this context, the string `"Artist"` represents the name of the item attribute +that we want to evaluate and the string `"No One You Know"` represents the value +we want to evaluate the item attribute against. The relationship between the two +[operands](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Syntax) +are specified using the method `Equal()`. + +Similarly, the variable `proj` represents a `ProjectionExpression`. The list of +item attribute names comprising the `ProjectionExpression` are specified as +arguments to the function `NamesList()`. The `expression` package utilizes the +type safety of Go and if an item value were to be used as an argument to the +function `NamesList()`, a compile time error is returned. The pattern of +representing DynamoDB Expressions by indicating relationships between `operands` +with functions is consistent throughout the whole `expression` package. + +```go +filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) +// let :a be an ExpressionAttributeValue representing the string "No One You Know" +// equivalent FilterExpression: "Artist = :a" + +proj := expression.NamesList(expression.Name("SongTitle"), expression.Name("AlbumTitle")) +// equivalent ProjectionExpression: "SongTitle, AlbumTitle" +``` + +## Creating an `Expression` + +In the example, the variable `expr` is an instance of an `Expression` type. An +`Expression` is built using a builder pattern. First, a new `Builder` is +initialized by the `NewBuilder()` function. Then, types representing DynamoDB +Expressions are added to the `Builder` by methods `WithFilter()` and +`WithProjection()`. The `Build()` method returns an instance of an `Expression` +and an error. The error will be either an `InvalidParameterError` or an +`UnsetParameterError`. + +```go +filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) +proj := expression.NamesList(expression.Name("SongTitle"), expression.Name("AlbumTitle")) + +expr, err := expression.NewBuilder().WithFilter(filt).WithProjection(proj).Build() +if err != nil { + fmt.Println(err) +} +``` + +## Filling in the fields of a DynamoDB `Scan` API + +In the example, the getter methods of the `Expression` type is used to get the +formatted DynamoDB Expression strings. The `ExpressionAttributeNames` and +`ExpressionAttributeValues` member field of the DynamoDB API must always be +assigned when using an `Expression` since all item attribute names and values +are aliased. That means that if the `ExpressionAttributeNames` and +`ExpressionAttributeValues` member is not assigned with the corresponding +`Names()` and `Values()` methods, the DynamoDB operation will run into a logic +error. + +```go +filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) +proj := expression.NamesList(expression.Name("SongTitle"), expression.Name("AlbumTitle")) +expr, err := expression.NewBuilder().WithFilter(filt).WithProjection(proj).Build() +if err != nil { + fmt.Println(err) +} + +input := &dynamodb.ScanInput{ + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + FilterExpression: expr.Filter(), + ProjectionExpression: expr.Projection(), + TableName: aws.String("Music"), +} +``` + +## Usage + +`go run -tags example scan.go -table "" -region ""` + +## Output + +``` +{ + Count: #SomeNumber, + Items: [{ + AlbumTitle: { + #SomeAlbumTitle + }, + SongTitle: { + #SomeSongTitle + } + }], + ... + ScannedCount: #SomeNumber, +} +``` diff --git a/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/scan.go b/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/scan.go new file mode 100644 index 00000000..921a5622 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/expression/scan.go @@ -0,0 +1,88 @@ +// +build example + +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/aws/aws-sdk-go/service/dynamodb/expression" +) + +func exitWithError(err error) { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) +} + +func main() { + cfg := Config{} + if err := cfg.Load(); err != nil { + exitWithError(fmt.Errorf("failed to load config, %v", err)) + } + + // Create the config specifying the Region for the DynamoDB table. + // If Config.Region is not set the region must come from the shared + // config or AWS_REGION environment variable. + awscfg := &aws.Config{} + if len(cfg.Region) > 0 { + awscfg.WithRegion(cfg.Region) + } + + // Create the session that the DynamoDB service will use. + sess := session.Must(session.NewSession(awscfg)) + + // Create the DynamoDB service client to make the query request with. + svc := dynamodb.New(sess) + + // Create the Expression to fill the input struct with. + filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) + proj := expression.NamesList(expression.Name("SongTitle"), expression.Name("AlbumTitle")) + expr, err := expression.NewBuilder().WithFilter(filt).WithProjection(proj).Build() + if err != nil { + exitWithError(fmt.Errorf("failed to create the Expression, %v", err)) + } + + // Build the query input parameters + params := &dynamodb.ScanInput{ + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + FilterExpression: expr.Filter(), + ProjectionExpression: expr.Projection(), + TableName: aws.String(cfg.Table), + } + if cfg.Limit > 0 { + params.Limit = aws.Int64(cfg.Limit) + } + + // Make the DynamoDB Query API call + result, err := svc.Scan(params) + if err != nil { + exitWithError(fmt.Errorf("failed to make Query API call, %v", err)) + } + + fmt.Println(result) +} + +type Config struct { + Table string // required + Region string // optional + Limit int64 // optional +} + +func (c *Config) Load() error { + flag.Int64Var(&c.Limit, "limit", 0, "Limit is the max items to be returned, 0 is no limit") + flag.StringVar(&c.Table, "table", "", "Table to Query on") + flag.StringVar(&c.Region, "region", "", "AWS Region the table is in") + flag.Parse() + + if len(c.Table) == 0 { + flag.PrintDefaults() + return fmt.Errorf("table name is required.") + } + + return nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/AWS b/vendor/github.com/aws/aws-sdk-go/models/apis/AWS deleted file mode 100644 index 8d1c8b69..00000000 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/AWS +++ /dev/null @@ -1 +0,0 @@ - diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/api-2.json index e83461f8..73f184d0 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/api-2.json @@ -60,6 +60,38 @@ {"shape":"IncompatibleImageException"} ] }, + "CreateImageBuilder":{ + "name":"CreateImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageBuilderRequest"}, + "output":{"shape":"CreateImageBuilderResult"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotAvailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRoleException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InvalidParameterCombinationException"}, + {"shape":"IncompatibleImageException"} + ] + }, + "CreateImageBuilderStreamingURL":{ + "name":"CreateImageBuilderStreamingURL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageBuilderStreamingURLRequest"}, + "output":{"shape":"CreateImageBuilderStreamingURLResult"}, + "errors":[ + {"shape":"OperationNotPermittedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "CreateStack":{ "name":"CreateStack", "http":{ @@ -119,6 +151,35 @@ {"shape":"ConcurrentModificationException"} ] }, + "DeleteImage":{ + "name":"DeleteImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteImageRequest"}, + "output":{"shape":"DeleteImageResult"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, + "DeleteImageBuilder":{ + "name":"DeleteImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteImageBuilderRequest"}, + "output":{"shape":"DeleteImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DeleteStack":{ "name":"DeleteStack", "http":{ @@ -157,6 +218,18 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeImageBuilders":{ + "name":"DescribeImageBuilders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImageBuildersRequest"}, + "output":{"shape":"DescribeImageBuildersResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, "DescribeImages":{ "name":"DescribeImages", "http":{ @@ -249,6 +322,20 @@ {"shape":"ConcurrentModificationException"} ] }, + "StartImageBuilder":{ + "name":"StartImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartImageBuilderRequest"}, + "output":{"shape":"StartImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotAvailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "StopFleet":{ "name":"StopFleet", "http":{ @@ -262,6 +349,20 @@ {"shape":"ConcurrentModificationException"} ] }, + "StopImageBuilder":{ + "name":"StopImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopImageBuilderRequest"}, + "output":{"shape":"StopImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "UpdateDirectoryConfig":{ "name":"UpdateDirectoryConfig", "http":{ @@ -427,6 +528,7 @@ "Name":{"shape":"Name"}, "ImageName":{"shape":"String"}, "InstanceType":{"shape":"String"}, + "FleetType":{"shape":"FleetType"}, "ComputeCapacity":{"shape":"ComputeCapacity"}, "VpcConfig":{"shape":"VpcConfig"}, "MaxUserDurationInSeconds":{"shape":"Integer"}, @@ -443,6 +545,45 @@ "Fleet":{"shape":"Fleet"} } }, + "CreateImageBuilderRequest":{ + "type":"structure", + "required":[ + "Name", + "ImageName", + "InstanceType" + ], + "members":{ + "Name":{"shape":"Name"}, + "ImageName":{"shape":"String"}, + "InstanceType":{"shape":"String"}, + "Description":{"shape":"Description"}, + "DisplayName":{"shape":"DisplayName"}, + "VpcConfig":{"shape":"VpcConfig"}, + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"} + } + }, + "CreateImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, + "CreateImageBuilderStreamingURLRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"}, + "Validity":{"shape":"Long"} + } + }, + "CreateImageBuilderStreamingURLResult":{ + "type":"structure", + "members":{ + "StreamingURL":{"shape":"String"}, + "Expires":{"shape":"Timestamp"} + } + }, "CreateStackRequest":{ "type":"structure", "required":["Name"], @@ -506,6 +647,32 @@ "members":{ } }, + "DeleteImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"} + } + }, + "DeleteImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, + "DeleteImageRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"} + } + }, + "DeleteImageResult":{ + "type":"structure", + "members":{ + "Image":{"shape":"Image"} + } + }, "DeleteStackRequest":{ "type":"structure", "required":["Name"], @@ -547,6 +714,21 @@ "NextToken":{"shape":"String"} } }, + "DescribeImageBuildersRequest":{ + "type":"structure", + "members":{ + "Names":{"shape":"StringList"}, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeImageBuildersResult":{ + "type":"structure", + "members":{ + "ImageBuilders":{"shape":"ImageBuilderList"}, + "NextToken":{"shape":"String"} + } + }, "DescribeImagesRequest":{ "type":"structure", "members":{ @@ -675,6 +857,7 @@ "Description":{"shape":"String"}, "ImageName":{"shape":"String"}, "InstanceType":{"shape":"String"}, + "FleetType":{"shape":"FleetType"}, "ComputeCapacityStatus":{"shape":"ComputeCapacityStatus"}, "MaxUserDurationInSeconds":{"shape":"Integer"}, "DisconnectTimeoutInSeconds":{"shape":"Integer"}, @@ -720,6 +903,7 @@ "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", + "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", @@ -752,6 +936,13 @@ "STOPPED" ] }, + "FleetType":{ + "type":"string", + "enum":[ + "ALWAYS_ON", + "ON_DEMAND" + ] + }, "Image":{ "type":"structure", "required":["Name"], @@ -771,6 +962,57 @@ "PublicBaseImageReleasedDate":{"shape":"Timestamp"} } }, + "ImageBuilder":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"}, + "Arn":{"shape":"Arn"}, + "ImageArn":{"shape":"Arn"}, + "Description":{"shape":"String"}, + "DisplayName":{"shape":"String"}, + "VpcConfig":{"shape":"VpcConfig"}, + "InstanceType":{"shape":"String"}, + "Platform":{"shape":"PlatformType"}, + "State":{"shape":"ImageBuilderState"}, + "StateChangeReason":{"shape":"ImageBuilderStateChangeReason"}, + "CreatedTime":{"shape":"Timestamp"}, + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"}, + "ImageBuilderErrors":{"shape":"ResourceErrors"} + } + }, + "ImageBuilderList":{ + "type":"list", + "member":{"shape":"ImageBuilder"} + }, + "ImageBuilderState":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "STOPPING", + "STOPPED", + "REBOOTING", + "SNAPSHOTTING", + "DELETING", + "FAILED" + ] + }, + "ImageBuilderStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"ImageBuilderStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "ImageBuilderStateChangeReasonCode":{ + "type":"string", + "enum":[ + "INTERNAL_ERROR", + "IMAGE_UNAVAILABLE" + ] + }, "ImageList":{ "type":"list", "member":{"shape":"Image"} @@ -893,6 +1135,18 @@ }, "exception":true }, + "ResourceError":{ + "type":"structure", + "members":{ + "ErrorCode":{"shape":"FleetErrorCode"}, + "ErrorMessage":{"shape":"String"}, + "ErrorTimestamp":{"shape":"Timestamp"} + } + }, + "ResourceErrors":{ + "type":"list", + "member":{"shape":"ResourceError"} + }, "ResourceIdentifier":{ "type":"string", "min":1 @@ -1011,6 +1265,19 @@ "members":{ } }, + "StartImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StartImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, "StopFleetRequest":{ "type":"structure", "required":["Name"], @@ -1023,6 +1290,19 @@ "members":{ } }, + "StopImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StopImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, "StorageConnector":{ "type":"structure", "required":["ConnectorType"], diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/docs-2.json index 35eeb7d5..f4111a8d 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/appstream/2016-12-01/docs-2.json @@ -1,45 +1,52 @@ { "version": "2.0", - "service": "Amazon AppStream 2.0

API documentation for Amazon AppStream 2.0.

", + "service": "Amazon AppStream 2.0

You can use Amazon AppStream 2.0 to stream desktop applications to any device running a web browser, without rewriting them.

", "operations": { - "AssociateFleet": "

Associate a fleet to a stack.

", - "CreateDirectoryConfig": "

Creates a directory configuration with the given parameters.

", - "CreateFleet": "

Creates a new fleet.

", - "CreateStack": "

Create a new stack.

", - "CreateStreamingURL": "

Creates a URL to start an AppStream 2.0 streaming session for a user. By default, the URL is valid only for 1 minute from the time that it is generated.

", - "DeleteDirectoryConfig": "

Deletes the directory configuration with the given parameters.

", - "DeleteFleet": "

Deletes a fleet.

", - "DeleteStack": "

Deletes the stack. After this operation completes, the environment can no longer be activated, and any reservations made for the stack are released.

", - "DescribeDirectoryConfigs": "

Returns a list describing the specified directory configurations.

", - "DescribeFleets": "

If fleet names are provided, this operation describes the specified fleets; otherwise, all the fleets in the account are described.

", - "DescribeImages": "

Describes the images. If a list of names is not provided, all images in your account are returned. This operation does not return a paginated result.

", - "DescribeSessions": "

Describes the streaming sessions for a stack and a fleet. If a user ID is provided, this operation returns streaming sessions for only that user. To retrieve the next set of items, pass this value for the nextToken parameter in a subsequent call to this operation. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

", - "DescribeStacks": "

If stack names are not provided, this operation describes the specified stacks; otherwise, all stacks in the account are described. To retrieve the next set of items, pass the nextToken value in a subsequent call to this operation.

", - "DisassociateFleet": "

Disassociates a fleet from a stack.

", - "ExpireSession": "

This operation immediately stops a streaming session.

", - "ListAssociatedFleets": "

Lists all fleets associated with the stack.

", - "ListAssociatedStacks": "

Lists all stacks to which the specified fleet is associated.

", - "StartFleet": "

Starts a fleet.

", - "StopFleet": "

Stops a fleet.

", - "UpdateDirectoryConfig": "

Updates the directory configuration with the given parameters.

", - "UpdateFleet": "

Updates an existing fleet. All the attributes except the fleet name can be updated in the STOPPED state. When a fleet is in the RUNNING state, only DisplayName and ComputeCapacity can be updated. A fleet cannot be updated in a status of STARTING or STOPPING.

", - "UpdateStack": "

Updates the specified fields in the stack with the specified name.

" + "AssociateFleet": "

Associates the specified fleet with the specified stack.

", + "CreateDirectoryConfig": "

Creates a directory configuration.

", + "CreateFleet": "

Creates a fleet.

", + "CreateImageBuilder": null, + "CreateImageBuilderStreamingURL": null, + "CreateStack": "

Creates a stack.

", + "CreateStreamingURL": "

Creates a URL to start a streaming session for the specified user.

By default, the URL is valid only for one minute from the time that it is generated.

", + "DeleteDirectoryConfig": "

Deletes the specified directory configuration.

", + "DeleteFleet": "

Deletes the specified fleet.

", + "DeleteImage": null, + "DeleteImageBuilder": null, + "DeleteStack": "

Deletes the specified stack. After this operation completes, the environment can no longer be activated and any reservations made for the stack are released.

", + "DescribeDirectoryConfigs": "

Describes the specified directory configurations.

", + "DescribeFleets": "

Describes the specified fleets or all fleets in the account.

", + "DescribeImageBuilders": null, + "DescribeImages": "

Describes the specified images or all images in the account.

", + "DescribeSessions": "

Describes the streaming sessions for the specified stack and fleet. If a user ID is provided, only the streaming sessions for only that user are returned. If an authentication type is not provided, the default is to authenticate users using a streaming URL.

", + "DescribeStacks": "

Describes the specified stacks or all stacks in the account.

", + "DisassociateFleet": "

Disassociates the specified fleet from the specified stack.

", + "ExpireSession": "

Stops the specified streaming session.

", + "ListAssociatedFleets": "

Lists the fleets associated with the specified stack.

", + "ListAssociatedStacks": "

Lists the stacks associated with the specified fleet.

", + "StartFleet": "

Starts the specified fleet.

", + "StartImageBuilder": null, + "StopFleet": "

Stops the specified fleet.

", + "StopImageBuilder": null, + "UpdateDirectoryConfig": "

Updates the specified directory configuration.

", + "UpdateFleet": "

Updates the specified fleet.

If the fleet is in the STOPPED state, you can update any attribute except the fleet name. If the fleet is in the RUNNING state, you can update the DisplayName and ComputeCapacity attributes. If the fleet is in the STARTING or STOPPING state, you can't update it.

", + "UpdateStack": "

Updates the specified stack.

" }, "shapes": { "AccountName": { "base": null, "refs": { - "ServiceAccountCredentials$AccountName": "

The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

" + "ServiceAccountCredentials$AccountName": "

The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.

" } }, "AccountPassword": { "base": null, "refs": { - "ServiceAccountCredentials$AccountPassword": "

The password for the user account for directory actions.

" + "ServiceAccountCredentials$AccountPassword": "

The password for the account.

" } }, "Application": { - "base": "

An entry for a single application in the application catalog.

", + "base": "

Describes an application in the application catalog.

", "refs": { "Applications$member": null } @@ -47,15 +54,17 @@ "Applications": { "base": null, "refs": { - "Image$Applications": "

The applications associated with an image.

" + "Image$Applications": "

The applications associated with the image.

" } }, "Arn": { "base": null, "refs": { "Fleet$Arn": "

The ARN for the fleet.

", - "Image$Arn": "

The ARN for the image.

", - "Image$BaseImageArn": "

The source image ARN from which this image was created.

", + "Image$Arn": "

The ARN of the image.

", + "Image$BaseImageArn": "

The ARN of the image from which this image was created.

", + "ImageBuilder$Arn": null, + "ImageBuilder$ImageArn": null, "Stack$Arn": "

The ARN of the stack.

" } }, @@ -72,38 +81,40 @@ "AuthenticationType": { "base": null, "refs": { - "DescribeSessionsRequest$AuthenticationType": "

The authentication method of the user. It can be API for a user authenticated using a streaming URL, or SAML for a SAML federated user. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

", - "Session$AuthenticationType": "

The authentication method of the user for whom the session was created. It can be API for a user authenticated using a streaming URL or SAML for a SAML federated user.

" + "DescribeSessionsRequest$AuthenticationType": "

The authentication method. Specify API for a user authenticated using a streaming URL or SAML for a SAML federated user. The default is to authenticate users using a streaming URL.

", + "Session$AuthenticationType": "

The authentication method. The user is authenticated using a streaming URL (API) or SAML federation (SAML).

" } }, "Boolean": { "base": null, "refs": { - "Application$Enabled": "

If there is a problem, an application can be disabled after image creation.

", - "Image$ImageBuilderSupported": "

Whether an image builder can be launched from this image.

", - "UpdateFleetRequest$DeleteVpcConfig": "

Delete the VPC association for the specified fleet.

", - "UpdateStackRequest$DeleteStorageConnectors": "

Remove all the storage connectors currently enabled for the stack.

" + "Application$Enabled": "

If there is a problem, the application can be disabled after image creation.

", + "Image$ImageBuilderSupported": "

Indicates whether an image builder can be launched from this image.

", + "UpdateFleetRequest$DeleteVpcConfig": "

Deletes the VPC association for the specified fleet.

", + "UpdateStackRequest$DeleteStorageConnectors": "

Deletes the storage connectors currently enabled for the stack.

" } }, "BooleanObject": { "base": null, "refs": { "CreateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default internet access for the fleet.

", - "Fleet$EnableDefaultInternetAccess": "

Whether default internet access is enabled for the fleet.

", + "CreateImageBuilderRequest$EnableDefaultInternetAccess": null, + "Fleet$EnableDefaultInternetAccess": "

Indicates whether default internet access is enabled for the fleet.

", + "ImageBuilder$EnableDefaultInternetAccess": null, "UpdateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default internet access for the fleet.

" } }, "ComputeCapacity": { - "base": "

The capacity configuration for the fleet.

", + "base": "

Describes the capacity for a fleet.

", "refs": { - "CreateFleetRequest$ComputeCapacity": "

The parameters for the capacity allocated to the fleet.

", - "UpdateFleetRequest$ComputeCapacity": "

The parameters for the capacity allocated to the fleet.

" + "CreateFleetRequest$ComputeCapacity": "

The desired capacity for the fleet.

", + "UpdateFleetRequest$ComputeCapacity": "

The desired capacity for the fleet.

" } }, "ComputeCapacityStatus": { - "base": "

The capacity information for the fleet.

", + "base": "

Describes the capacity status for a fleet.

", "refs": { - "Fleet$ComputeCapacityStatus": "

The capacity information for the fleet.

" + "Fleet$ComputeCapacityStatus": "

The capacity status for the fleet.

" } }, "ConcurrentModificationException": { @@ -122,7 +133,7 @@ } }, "CreateFleetRequest": { - "base": "

Contains the parameters for the new fleet to create.

", + "base": null, "refs": { } }, @@ -131,6 +142,26 @@ "refs": { } }, + "CreateImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderResult": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderStreamingURLRequest": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderStreamingURLResult": { + "base": null, + "refs": { + } + }, "CreateStackRequest": { "base": null, "refs": { @@ -171,6 +202,26 @@ "refs": { } }, + "DeleteImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageBuilderResult": { + "base": null, + "refs": { + } + }, + "DeleteImageRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageResult": { + "base": null, + "refs": { + } + }, "DeleteStackRequest": { "base": null, "refs": { @@ -201,6 +252,16 @@ "refs": { } }, + "DescribeImageBuildersRequest": { + "base": null, + "refs": { + } + }, + "DescribeImageBuildersResult": { + "base": null, + "refs": { + } + }, "DescribeImagesRequest": { "base": null, "refs": { @@ -234,41 +295,42 @@ "Description": { "base": null, "refs": { - "CreateFleetRequest$Description": "

The description of the fleet.

", - "CreateStackRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", - "UpdateFleetRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", - "UpdateStackRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

" + "CreateFleetRequest$Description": "

The description displayed to end users.

", + "CreateImageBuilderRequest$Description": null, + "CreateStackRequest$Description": "

The description displayed to end users.

", + "UpdateFleetRequest$Description": "

The description displayed to end users.

", + "UpdateStackRequest$Description": "

The description displayed to end users.

" } }, "DirectoryConfig": { - "base": "

Full directory configuration details, which are used to join domains for the AppStream 2.0 streaming instances.

", + "base": "

Configuration information for the directory used to join domains.

", "refs": { - "CreateDirectoryConfigResult$DirectoryConfig": "

Directory configuration details.

", + "CreateDirectoryConfigResult$DirectoryConfig": "

Information about the directory configuration.

", "DirectoryConfigList$member": null, - "UpdateDirectoryConfigResult$DirectoryConfig": "

The updated directory configuration details.

" + "UpdateDirectoryConfigResult$DirectoryConfig": "

Information about the directory configuration.

" } }, "DirectoryConfigList": { "base": null, "refs": { - "DescribeDirectoryConfigsResult$DirectoryConfigs": "

The list of directory configurations.

" + "DescribeDirectoryConfigsResult$DirectoryConfigs": "

Information about the directory configurations.

" } }, "DirectoryName": { "base": null, "refs": { - "CreateDirectoryConfigRequest$DirectoryName": "

The fully qualified name of the directory, such as corp.example.com

", - "DeleteDirectoryConfigRequest$DirectoryName": "

The name of the directory configuration to be deleted.

", - "DirectoryConfig$DirectoryName": "

The fully qualified name of the directory, such as corp.example.com

", + "CreateDirectoryConfigRequest$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", + "DeleteDirectoryConfigRequest$DirectoryName": "

The name of the directory configuration.

", + "DirectoryConfig$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", "DirectoryNameList$member": null, - "DomainJoinInfo$DirectoryName": "

The fully qualified name of the directory, such as corp.example.com

", - "UpdateDirectoryConfigRequest$DirectoryName": "

The name of the existing directory configuration to be updated.

" + "DomainJoinInfo$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", + "UpdateDirectoryConfigRequest$DirectoryName": "

The name of the directory configuration.

" } }, "DirectoryNameList": { "base": null, "refs": { - "DescribeDirectoryConfigsRequest$DirectoryNames": "

A specific list of directory names.

" + "DescribeDirectoryConfigsRequest$DirectoryNames": "

The directory names.

" } }, "DisassociateFleetRequest": { @@ -284,18 +346,21 @@ "DisplayName": { "base": null, "refs": { - "CreateFleetRequest$DisplayName": "

The display name of the fleet.

", - "CreateStackRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "UpdateFleetRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "UpdateStackRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

" + "CreateFleetRequest$DisplayName": "

The fleet name displayed to end users.

", + "CreateImageBuilderRequest$DisplayName": null, + "CreateStackRequest$DisplayName": "

The stack name displayed to end users.

", + "UpdateFleetRequest$DisplayName": "

The fleet name displayed to end users.

", + "UpdateStackRequest$DisplayName": "

The stack name displayed to end users.

" } }, "DomainJoinInfo": { - "base": "

The DirectoryName and OrganizationalUnitDistinguishedName values, which are used to join domains for the AppStream 2.0 streaming instances.

", + "base": "

Contains the information needed for streaming instances to join a domain.

", "refs": { - "CreateFleetRequest$DomainJoinInfo": "

The DirectoryName and OrganizationalUnitDistinguishedName values, which are used to join domains for the AppStream 2.0 streaming instances.

", - "Fleet$DomainJoinInfo": "

The DirectoryName and OrganizationalUnitDistinguishedName values, which are used to join domains for the AppStream 2.0 streaming instances.

", - "UpdateFleetRequest$DomainJoinInfo": "

The DirectoryName and OrganizationalUnitDistinguishedName values, which are used to join domains for the AppStream 2.0 streaming instances.

" + "CreateFleetRequest$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

", + "CreateImageBuilderRequest$DomainJoinInfo": null, + "Fleet$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

", + "ImageBuilder$DomainJoinInfo": null, + "UpdateFleetRequest$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

" } }, "ErrorMessage": { @@ -326,25 +391,25 @@ "Fleet": { "base": "

Contains the parameters for a fleet.

", "refs": { - "CreateFleetResult$Fleet": "

The details for the created fleet.

", + "CreateFleetResult$Fleet": "

Information about the fleet.

", "FleetList$member": null, - "UpdateFleetResult$Fleet": "

A list of fleet details.

" + "UpdateFleetResult$Fleet": "

Information about the fleet.

" } }, "FleetAttribute": { - "base": "

Fleet attribute.

", + "base": "

The fleet attribute.

", "refs": { "FleetAttributes$member": null } }, "FleetAttributes": { - "base": "

A list of fleet attributes.

", + "base": "

The fleet attributes.

", "refs": { - "UpdateFleetRequest$AttributesToDelete": "

Fleet attributes to be deleted.

" + "UpdateFleetRequest$AttributesToDelete": "

The fleet attributes to delete.

" } }, "FleetError": { - "base": "

The details of the fleet error.

", + "base": "

Describes a fleet error.

", "refs": { "FleetErrors$member": null } @@ -352,19 +417,20 @@ "FleetErrorCode": { "base": null, "refs": { - "FleetError$ErrorCode": "

The error code for the fleet error.

" + "FleetError$ErrorCode": "

The error code.

", + "ResourceError$ErrorCode": null } }, "FleetErrors": { "base": null, "refs": { - "Fleet$FleetErrors": "

The list of fleet errors is appended to this list.

" + "Fleet$FleetErrors": "

The fleet errors.

" } }, "FleetList": { - "base": "

A list of fleets.

", + "base": "

The fleets.

", "refs": { - "DescribeFleetsResult$Fleets": "

The list of fleet details.

" + "DescribeFleetsResult$Fleets": "

Information about the fleets.

" } }, "FleetState": { @@ -373,26 +439,68 @@ "Fleet$State": "

The current state for the fleet.

" } }, - "Image": { - "base": "

New streaming instances are booted from images. The image stores the application catalog and is connected to fleets.

", + "FleetType": { + "base": null, "refs": { + "CreateFleetRequest$FleetType": null, + "Fleet$FleetType": null + } + }, + "Image": { + "base": "

Describes an image.

", + "refs": { + "DeleteImageResult$Image": null, "ImageList$member": null } }, + "ImageBuilder": { + "base": null, + "refs": { + "CreateImageBuilderResult$ImageBuilder": null, + "DeleteImageBuilderResult$ImageBuilder": null, + "ImageBuilderList$member": null, + "StartImageBuilderResult$ImageBuilder": null, + "StopImageBuilderResult$ImageBuilder": null + } + }, + "ImageBuilderList": { + "base": null, + "refs": { + "DescribeImageBuildersResult$ImageBuilders": null + } + }, + "ImageBuilderState": { + "base": null, + "refs": { + "ImageBuilder$State": null + } + }, + "ImageBuilderStateChangeReason": { + "base": null, + "refs": { + "ImageBuilder$StateChangeReason": null + } + }, + "ImageBuilderStateChangeReasonCode": { + "base": null, + "refs": { + "ImageBuilderStateChangeReason$Code": null + } + }, "ImageList": { "base": null, "refs": { - "DescribeImagesResult$Images": "

The list of images.

" + "DescribeImagesResult$Images": "

Information about the images.

" } }, "ImageState": { "base": null, "refs": { - "Image$State": "

The image starts in the PENDING state. If image creation succeeds, it moves to AVAILABLE. If image creation fails, it moves to FAILED.

" + "Image$State": "

The image starts in the PENDING state. If image creation succeeds, the state is AVAILABLE. If image creation fails, the state is FAILED.

" } }, "ImageStateChangeReason": { - "base": "

The reason why the last state change occurred.

", + "base": "

Describes the reason why the last state change occurred.

", "refs": { "Image$StateChangeReason": "

The reason why the last state change occurred.

" } @@ -400,7 +508,7 @@ "ImageStateChangeReasonCode": { "base": null, "refs": { - "ImageStateChangeReason$Code": "

The state change reason code of the image.

" + "ImageStateChangeReason$Code": "

The state change reason code.

" } }, "IncompatibleImageException": { @@ -414,16 +522,17 @@ "ComputeCapacity$DesiredInstances": "

The desired number of streaming instances.

", "ComputeCapacityStatus$Desired": "

The desired number of streaming instances.

", "ComputeCapacityStatus$Running": "

The total number of simultaneous streaming instances that are running.

", - "ComputeCapacityStatus$InUse": "

The number of instances that are being used for streaming.

", + "ComputeCapacityStatus$InUse": "

The number of instances in use for streaming.

", "ComputeCapacityStatus$Available": "

The number of currently available instances that can be used to stream sessions.

", - "CreateFleetRequest$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

", - "CreateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

", - "DescribeDirectoryConfigsRequest$MaxResults": "

The size of each page of results.

", - "DescribeSessionsRequest$Limit": "

The size of each page of results. The default value is 20 and the maximum supported value is 50.

", - "Fleet$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600.

", - "Fleet$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

", - "UpdateFleetRequest$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

", - "UpdateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

" + "CreateFleetRequest$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "CreateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

", + "DescribeDirectoryConfigsRequest$MaxResults": "

The maximum size of each page of results.

", + "DescribeImageBuildersRequest$MaxResults": null, + "DescribeSessionsRequest$Limit": "

The size of each page of results. The default value is 20 and the maximum value is 50.

", + "Fleet$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "Fleet$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

", + "UpdateFleetRequest$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "UpdateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

" } }, "InvalidParameterCombinationException": { @@ -447,7 +556,7 @@ } }, "ListAssociatedFleetsResult": { - "base": "

The response from a successful operation.

", + "base": null, "refs": { } }, @@ -457,14 +566,15 @@ } }, "ListAssociatedStacksResult": { - "base": "

The response from a successful operation.

", + "base": null, "refs": { } }, "Long": { "base": null, "refs": { - "CreateStreamingURLRequest$Validity": "

The duration up to which the URL returned by this action is valid. The input can be any numeric value in seconds between 1 and 604800 seconds.

" + "CreateImageBuilderStreamingURLRequest$Validity": null, + "CreateStreamingURLRequest$Validity": "

The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds.

" } }, "Metadata": { @@ -476,7 +586,10 @@ "Name": { "base": null, "refs": { - "CreateFleetRequest$Name": "

A unique identifier for the fleet.

" + "CreateFleetRequest$Name": "

A unique name for the fleet.

", + "CreateImageBuilderRequest$Name": null, + "DeleteImageBuilderRequest$Name": null, + "DeleteImageRequest$Name": null } }, "OperationNotPermittedException": { @@ -487,22 +600,23 @@ "OrganizationalUnitDistinguishedName": { "base": null, "refs": { - "DomainJoinInfo$OrganizationalUnitDistinguishedName": "

The distinguished name of the organizational unit to place the computer account in.

", + "DomainJoinInfo$OrganizationalUnitDistinguishedName": "

The distinguished name of the organizational unit for computer accounts.

", "OrganizationalUnitDistinguishedNamesList$member": null } }, "OrganizationalUnitDistinguishedNamesList": { "base": null, "refs": { - "CreateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The list of the distinguished names of organizational units to place computer accounts in.

", - "DirectoryConfig$OrganizationalUnitDistinguishedNames": "

The list of the distinguished names of organizational units in which to place computer accounts.

", - "UpdateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The list of the distinguished names of organizational units to place computer accounts in.

" + "CreateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

", + "DirectoryConfig$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

", + "UpdateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

" } }, "PlatformType": { "base": null, "refs": { - "Image$Platform": "

The operating system platform of the image.

" + "Image$Platform": "

The operating system platform of the image.

", + "ImageBuilder$Platform": null } }, "ResourceAlreadyExistsException": { @@ -510,10 +624,22 @@ "refs": { } }, + "ResourceError": { + "base": null, + "refs": { + "ResourceErrors$member": null + } + }, + "ResourceErrors": { + "base": null, + "refs": { + "ImageBuilder$ImageBuilderErrors": null + } + }, "ResourceIdentifier": { "base": "

The ARN of the resource.

", "refs": { - "StorageConnector$ResourceIdentifier": "

The ARN associated with the storage connector.

" + "StorageConnector$ResourceIdentifier": "

The ARN of the storage connector.

" } }, "ResourceInUseException": { @@ -532,21 +658,21 @@ } }, "SecurityGroupIdList": { - "base": "

A list of security groups.

", + "base": "

The security group IDs.

", "refs": { - "VpcConfig$SecurityGroupIds": "

Security groups associated with the fleet.

" + "VpcConfig$SecurityGroupIds": "

The security groups for the fleet.

" } }, "ServiceAccountCredentials": { - "base": "

The AccountName and AccountPassword of the service account, to be used by the streaming instance to connect to the directory.

", + "base": "

Describes the credentials for the service account used by the streaming instance to connect to the directory.

", "refs": { - "CreateDirectoryConfigRequest$ServiceAccountCredentials": "

The AccountName and AccountPassword values for the service account, which are used by the streaming instance to connect to the directory.

", - "DirectoryConfig$ServiceAccountCredentials": "

The AccountName and AccountPassword of the service account, to be used by the streaming instance to connect to the directory.

", - "UpdateDirectoryConfigRequest$ServiceAccountCredentials": "

The AccountName and AccountPassword values for the service account, which are used by the streaming instance to connect to the directory

" + "CreateDirectoryConfigRequest$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

", + "DirectoryConfig$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

", + "UpdateDirectoryConfigRequest$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

" } }, "Session": { - "base": "

Contains the parameters for a streaming session.

", + "base": "

Describes a streaming session.

", "refs": { "SessionList$member": null } @@ -554,7 +680,7 @@ "SessionList": { "base": "

List of sessions.

", "refs": { - "DescribeSessionsResult$Sessions": "

The list of streaming sessions.

" + "DescribeSessionsResult$Sessions": "

Information about the streaming sessions.

" } }, "SessionState": { @@ -564,15 +690,15 @@ } }, "Stack": { - "base": "

Details about a stack.

", + "base": "

Describes a stack.

", "refs": { - "CreateStackResult$Stack": "

The details for the created stack.

", + "CreateStackResult$Stack": "

Information about the stack.

", "StackList$member": null, - "UpdateStackResult$Stack": "

A list of stack details.

" + "UpdateStackResult$Stack": "

Information about the stack.

" } }, "StackError": { - "base": "

Contains the parameters for a stack error.

", + "base": "

Describes a stack error.

", "refs": { "StackErrors$member": null } @@ -580,19 +706,19 @@ "StackErrorCode": { "base": null, "refs": { - "StackError$ErrorCode": "

The error code of a stack error.

" + "StackError$ErrorCode": "

The error code.

" } }, "StackErrors": { - "base": "

A list of stack errors.

", + "base": "

The stack errors.

", "refs": { - "Stack$StackErrors": "

The list of errors associated with the stack.

" + "Stack$StackErrors": "

The errors for the stack.

" } }, "StackList": { - "base": "

A list of stacks.

", + "base": "

The stacks.

", "refs": { - "DescribeStacksResult$Stacks": "

The list of stack details.

" + "DescribeStacksResult$Stacks": "

Information about the stacks.

" } }, "StartFleetRequest": { @@ -605,6 +731,16 @@ "refs": { } }, + "StartImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "StartImageBuilderResult": { + "base": null, + "refs": { + } + }, "StopFleetRequest": { "base": null, "refs": { @@ -615,126 +751,154 @@ "refs": { } }, + "StopImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "StopImageBuilderResult": { + "base": null, + "refs": { + } + }, "StorageConnector": { - "base": "

Contains the parameters for a storage connector.

", + "base": "

Describes a storage connector.

", "refs": { "StorageConnectorList$member": null } }, "StorageConnectorList": { - "base": "

A list of storage connectors.

", + "base": "

The storage connectors.

", "refs": { - "CreateStackRequest$StorageConnectors": "

The storage connectors to be enabled for the stack.

", - "Stack$StorageConnectors": "

The storage connectors to be enabled for the stack.

", - "UpdateStackRequest$StorageConnectors": "

The storage connectors to be enabled for the stack.

" + "CreateStackRequest$StorageConnectors": "

The storage connectors to enable.

", + "Stack$StorageConnectors": "

The storage connectors to enable.

", + "UpdateStackRequest$StorageConnectors": "

The storage connectors to enable.

" } }, "StorageConnectorType": { - "base": "

The type of storage connector. The possible values include: HOMEFOLDERS.

", + "base": "

The type of storage connector.

", "refs": { - "StorageConnector$ConnectorType": "

The type of storage connector. The possible values include: HOMEFOLDERS.

" + "StorageConnector$ConnectorType": "

The type of storage connector.

" } }, "StreamingUrlUserId": { "base": null, "refs": { - "CreateStreamingURLRequest$UserId": "

A unique user ID for whom the URL is generated.

" + "CreateStreamingURLRequest$UserId": "

The ID of the user.

" } }, "String": { "base": null, "refs": { - "Application$Name": "

The unique identifier for the application.

", - "Application$DisplayName": "

The name of the application shown to the end users.

", - "Application$IconURL": "

The URL for the application icon. This URL may be time-limited.

", + "Application$Name": "

The name of the application.

", + "Application$DisplayName": "

The application name displayed to end users.

", + "Application$IconURL": "

The URL for the application icon. This URL might be time-limited.

", "Application$LaunchPath": "

The path to the application executable in the instance.

", - "Application$LaunchParameters": "

A list of arguments that are passed to the application at launch.

", - "AssociateFleetRequest$FleetName": "

The name of the fleet to associate.

", - "AssociateFleetRequest$StackName": "

The name of the stack to which the fleet is associated.

", - "CreateFleetRequest$ImageName": "

Unique name of the image used by the fleet.

", - "CreateFleetRequest$InstanceType": "

The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. Available instance types are:

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

  • stream.graphics-desktop.2xlarge

", - "CreateStackRequest$Name": "

The unique identifier for this stack.

", - "CreateStreamingURLRequest$StackName": "

The stack for which the URL is generated.

", - "CreateStreamingURLRequest$FleetName": "

The fleet for which the URL is generated.

", + "Application$LaunchParameters": "

The arguments that are passed to the application at launch.

", + "AssociateFleetRequest$FleetName": "

The name of the fleet.

", + "AssociateFleetRequest$StackName": "

The name of the stack.

", + "CreateFleetRequest$ImageName": "

The name of the image used by the fleet.

", + "CreateFleetRequest$InstanceType": "

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

", + "CreateImageBuilderRequest$ImageName": null, + "CreateImageBuilderRequest$InstanceType": null, + "CreateImageBuilderStreamingURLRequest$Name": null, + "CreateImageBuilderStreamingURLResult$StreamingURL": null, + "CreateStackRequest$Name": "

The name of the stack.

", + "CreateStreamingURLRequest$StackName": "

The name of the stack.

", + "CreateStreamingURLRequest$FleetName": "

The name of the fleet.

", "CreateStreamingURLRequest$ApplicationId": "

The ID of the application that must be launched after the session starts.

", - "CreateStreamingURLRequest$SessionContext": "

The sessionContext of the streaming URL.

", + "CreateStreamingURLRequest$SessionContext": "

The session context of the streaming URL.

", "CreateStreamingURLResult$StreamingURL": "

The URL to start the AppStream 2.0 streaming session.

", - "DeleteFleetRequest$Name": "

The name of the fleet to be deleted.

", - "DeleteStackRequest$Name": "

The name of the stack to delete.

", - "DescribeDirectoryConfigsRequest$NextToken": "

The DescribeDirectoryConfigsResult.NextToken from a previous call to DescribeDirectoryConfigs. If this is the first call, pass null.

", - "DescribeDirectoryConfigsResult$NextToken": "

If not null, more results are available. To retrieve the next set of items, pass this value for the NextToken parameter in a subsequent call to DescribeDirectoryConfigs.

", + "DeleteFleetRequest$Name": "

The name of the fleet.

", + "DeleteStackRequest$Name": "

The name of the stack.

", + "DescribeDirectoryConfigsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", + "DescribeDirectoryConfigsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "DescribeFleetsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeFleetsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "DescribeSessionsRequest$StackName": "

The name of the stack for which to list sessions.

", - "DescribeSessionsRequest$FleetName": "

The name of the fleet for which to list sessions.

", + "DescribeImageBuildersRequest$NextToken": null, + "DescribeImageBuildersResult$NextToken": null, + "DescribeSessionsRequest$StackName": "

The name of the stack.

", + "DescribeSessionsRequest$FleetName": "

The name of the fleet.

", "DescribeSessionsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeSessionsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "DescribeStacksRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeStacksResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "DisassociateFleetRequest$FleetName": "

The name of the fleet to disassociate.

", - "DisassociateFleetRequest$StackName": "

The name of the stack with which the fleet is associated.

", - "ExpireSessionRequest$SessionId": "

The unique identifier of the streaming session to be stopped.

", + "DisassociateFleetRequest$FleetName": "

The name of the fleet.

", + "DisassociateFleetRequest$StackName": "

The name of the stack.

", + "ExpireSessionRequest$SessionId": "

The ID of the streaming session.

", "Fleet$Name": "

The name of the fleet.

", - "Fleet$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "Fleet$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", + "Fleet$DisplayName": "

The fleet name displayed to end users.

", + "Fleet$Description": "

The description displayed to end users.

", "Fleet$ImageName": "

The image used by the fleet.

", - "Fleet$InstanceType": "

The instance type of compute resources for the fleet. The fleet instances are launched from this instance type.

", - "FleetError$ErrorMessage": "

The error message generated when the fleet has errors.

", - "Image$Name": "

The unique identifier for the image.

", - "Image$DisplayName": "

The display name for the image.

", - "Image$Description": "

A meaningful description for the image.

", - "ImageStateChangeReason$Message": "

The state change reason message to the end user.

", - "ListAssociatedFleetsRequest$StackName": "

The name of the stack whose associated fleets are listed.

", + "Fleet$InstanceType": "

The instance type to use when launching fleet instances.

", + "FleetError$ErrorMessage": "

The error message.

", + "Image$Name": "

The name of the image.

", + "Image$DisplayName": "

The image name displayed to end users.

", + "Image$Description": "

The description displayed to end users.

", + "ImageBuilder$Name": null, + "ImageBuilder$Description": null, + "ImageBuilder$DisplayName": null, + "ImageBuilder$InstanceType": null, + "ImageBuilderStateChangeReason$Message": null, + "ImageStateChangeReason$Message": "

The state change reason message.

", + "ListAssociatedFleetsRequest$StackName": "

The name of the stack.

", "ListAssociatedFleetsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "ListAssociatedFleetsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "ListAssociatedStacksRequest$FleetName": "

The name of the fleet whose associated stacks are listed.

", + "ListAssociatedStacksRequest$FleetName": "

The name of the fleet.

", "ListAssociatedStacksRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "ListAssociatedStacksResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "Metadata$key": null, "Metadata$value": null, + "ResourceError$ErrorMessage": null, "SecurityGroupIdList$member": null, - "Session$Id": "

The unique ID for a streaming session.

", - "Session$StackName": "

The name of the stack for which the streaming session was created.

", - "Session$FleetName": "

The name of the fleet for which the streaming session was created.

", - "Stack$Name": "

The unique identifier of the stack.

", - "Stack$Description": "

A meaningful description for the stack.

", - "Stack$DisplayName": "

A display name for the stack.

", - "StackError$ErrorMessage": "

The error message of a stack error.

", - "StartFleetRequest$Name": "

The name of the fleet to start.

", - "StopFleetRequest$Name": "

The name of the fleet to stop.

", + "Session$Id": "

The ID of the streaming session.

", + "Session$StackName": "

The name of the stack for the streaming session.

", + "Session$FleetName": "

The name of the fleet for the streaming session.

", + "Stack$Name": "

The name of the stack.

", + "Stack$Description": "

The description displayed to end users.

", + "Stack$DisplayName": "

The stack name displayed to end users.

", + "StackError$ErrorMessage": "

The error message.

", + "StartFleetRequest$Name": "

The name of the fleet.

", + "StartImageBuilderRequest$Name": null, + "StopFleetRequest$Name": "

The name of the fleet.

", + "StopImageBuilderRequest$Name": null, "StringList$member": null, "SubnetIdList$member": null, - "UpdateFleetRequest$ImageName": "

The image name from which a fleet is created.

", - "UpdateFleetRequest$Name": "

The name of the fleet.

", - "UpdateFleetRequest$InstanceType": "

The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. Available instance types are:

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

  • stream.graphics-desktop.2xlarge

", - "UpdateStackRequest$Name": "

The name of the stack to update.

" + "UpdateFleetRequest$ImageName": "

The name of the image used by the fleet.

", + "UpdateFleetRequest$Name": "

A unique name for the fleet.

", + "UpdateFleetRequest$InstanceType": "

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

", + "UpdateStackRequest$Name": "

The name of the stack.

" } }, "StringList": { "base": null, "refs": { - "DescribeFleetsRequest$Names": "

The fleet names to describe. Use null to describe all the fleets for the AWS account.

", - "DescribeImagesRequest$Names": "

A specific list of images to describe.

", - "DescribeStacksRequest$Names": "

The stack names to describe. Use null to describe all the stacks for the AWS account.

", - "ListAssociatedFleetsResult$Names": "

The names of associated fleets.

", - "ListAssociatedStacksResult$Names": "

The names of associated stacks.

" + "DescribeFleetsRequest$Names": "

The names of the fleets to describe.

", + "DescribeImageBuildersRequest$Names": null, + "DescribeImagesRequest$Names": "

The names of the images to describe.

", + "DescribeStacksRequest$Names": "

The names of the stacks to describe.

", + "ListAssociatedFleetsResult$Names": "

The names of the fleets.

", + "ListAssociatedStacksResult$Names": "

The names of the stacks.

" } }, "SubnetIdList": { - "base": "

A list of subnet IDs.

", + "base": "

The subnet IDs.

", "refs": { - "VpcConfig$SubnetIds": "

The list of subnets to which a network interface is established from the fleet instance.

" + "VpcConfig$SubnetIds": "

The subnets to which a network interface is established from the fleet instance.

" } }, "Timestamp": { "base": null, "refs": { - "CreateStreamingURLResult$Expires": "

Elapsed seconds after the Unix epoch, when this URL expires.

", - "DirectoryConfig$CreatedTime": "

The time stamp when the directory configuration was created within AppStream 2.0.

", - "Fleet$CreatedTime": "

The time at which the fleet was created.

", - "Image$CreatedTime": "

The time stamp when the image was created.

", - "Image$PublicBaseImageReleasedDate": "

The AWS release date of the public base image. For private images, this date is the release date of the base image from which the image was created.

", - "Stack$CreatedTime": "

The time stamp when the stack was created.

" + "CreateImageBuilderStreamingURLResult$Expires": null, + "CreateStreamingURLResult$Expires": "

The elapsed time, in seconds after the Unix epoch, when this URL expires.

", + "DirectoryConfig$CreatedTime": "

The time the directory configuration was created.

", + "Fleet$CreatedTime": "

The time the fleet was created.

", + "Image$CreatedTime": "

The time the image was created.

", + "Image$PublicBaseImageReleasedDate": "

The release date of the public base image. For private images, this date is the release date of the base image from which the image was created.

", + "ImageBuilder$CreatedTime": null, + "ResourceError$ErrorTimestamp": null, + "Stack$CreatedTime": "

The time the stack was created.

" } }, "UpdateDirectoryConfigRequest": { @@ -770,21 +934,23 @@ "UserId": { "base": null, "refs": { - "DescribeSessionsRequest$UserId": "

The user for whom to list sessions. Use null to describe all the sessions for the stack and fleet.

", + "DescribeSessionsRequest$UserId": "

The user ID.

", "Session$UserId": "

The identifier of the user for whom the session was created.

" } }, "VisibilityType": { "base": null, "refs": { - "Image$Visibility": "

The visibility of an image to the user; images can be public or private.

" + "Image$Visibility": "

Indicates whether the image is public or private.

" } }, "VpcConfig": { - "base": "

VPC configuration information.

", + "base": "

Describes VPC configuration information.

", "refs": { "CreateFleetRequest$VpcConfig": "

The VPC configuration for the fleet.

", + "CreateImageBuilderRequest$VpcConfig": null, "Fleet$VpcConfig": "

The VPC configuration for the fleet.

", + "ImageBuilder$VpcConfig": null, "UpdateFleetRequest$VpcConfig": "

The VPC configuration for the fleet.

" } } diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/budgets/2016-10-20/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/budgets/2016-10-20/api-2.json index e582bdc3..12a939c1 100755 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/budgets/2016-10-20/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/budgets/2016-10-20/api-2.json @@ -188,7 +188,8 @@ "errors":[ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, - {"shape":"NotFoundException"} + {"shape":"NotFoundException"}, + {"shape":"DuplicateRecordException"} ] }, "UpdateSubscriber":{ @@ -202,7 +203,8 @@ "errors":[ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, - {"shape":"NotFoundException"} + {"shape":"NotFoundException"}, + {"shape":"DuplicateRecordException"} ] } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/api-2.json index 06789ead..a0eb8ef7 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/api-2.json @@ -549,6 +549,18 @@ {"shape":"InvalidOperationException"} ] }, + "UpdateTerminationProtection":{ + "name":"UpdateTerminationProtection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTerminationProtectionInput"}, + "output":{ + "shape":"UpdateTerminationProtectionOutput", + "resultWrapper":"UpdateTerminationProtectionResult" + } + }, "ValidateTemplate":{ "name":"ValidateTemplate", "http":{ @@ -809,7 +821,8 @@ "StackPolicyBody":{"shape":"StackPolicyBody"}, "StackPolicyURL":{"shape":"StackPolicyURL"}, "Tags":{"shape":"Tags"}, - "ClientRequestToken":{"shape":"ClientRequestToken"} + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"} } }, "CreateStackInstancesInput":{ @@ -1096,6 +1109,7 @@ "min":1 }, "DisableRollback":{"type":"boolean"}, + "EnableTerminationProtection":{"type":"boolean"}, "EstimateTemplateCostInput":{ "type":"structure", "members":{ @@ -1734,6 +1748,7 @@ "Description":{"shape":"Description"}, "Parameters":{"shape":"Parameters"}, "CreationTime":{"shape":"CreationTime"}, + "DeletionTime":{"shape":"DeletionTime"}, "LastUpdatedTime":{"shape":"LastUpdatedTime"}, "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "StackStatus":{"shape":"StackStatus"}, @@ -1744,7 +1759,10 @@ "Capabilities":{"shape":"Capabilities"}, "Outputs":{"shape":"Outputs"}, "RoleARN":{"shape":"RoleARN"}, - "Tags":{"shape":"Tags"} + "Tags":{"shape":"Tags"}, + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"}, + "ParentId":{"shape":"StackId"}, + "RootId":{"shape":"StackId"} } }, "StackEvent":{ @@ -2098,7 +2116,9 @@ "LastUpdatedTime":{"shape":"LastUpdatedTime"}, "DeletionTime":{"shape":"DeletionTime"}, "StackStatus":{"shape":"StackStatus"}, - "StackStatusReason":{"shape":"StackStatusReason"} + "StackStatusReason":{"shape":"StackStatusReason"}, + "ParentId":{"shape":"StackId"}, + "RootId":{"shape":"StackId"} } }, "Stacks":{ @@ -2267,6 +2287,23 @@ "OperationId":{"shape":"ClientRequestToken"} } }, + "UpdateTerminationProtectionInput":{ + "type":"structure", + "required":[ + "EnableTerminationProtection", + "StackName" + ], + "members":{ + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"}, + "StackName":{"shape":"StackNameOrId"} + } + }, + "UpdateTerminationProtectionOutput":{ + "type":"structure", + "members":{ + "StackId":{"shape":"StackId"} + } + }, "Url":{"type":"string"}, "UsePreviousTemplate":{"type":"boolean"}, "UsePreviousValue":{"type":"boolean"}, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/docs-2.json index 6d5e0b39..0b7c5a7d 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudformation/2010-05-15/docs-2.json @@ -40,6 +40,7 @@ "StopStackSetOperation": "

Stops an in-progress operation on a stack set and its associated stack instances.

", "UpdateStack": "

Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action.

To get a copy of the template for an existing stack, you can use the GetTemplate action.

For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack.

", "UpdateStackSet": "

Updates the stack set and all associated stack instances.

Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set.

", + "UpdateTerminationProtection": "

Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.

", "ValidateTemplate": "

Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS CloudFormation checks if the template is valid YAML. If both these checks fail, AWS CloudFormation returns a template validation error.

" }, "shapes": { @@ -378,6 +379,7 @@ "DeletionTime": { "base": null, "refs": { + "Stack$DeletionTime": "

The time the stack was deleted.

", "StackSummary$DeletionTime": "

The time the stack was deleted.

" } }, @@ -498,6 +500,14 @@ "Stack$DisableRollback": "

Boolean to enable or disable rollback on stack creation failures:

  • true: disable rollback

  • false: enable rollback

" } }, + "EnableTerminationProtection": { + "base": null, + "refs": { + "CreateStackInput$EnableTerminationProtection": "

Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. Termination protection is disabled on stacks by default.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.

", + "Stack$EnableTerminationProtection": "

Whether termination protection is enabled for the stack.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide.

", + "UpdateTerminationProtectionInput$EnableTerminationProtection": "

Whether to enable termination protection on the specified stack.

" + } + }, "EstimateTemplateCostInput": { "base": "

The input for an EstimateTemplateCost action.

", "refs": { @@ -757,13 +767,13 @@ "MaxConcurrentCount": { "base": null, "refs": { - "StackSetOperationPreferences$MaxConcurrentCount": "

The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of FailureToleranceCountMaxConcurrentCount is at most one more than the FailureToleranceCount .

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" + "StackSetOperationPreferences$MaxConcurrentCount": "

The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of FailureToleranceCountMaxConcurrentCount is at most one more than the FailureToleranceCount .

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" } }, "MaxConcurrentPercentage": { "base": null, "refs": { - "StackSetOperationPreferences$MaxConcurrentPercentage": "

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" + "StackSetOperationPreferences$MaxConcurrentPercentage": "

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" } }, "MaxResults": { @@ -1201,13 +1211,18 @@ "DescribeChangeSetOutput$StackId": "

The ARN of the stack that is associated with the change set.

", "Export$ExportingStackId": "

The stack that contains the exported output name and value.

", "Stack$StackId": "

Unique identifier of the stack.

", + "Stack$ParentId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "Stack$RootId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", "StackEvent$StackId": "

The unique ID name of the instance of the stack.

", "StackInstance$StackId": "

The ID of the stack instance.

", "StackInstanceSummary$StackId": "

The ID of the stack instance.

", "StackResource$StackId": "

Unique identifier of the stack.

", "StackResourceDetail$StackId": "

Unique identifier of the stack.

", "StackSummary$StackId": "

Unique stack identifier.

", - "UpdateStackOutput$StackId": "

Unique identifier of the stack.

" + "StackSummary$ParentId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "StackSummary$RootId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "UpdateStackOutput$StackId": "

Unique identifier of the stack.

", + "UpdateTerminationProtectionOutput$StackId": "

The unique ID of the stack.

" } }, "StackInstance": { @@ -1275,7 +1290,8 @@ "ExecuteChangeSetInput$StackName": "

If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute.

", "GetTemplateSummaryInput$StackName": "

The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

", "ListChangeSetsInput$StackName": "

The name or the Amazon Resource Name (ARN) of the stack for which you want to list change sets.

", - "SignalResourceInput$StackName": "

The stack name or unique stack ID that includes the resource that you want to signal.

" + "SignalResourceInput$StackName": "

The stack name or unique stack ID that includes the resource that you want to signal.

", + "UpdateTerminationProtectionInput$StackName": "

The name or unique ID of the stack for which you want to set termination protection.

" } }, "StackPolicyBody": { @@ -1676,6 +1692,16 @@ "refs": { } }, + "UpdateTerminationProtectionInput": { + "base": null, + "refs": { + } + }, + "UpdateTerminationProtectionOutput": { + "base": null, + "refs": { + } + }, "Url": { "base": null, "refs": { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/docs-2.json index 2a4f8848..ecdef95e 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/docs-2.json @@ -1,10 +1,10 @@ { "version": "2.0", - "service": "AWS CloudHSM Service", + "service": "AWS CloudHSM Service

This is the reference for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs and the AWS CloudHSM Classic User Guide.

For more information about AWS CloudHSM, see AWS CloudHSM and the AWS CloudHSM User Guide.

", "operations": { "AddTagsToResource": "

Adds or overwrites one or more tags for the specified AWS CloudHSM resource.

Each tag consists of a key and a value. Tag keys must be unique to each resource.

", "CreateHapg": "

Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

", - "CreateHsm": "

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING.

", + "CreateHsm": "

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING.

", "CreateLunaClient": "

Creates an HSM client.

", "DeleteHapg": "

Deletes a high-availability partition group.

", "DeleteHsm": "

Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

", @@ -14,9 +14,9 @@ "DescribeLunaClient": "

Retrieves information about an HSM client.

", "GetConfig": "

Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

", "ListAvailableZones": "

Lists the Availability Zones that have available AWS CloudHSM capacity.

", - "ListHapgs": "

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

", - "ListHsms": "

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

", - "ListLunaClients": "

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

", + "ListHapgs": "

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

", + "ListHsms": "

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

", + "ListLunaClients": "

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

", "ListTagsForResource": "

Returns a list of all tags for the specified AWS CloudHSM resource.

", "ModifyHapg": "

Modifies an existing high-availability partition group.

", "ModifyHsm": "

Modifies an HSM.

This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window.

", @@ -132,12 +132,12 @@ } }, "CreateHsmRequest": { - "base": "

Contains the inputs for the CreateHsm operation.

", + "base": "

Contains the inputs for the CreateHsm operation.

", "refs": { } }, "CreateHsmResponse": { - "base": "

Contains the output of the CreateHsm operation.

", + "base": "

Contains the output of the CreateHsm operation.

", "refs": { } }, @@ -192,7 +192,7 @@ } }, "DescribeHsmRequest": { - "base": "

Contains the inputs for the DescribeHsm operation.

", + "base": "

Contains the inputs for the DescribeHsm operation.

", "refs": { } }, @@ -220,7 +220,7 @@ "ExternalId": { "base": null, "refs": { - "CreateHsmRequest$ExternalId": "

The external ID from IamRoleArn, if present.

", + "CreateHsmRequest$ExternalId": "

The external ID from IamRoleArn, if present.

", "ModifyHsmRequest$ExternalId": "

The new external ID.

" } }, @@ -258,7 +258,7 @@ "refs": { "CreateHsmResponse$HsmArn": "

The ARN of the HSM.

", "DeleteHsmRequest$HsmArn": "

The ARN of the HSM to delete.

", - "DescribeHsmRequest$HsmArn": "

The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

", + "DescribeHsmRequest$HsmArn": "

The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

", "DescribeHsmResponse$HsmArn": "

The ARN of the HSM.

", "HsmList$member": null, "ModifyHsmRequest$HsmArn": "

The ARN of the HSM to modify.

", @@ -268,16 +268,16 @@ "HsmList": { "base": "

Contains a list of ARNs that identify the HSMs.

", "refs": { - "DescribeHapgResponse$HsmsLastActionFailed": null, - "DescribeHapgResponse$HsmsPendingDeletion": null, - "DescribeHapgResponse$HsmsPendingRegistration": null, + "DescribeHapgResponse$HsmsLastActionFailed": "

", + "DescribeHapgResponse$HsmsPendingDeletion": "

", + "DescribeHapgResponse$HsmsPendingRegistration": "

", "ListHsmsResponse$HsmList": "

The list of ARNs that identify the HSMs.

" } }, "HsmSerialNumber": { "base": null, "refs": { - "DescribeHsmRequest$HsmSerialNumber": "

The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

", + "DescribeHsmRequest$HsmSerialNumber": "

The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

", "DescribeHsmResponse$SerialNumber": "

The serial number of the HSM.

" } }, @@ -345,7 +345,7 @@ } }, "ListHsmsResponse": { - "base": "

Contains the output of the ListHsms operation.

", + "base": "

Contains the output of the ListHsms operation.

", "refs": { } }, @@ -402,12 +402,12 @@ "PaginationToken": { "base": null, "refs": { - "ListHapgsRequest$NextToken": "

The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

", - "ListHapgsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

", - "ListHsmsRequest$NextToken": "

The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

", - "ListHsmsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

", - "ListLunaClientsRequest$NextToken": "

The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

", - "ListLunaClientsResponse$NextToken": "

If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

" + "ListHapgsRequest$NextToken": "

The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

", + "ListHapgsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

", + "ListHsmsRequest$NextToken": "

The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

", + "ListHsmsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

", + "ListLunaClientsRequest$NextToken": "

The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

", + "ListLunaClientsResponse$NextToken": "

If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

" } }, "PartitionArn": { @@ -484,7 +484,7 @@ } }, "SubscriptionType": { - "base": "

Specifies the type of subscription for the HSM.

  • PRODUCTION - The HSM is being used in a production environment.
  • TRIAL - The HSM is being used in a product trial.
", + "base": "

Specifies the type of subscription for the HSM.

  • PRODUCTION - The HSM is being used in a production environment.

  • TRIAL - The HSM is being used in a product trial.

", "refs": { "CreateHsmRequest$SubscriptionType": null, "DescribeHsmResponse$SubscriptionType": null diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/paginators-1.json b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/paginators-1.json new file mode 100644 index 00000000..5677bd8e --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/cloudhsm/2014-05-30/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/api-2.json index 125d6178..0bfe4b84 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/api-2.json @@ -61,6 +61,21 @@ {"shape":"AccountLimitExceededException"} ] }, + "CreateWebhook":{ + "name":"CreateWebhook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWebhookInput"}, + "output":{"shape":"CreateWebhookOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OAuthProviderException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DeleteProject":{ "name":"DeleteProject", "http":{ @@ -73,6 +88,20 @@ {"shape":"InvalidInputException"} ] }, + "DeleteWebhook":{ + "name":"DeleteWebhook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWebhookInput"}, + "output":{"shape":"DeleteWebhookOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OAuthProviderException"} + ] + }, "ListBuilds":{ "name":"ListBuilds", "http":{ @@ -346,6 +375,19 @@ "project":{"shape":"Project"} } }, + "CreateWebhookInput":{ + "type":"structure", + "required":["projectName"], + "members":{ + "projectName":{"shape":"ProjectName"} + } + }, + "CreateWebhookOutput":{ + "type":"structure", + "members":{ + "webhook":{"shape":"Webhook"} + } + }, "DeleteProjectInput":{ "type":"structure", "required":["name"], @@ -358,6 +400,18 @@ "members":{ } }, + "DeleteWebhookInput":{ + "type":"structure", + "required":["projectName"], + "members":{ + "projectName":{"shape":"ProjectName"} + } + }, + "DeleteWebhookOutput":{ + "type":"structure", + "members":{ + } + }, "EnvironmentImage":{ "type":"structure", "members":{ @@ -512,6 +566,12 @@ "type":"string", "min":1 }, + "OAuthProviderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "PhaseContext":{ "type":"structure", "members":{ @@ -545,7 +605,8 @@ "encryptionKey":{"shape":"NonEmptyString"}, "tags":{"shape":"TagList"}, "created":{"shape":"Timestamp"}, - "lastModified":{"shape":"Timestamp"} + "lastModified":{"shape":"Timestamp"}, + "webhook":{"shape":"Webhook"} } }, "ProjectArtifacts":{ @@ -744,6 +805,12 @@ "min":1, "pattern":"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=@+\\\\-]*)$" }, + "Webhook":{ + "type":"structure", + "members":{ + "url":{"shape":"NonEmptyString"} + } + }, "WrapperBoolean":{"type":"boolean"}, "WrapperInt":{"type":"integer"}, "WrapperLong":{"type":"long"} diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/docs-2.json index 1164a65a..f47b06e7 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/codebuild/2016-10-06/docs-2.json @@ -1,12 +1,14 @@ { "version": "2.0", - "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apach Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

  • BatchDeleteBuilds: Deletes one or more builds.

  • BatchGetProjects: Gets information about one or more build projects. A build project defines how AWS CodeBuild will run a build. This includes information such as where to get the source code to build, the build environment to use, the build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that AWS CodeBuild will use to run a build. Also, you can add tags to build projects to help manage your resources and costs.

  • CreateProject: Creates a build project.

  • DeleteProject: Deletes a build project.

  • ListProjects: Gets a list of build project names, with each build project name representing a single build project.

  • UpdateProject: Changes the settings of an existing build project.

  • BatchGetBuilds: Gets information about one or more builds.

  • ListBuilds: Gets a list of build IDs, with each build ID representing a single build.

  • ListBuildsForProject: Gets a list of build IDs for the specified build project, with each build ID representing a single build.

  • StartBuild: Starts running a build.

  • StopBuild: Attempts to stop running a build.

  • ListCuratedEnvironmentImages: Gets information about Docker images that are managed by AWS CodeBuild.

", + "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

  • BatchDeleteBuilds: Deletes one or more builds.

  • BatchGetProjects: Gets information about one or more build projects. A build project defines how AWS CodeBuild will run a build. This includes information such as where to get the source code to build, the build environment to use, the build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that AWS CodeBuild will use to run a build. Also, you can add tags to build projects to help manage your resources and costs.

  • CreateProject: Creates a build project.

  • CreateWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.

  • DeleteProject: Deletes a build project.

  • DeleteWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository.

  • ListProjects: Gets a list of build project names, with each build project name representing a single build project.

  • UpdateProject: Changes the settings of an existing build project.

  • BatchGetBuilds: Gets information about one or more builds.

  • ListBuilds: Gets a list of build IDs, with each build ID representing a single build.

  • ListBuildsForProject: Gets a list of build IDs for the specified build project, with each build ID representing a single build.

  • StartBuild: Starts running a build.

  • StopBuild: Attempts to stop running a build.

  • ListCuratedEnvironmentImages: Gets information about Docker images that are managed by AWS CodeBuild.

", "operations": { "BatchDeleteBuilds": "

Deletes one or more builds.

", "BatchGetBuilds": "

Gets information about builds.

", "BatchGetProjects": "

Gets information about build projects.

", "CreateProject": "

Creates a build project.

", + "CreateWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.

If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds will be created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you will be billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 9 in Change a Build Project’s Settings.

", "DeleteProject": "

Deletes a build project.

", + "DeleteWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository.

", "ListBuilds": "

Gets a list of build IDs, with each build ID representing a single build.

", "ListBuildsForProject": "

Gets a list of build IDs for the specified build project, with each build ID representing a single build.

", "ListCuratedEnvironmentImages": "

Gets information about Docker images that are managed by AWS CodeBuild.

", @@ -152,6 +154,16 @@ "refs": { } }, + "CreateWebhookInput": { + "base": null, + "refs": { + } + }, + "CreateWebhookOutput": { + "base": null, + "refs": { + } + }, "DeleteProjectInput": { "base": null, "refs": { @@ -162,6 +174,16 @@ "refs": { } }, + "DeleteWebhookInput": { + "base": null, + "refs": { + } + }, + "DeleteWebhookOutput": { + "base": null, + "refs": { + } + }, "EnvironmentImage": { "base": "

Information about a Docker image that is managed by AWS CodeBuild.

", "refs": { @@ -309,7 +331,13 @@ "StopBuildInput$id": "

The ID of the build.

", "UpdateProjectInput$name": "

The name of the build project.

You cannot change a build project's name.

", "UpdateProjectInput$serviceRole": "

The replacement ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", - "UpdateProjectInput$encryptionKey": "

The replacement AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ).

" + "UpdateProjectInput$encryptionKey": "

The replacement AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ).

", + "Webhook$url": "

The URL to the webhook.

" + } + }, + "OAuthProviderException": { + "base": "

There was a problem with the underlying OAuth provider.

", + "refs": { } }, "PhaseContext": { @@ -368,6 +396,8 @@ "base": null, "refs": { "CreateProjectInput$name": "

The name of the build project.

", + "CreateWebhookInput$projectName": "

The name of the build project.

", + "DeleteWebhookInput$projectName": "

The name of the build project.

", "Project$name": "

The name of the build project.

" } }, @@ -546,6 +576,13 @@ "Tag$value": "

The tag's value.

" } }, + "Webhook": { + "base": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

", + "refs": { + "CreateWebhookOutput$webhook": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

", + "Project$webhook": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

" + } + }, "WrapperBoolean": { "base": null, "refs": { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/api-2.json index 40fc4c1a..6d93f1cc 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/api-2.json @@ -798,7 +798,11 @@ "type":"string", "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, - "ClientToken":{"type":"string"}, + "ClientToken":{ + "type":"string", + "max":256, + "min":1 + }, "Code":{"type":"string"}, "ContinuationToken":{"type":"string"}, "CreateCustomActionTypeInput":{ @@ -1018,7 +1022,8 @@ "GetPipelineOutput":{ "type":"structure", "members":{ - "pipeline":{"shape":"PipelineDeclaration"} + "pipeline":{"shape":"PipelineDeclaration"}, + "metadata":{"shape":"PipelineMetadata"} } }, "GetPipelineStateInput":{ @@ -1255,7 +1260,11 @@ "max":5, "min":0 }, - "NextToken":{"type":"string"}, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, "Nonce":{"type":"string"}, "NotLatestPipelineExecutionException":{ "type":"structure", @@ -1279,6 +1288,10 @@ "max":100, "min":0 }, + "PipelineArn":{ + "type":"string", + "pattern":"arn:aws(-[\\w]+)*:codepipeline:.+:[0-9]{12}:.+" + }, "PipelineContext":{ "type":"structure", "members":{ @@ -1349,6 +1362,14 @@ "type":"list", "member":{"shape":"PipelineSummary"} }, + "PipelineMetadata":{ + "type":"structure", + "members":{ + "pipelineArn":{"shape":"PipelineArn"}, + "created":{"shape":"Timestamp"}, + "updated":{"shape":"Timestamp"} + } + }, "PipelineName":{ "type":"string", "max":100, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/docs-2.json index a4af4c7f..e3d12332 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/codepipeline/2015-07-09/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "AWS CodePipeline

Overview

This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide.

You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below.

Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages.

You can work with pipelines by calling:

  • CreatePipeline, which creates a uniquely-named pipeline.

  • DeletePipeline, which deletes the specified pipeline.

  • GetPipeline, which returns information about a pipeline structure.

  • GetPipelineExecution, which returns information about a specific execution of a pipeline.

  • GetPipelineState, which returns information about the current state of the stages and actions of a pipeline.

  • ListPipelines, which gets a summary of all of the pipelines associated with your account.

  • StartPipelineExecution, which runs the the most recent revision of an artifact through the pipeline.

  • UpdatePipeline, which updates a pipeline with edits or changes to the structure of the pipeline.

Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference.

Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState.

Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete.

You can work with transitions by calling:

Using the API to integrate with AWS CodePipeline

For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items:

Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source.

You can work with jobs by calling:

Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network.

You can work with third party jobs by calling:

", + "service": "AWS CodePipeline

Overview

This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide.

You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below.

Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages.

You can work with pipelines by calling:

  • CreatePipeline, which creates a uniquely-named pipeline.

  • DeletePipeline, which deletes the specified pipeline.

  • GetPipeline, which returns information about the pipeline structure and pipeline metadata, including the pipeline Amazon Resource Name (ARN).

  • GetPipelineExecution, which returns information about a specific execution of a pipeline.

  • GetPipelineState, which returns information about the current state of the stages and actions of a pipeline.

  • ListPipelines, which gets a summary of all of the pipelines associated with your account.

  • ListPipelineExecutions, which gets a summary of the most recent executions for a pipeline.

  • StartPipelineExecution, which runs the the most recent revision of an artifact through the pipeline.

  • UpdatePipeline, which updates a pipeline with edits or changes to the structure of the pipeline.

Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference.

Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState.

Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete.

You can work with transitions by calling:

Using the API to integrate with AWS CodePipeline

For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items:

Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source.

You can work with jobs by calling:

Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network.

You can work with third party jobs by calling:

", "operations": { "AcknowledgeJob": "

Returns information about a specified job and whether that job has been received by the job worker. Only used for custom actions.

", "AcknowledgeThirdPartyJob": "

Confirms a job worker has received the specified job. Only used for partner actions.

", @@ -52,22 +52,22 @@ } }, "AcknowledgeJobInput": { - "base": "

Represents the input of an acknowledge job action.

", + "base": "

Represents the input of an AcknowledgeJob action.

", "refs": { } }, "AcknowledgeJobOutput": { - "base": "

Represents the output of an acknowledge job action.

", + "base": "

Represents the output of an AcknowledgeJob action.

", "refs": { } }, "AcknowledgeThirdPartyJobInput": { - "base": "

Represents the input of an acknowledge third party job action.

", + "base": "

Represents the input of an AcknowledgeThirdPartyJob action.

", "refs": { } }, "AcknowledgeThirdPartyJobOutput": { - "base": "

Represents the output of an acknowledge third party job action.

", + "base": "

Represents the output of an AcknowledgeThirdPartyJob action.

", "refs": { } }, @@ -135,7 +135,7 @@ "ActionContext": { "base": "

Represents the context of an action within the stage of a pipeline to a job worker.

", "refs": { - "PipelineContext$action": "

" + "PipelineContext$action": "

The context of an action to a job worker within the stage of a pipeline.

" } }, "ActionDeclaration": { @@ -342,7 +342,7 @@ "ArtifactStore": { "base": "

The Amazon S3 bucket where artifacts are stored for the pipeline.

", "refs": { - "PipelineDeclaration$artifactStore": "

Represents the context of an action within the stage of a pipeline to a job worker.

" + "PipelineDeclaration$artifactStore": "

Represents information about the Amazon S3 bucket where artifacts are stored for the pipeline.

" } }, "ArtifactStoreLocation": { @@ -381,7 +381,7 @@ "ActionConfigurationProperty$required": "

Whether the configuration property is a required value.

", "ActionConfigurationProperty$key": "

Whether the configuration property is a key.

", "ActionConfigurationProperty$secret": "

Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.

When updating a pipeline, passing * * * * * without changing any other values of the action will preserve the prior value of the secret.

", - "ActionConfigurationProperty$queryable": "

Indicates that the proprety will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.

If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens.

", + "ActionConfigurationProperty$queryable": "

Indicates that the property will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.

If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens.

", "PutActionRevisionOutput$newRevision": "

Indicates whether the artifact revision was previously used in an execution of the specified pipeline.

" } }, @@ -416,22 +416,22 @@ } }, "CreateCustomActionTypeInput": { - "base": "

Represents the input of a create custom action operation.

", + "base": "

Represents the input of a CreateCustomActionType operation.

", "refs": { } }, "CreateCustomActionTypeOutput": { - "base": "

Represents the output of a create custom action operation.

", + "base": "

Represents the output of a CreateCustomActionType operation.

", "refs": { } }, "CreatePipelineInput": { - "base": "

Represents the input of a create pipeline action.

", + "base": "

Represents the input of a CreatePipeline action.

", "refs": { } }, "CreatePipelineOutput": { - "base": "

Represents the output of a create pipeline action.

", + "base": "

Represents the output of a CreatePipeline action.

", "refs": { } }, @@ -443,12 +443,12 @@ } }, "DeleteCustomActionTypeInput": { - "base": "

Represents the input of a delete custom action operation. The custom action will be marked as deleted.

", + "base": "

Represents the input of a DeleteCustomActionType operation. The custom action will be marked as deleted.

", "refs": { } }, "DeletePipelineInput": { - "base": "

Represents the input of a delete pipeline action.

", + "base": "

Represents the input of a DeletePipeline action.

", "refs": { } }, @@ -459,7 +459,7 @@ } }, "DisableStageTransitionInput": { - "base": "

Represents the input of a disable stage transition input action.

", + "base": "

Represents the input of a DisableStageTransition action.

", "refs": { } }, @@ -471,7 +471,7 @@ } }, "EnableStageTransitionInput": { - "base": "

Represents the input of an enable stage transition action.

", + "base": "

Represents the input of an EnableStageTransition action.

", "refs": { } }, @@ -543,52 +543,52 @@ } }, "GetJobDetailsInput": { - "base": "

Represents the input of a get job details action.

", + "base": "

Represents the input of a GetJobDetails action.

", "refs": { } }, "GetJobDetailsOutput": { - "base": "

Represents the output of a get job details action.

", + "base": "

Represents the output of a GetJobDetails action.

", "refs": { } }, "GetPipelineExecutionInput": { - "base": "

Represents the input of a get pipeline execution action.

", + "base": "

Represents the input of a GetPipelineExecution action.

", "refs": { } }, "GetPipelineExecutionOutput": { - "base": "

Represents the output of a get pipeline execution action.

", + "base": "

Represents the output of a GetPipelineExecution action.

", "refs": { } }, "GetPipelineInput": { - "base": "

Represents the input of a get pipeline action.

", + "base": "

Represents the input of a GetPipeline action.

", "refs": { } }, "GetPipelineOutput": { - "base": "

Represents the output of a get pipeline action.

", + "base": "

Represents the output of a GetPipeline action.

", "refs": { } }, "GetPipelineStateInput": { - "base": "

Represents the input of a get pipeline state action.

", + "base": "

Represents the input of a GetPipelineState action.

", "refs": { } }, "GetPipelineStateOutput": { - "base": "

Represents the output of a get pipeline state action.

", + "base": "

Represents the output of a GetPipelineState action.

", "refs": { } }, "GetThirdPartyJobDetailsInput": { - "base": "

Represents the input of a get third party job details action.

", + "base": "

Represents the input of a GetThirdPartyJobDetails action.

", "refs": { } }, "GetThirdPartyJobDetailsOutput": { - "base": "

Represents the output of a get third party job details action.

", + "base": "

Represents the output of a GetThirdPartyJobDetails action.

", "refs": { } }, @@ -727,32 +727,32 @@ } }, "ListActionTypesInput": { - "base": "

Represents the input of a list action types action.

", + "base": "

Represents the input of a ListActionTypes action.

", "refs": { } }, "ListActionTypesOutput": { - "base": "

Represents the output of a list action types action.

", + "base": "

Represents the output of a ListActionTypes action.

", "refs": { } }, "ListPipelineExecutionsInput": { - "base": "

Represents the input of a list pipeline executions action.

", + "base": "

Represents the input of a ListPipelineExecutions action.

", "refs": { } }, "ListPipelineExecutionsOutput": { - "base": "

Represents the output of a list pipeline executions action.

", + "base": "

Represents the output of a ListPipelineExecutions action.

", "refs": { } }, "ListPipelinesInput": { - "base": "

Represents the input of a list pipelines action.

", + "base": "

Represents the input of a ListPipelines action.

", "refs": { } }, "ListPipelinesOutput": { - "base": "

Represents the output of a list pipelines action.

", + "base": "

Represents the output of a ListPipelines action.

", "refs": { } }, @@ -793,8 +793,8 @@ "refs": { "ListActionTypesInput$nextToken": "

An identifier that was returned from the previous list action types call, which can be used to return the next set of action types in the list.

", "ListActionTypesOutput$nextToken": "

If the amount of returned information is significantly large, an identifier is also returned which can be used in a subsequent list action types call to return the next set of action types in the list.

", - "ListPipelineExecutionsInput$nextToken": "

The token that was returned from the previous list pipeline executions call, which can be used to return the next set of pipeline executions in the list.

", - "ListPipelineExecutionsOutput$nextToken": "

A token that can be used in the next list pipeline executions call to return the next set of pipeline executions. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

", + "ListPipelineExecutionsInput$nextToken": "

The token that was returned from the previous ListPipelineExecutions call, which can be used to return the next set of pipeline executions in the list.

", + "ListPipelineExecutionsOutput$nextToken": "

A token that can be used in the next ListPipelineExecutions call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

", "ListPipelinesInput$nextToken": "

An identifier that was returned from the previous list pipelines call, which can be used to return the next set of pipelines in the list.

", "ListPipelinesOutput$nextToken": "

If the amount of returned information is significantly large, an identifier is also returned which can be used in a subsequent list pipelines call to return the next set of pipelines in the list.

" } @@ -832,6 +832,12 @@ "ExecutionDetails$percentComplete": "

The percentage of work completed on the action, represented on a scale of zero to one hundred percent.

" } }, + "PipelineArn": { + "base": null, + "refs": { + "PipelineMetadata$pipelineArn": "

The Amazon Resource Name (ARN) of the pipeline.

" + } + }, "PipelineContext": { "base": "

Represents information about a pipeline to a job worker.

", "refs": { @@ -876,8 +882,8 @@ "PipelineExecutionStatus": { "base": null, "refs": { - "PipelineExecution$status": "

The status of the pipeline execution.

  • InProgress: The pipeline execution is currently running.

  • Succeeded: The pipeline execution completed successfully.

  • Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution caught up and continued through the pipeline instead.

  • Failed: The pipeline execution did not complete successfully.

", - "PipelineExecutionSummary$status": "

The status of the pipeline execution.

  • InProgress: The pipeline execution is currently running.

  • Succeeded: The pipeline execution completed successfully.

  • Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution caught up and continued through the pipeline instead.

  • Failed: The pipeline execution did not complete successfully.

" + "PipelineExecution$status": "

The status of the pipeline execution.

  • InProgress: The pipeline execution is currently running.

  • Succeeded: The pipeline execution was completed successfully.

  • Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution advanced and continued through the pipeline instead.

  • Failed: The pipeline execution was not completed successfully.

", + "PipelineExecutionSummary$status": "

The status of the pipeline execution.

  • InProgress: The pipeline execution is currently running.

  • Succeeded: The pipeline execution was completed successfully.

  • Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution advanced and continued through the pipeline instead.

  • Failed: The pipeline execution was not completed successfully.

" } }, "PipelineExecutionSummary": { @@ -898,6 +904,12 @@ "ListPipelinesOutput$pipelines": "

The list of pipelines.

" } }, + "PipelineMetadata": { + "base": "

Information about a pipeline.

", + "refs": { + "GetPipelineOutput$metadata": "

Represents the pipeline metadata information returned as part of the output of a GetPipeline action.

" + } + }, "PipelineName": { "base": null, "refs": { @@ -957,62 +969,62 @@ } }, "PollForJobsInput": { - "base": "

Represents the input of a poll for jobs action.

", + "base": "

Represents the input of a PollForJobs action.

", "refs": { } }, "PollForJobsOutput": { - "base": "

Represents the output of a poll for jobs action.

", + "base": "

Represents the output of a PollForJobs action.

", "refs": { } }, "PollForThirdPartyJobsInput": { - "base": "

Represents the input of a poll for third party jobs action.

", + "base": "

Represents the input of a PollForThirdPartyJobs action.

", "refs": { } }, "PollForThirdPartyJobsOutput": { - "base": "

Represents the output of a poll for third party jobs action.

", + "base": "

Represents the output of a PollForThirdPartyJobs action.

", "refs": { } }, "PutActionRevisionInput": { - "base": "

Represents the input of a put action revision action.

", + "base": "

Represents the input of a PutActionRevision action.

", "refs": { } }, "PutActionRevisionOutput": { - "base": "

Represents the output of a put action revision action.

", + "base": "

Represents the output of a PutActionRevision action.

", "refs": { } }, "PutApprovalResultInput": { - "base": "

Represents the input of a put approval result action.

", + "base": "

Represents the input of a PutApprovalResult action.

", "refs": { } }, "PutApprovalResultOutput": { - "base": "

Represents the output of a put approval result action.

", + "base": "

Represents the output of a PutApprovalResult action.

", "refs": { } }, "PutJobFailureResultInput": { - "base": "

Represents the input of a put job failure result action.

", + "base": "

Represents the input of a PutJobFailureResult action.

", "refs": { } }, "PutJobSuccessResultInput": { - "base": "

Represents the input of a put job success result action.

", + "base": "

Represents the input of a PutJobSuccessResult action.

", "refs": { } }, "PutThirdPartyJobFailureResultInput": { - "base": "

Represents the input of a third party job failure result action.

", + "base": "

Represents the input of a PutThirdPartyJobFailureResult action.

", "refs": { } }, "PutThirdPartyJobSuccessResultInput": { - "base": "

Represents the input of a put third party job success result action.

", + "base": "

Represents the input of a PutThirdPartyJobSuccessResult action.

", "refs": { } }, @@ -1023,12 +1035,12 @@ } }, "RetryStageExecutionInput": { - "base": "

Represents the input of a retry stage execution action.

", + "base": "

Represents the input of a RetryStageExecution action.

", "refs": { } }, "RetryStageExecutionOutput": { - "base": "

Represents the output of a retry stage execution action.

", + "base": "

Represents the output of a RetryStageExecution action.

", "refs": { } }, @@ -1178,12 +1190,12 @@ } }, "StartPipelineExecutionInput": { - "base": "

Represents the input of a start pipeline execution action.

", + "base": "

Represents the input of a StartPipelineExecution action.

", "refs": { } }, "StartPipelineExecutionOutput": { - "base": "

Represents the output of a start pipeline execution action.

", + "base": "

Represents the output of a StartPipelineExecution action.

", "refs": { } }, @@ -1237,6 +1249,8 @@ "GetPipelineStateOutput$updated": "

The date and time the pipeline was last updated, in timestamp format.

", "PipelineExecutionSummary$startTime": "

The date and time when the pipeline execution began, in timestamp format.

", "PipelineExecutionSummary$lastUpdateTime": "

The date and time of the last change to the pipeline execution, in timestamp format.

", + "PipelineMetadata$created": "

The date and time the pipeline was created, in timestamp format.

", + "PipelineMetadata$updated": "

The date and time the pipeline was last updated, in timestamp format.

", "PipelineSummary$created": "

The date and time the pipeline was created, in timestamp format.

", "PipelineSummary$updated": "

The date and time of the last update to the pipeline, in timestamp format.

", "PutApprovalResultOutput$approvedAt": "

The timestamp showing when the approval or rejection was submitted.

" @@ -1249,12 +1263,12 @@ } }, "UpdatePipelineInput": { - "base": "

Represents the input of an update pipeline action.

", + "base": "

Represents the input of an UpdatePipeline action.

", "refs": { } }, "UpdatePipelineOutput": { - "base": "

Represents the output of an update pipeline action.

", + "base": "

Represents the output of an UpdatePipeline action.

", "refs": { } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/api-2.json index 0019023b..0ec96b94 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/api-2.json @@ -1343,7 +1343,12 @@ "AWS::Redshift::ClusterSubnetGroup", "AWS::Redshift::EventSubscription", "AWS::CloudWatch::Alarm", - "AWS::CloudFormation::Stack" + "AWS::CloudFormation::Stack", + "AWS::DynamoDB::Table", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::AutoScaling::ScalingPolicy", + "AWS::AutoScaling::ScheduledAction" ] }, "ResourceTypeList":{ diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/docs-2.json index 8b7a1d4f..9df01a32 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/config/2014-11-12/docs-2.json @@ -180,7 +180,7 @@ } }, "ConfigExportDeliveryInfo": { - "base": "

A list that contains the status of the delivery of either the snapshot or the configuration history to the specified Amazon S3 bucket.

", + "base": "

Provides status of the delivery of the snapshot or the configuration history to the specified Amazon S3 bucket. Also provides the status of notifications about the Amazon S3 delivery to the specified Amazon SNS topic.

", "refs": { "DeliveryChannelStatus$configSnapshotDeliveryInfo": "

A list containing the status of the delivery of the snapshot to the specified Amazon S3 bucket.

", "DeliveryChannelStatus$configHistoryDeliveryInfo": "

A list that contains the status of the delivery of the configuration history to the specified Amazon S3 bucket.

" @@ -1086,7 +1086,7 @@ "StringWithCharLimit128": { "base": null, "refs": { - "Scope$TagKey": "

The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule.

" + "Scope$TagKey": "

The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule.

" } }, "StringWithCharLimit256": { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/api-2.json index 55df4e51..88c3f230 100755 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/api-2.json @@ -256,6 +256,15 @@ "input":{"shape":"ConfirmProductInstanceRequest"}, "output":{"shape":"ConfirmProductInstanceResult"} }, + "CopyFpgaImage":{ + "name":"CopyFpgaImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyFpgaImageRequest"}, + "output":{"shape":"CopyFpgaImageResult"} + }, "CopyImage":{ "name":"CopyImage", "http":{ @@ -583,6 +592,15 @@ "input":{"shape":"DeleteFlowLogsRequest"}, "output":{"shape":"DeleteFlowLogsResult"} }, + "DeleteFpgaImage":{ + "name":"DeleteFpgaImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFpgaImageRequest"}, + "output":{"shape":"DeleteFpgaImageResult"} + }, "DeleteInternetGateway":{ "name":"DeleteInternetGateway", "http":{ @@ -879,6 +897,15 @@ "input":{"shape":"DescribeFlowLogsRequest"}, "output":{"shape":"DescribeFlowLogsResult"} }, + "DescribeFpgaImageAttribute":{ + "name":"DescribeFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFpgaImageAttributeRequest"}, + "output":{"shape":"DescribeFpgaImageAttributeResult"} + }, "DescribeFpgaImages":{ "name":"DescribeFpgaImages", "http":{ @@ -1636,6 +1663,15 @@ "input":{"shape":"ImportVolumeRequest"}, "output":{"shape":"ImportVolumeResult"} }, + "ModifyFpgaImageAttribute":{ + "name":"ModifyFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyFpgaImageAttributeRequest"}, + "output":{"shape":"ModifyFpgaImageAttributeResult"} + }, "ModifyHosts":{ "name":"ModifyHosts", "http":{ @@ -1928,6 +1964,15 @@ "input":{"shape":"RequestSpotInstancesRequest"}, "output":{"shape":"RequestSpotInstancesResult"} }, + "ResetFpgaImageAttribute":{ + "name":"ResetFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetFpgaImageAttributeRequest"}, + "output":{"shape":"ResetFpgaImageAttributeResult"} + }, "ResetImageAttribute":{ "name":"ResetImageAttribute", "http":{ @@ -3458,6 +3503,30 @@ "completed" ] }, + "CopyFpgaImageRequest":{ + "type":"structure", + "required":[ + "SourceFpgaImageId", + "SourceRegion" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "SourceFpgaImageId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Name":{"shape":"String"}, + "SourceRegion":{"shape":"String"}, + "ClientToken":{"shape":"String"} + } + }, + "CopyFpgaImageResult":{ + "type":"structure", + "members":{ + "FpgaImageId":{ + "shape":"String", + "locationName":"fpgaImageId" + } + } + }, "CopyImageRequest":{ "type":"structure", "required":[ @@ -4527,6 +4596,23 @@ } } }, + "DeleteFpgaImageRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"} + } + }, + "DeleteFpgaImageResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "DeleteInternetGatewayRequest":{ "type":"structure", "required":["InternetGatewayId"], @@ -5183,6 +5269,27 @@ } } }, + "DescribeFpgaImageAttributeRequest":{ + "type":"structure", + "required":[ + "FpgaImageId", + "Attribute" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"FpgaImageAttributeName"} + } + }, + "DescribeFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "FpgaImageAttribute":{ + "shape":"FpgaImageAttribute", + "locationName":"fpgaImageAttribute" + } + } + }, "DescribeFpgaImagesRequest":{ "type":"structure", "members":{ @@ -7854,9 +7961,47 @@ "Tags":{ "shape":"TagList", "locationName":"tags" + }, + "Public":{ + "shape":"Boolean", + "locationName":"public" } } }, + "FpgaImageAttribute":{ + "type":"structure", + "members":{ + "FpgaImageId":{ + "shape":"String", + "locationName":"fpgaImageId" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "LoadPermissions":{ + "shape":"LoadPermissionList", + "locationName":"loadPermissions" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "FpgaImageAttributeName":{ + "type":"string", + "enum":[ + "description", + "name", + "loadPermission", + "productCodes" + ] + }, "FpgaImageIdList":{ "type":"list", "member":{ @@ -10281,12 +10426,87 @@ "closed" ] }, + "LoadPermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "LoadPermissionList":{ + "type":"list", + "member":{ + "shape":"LoadPermission", + "locationName":"item" + } + }, + "LoadPermissionListRequest":{ + "type":"list", + "member":{ + "shape":"LoadPermissionRequest", + "locationName":"item" + } + }, + "LoadPermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"LoadPermissionListRequest"}, + "Remove":{"shape":"LoadPermissionListRequest"} + } + }, + "LoadPermissionRequest":{ + "type":"structure", + "members":{ + "Group":{"shape":"PermissionGroup"}, + "UserId":{"shape":"String"} + } + }, "Long":{"type":"long"}, "MaxResults":{ "type":"integer", "max":255, "min":5 }, + "ModifyFpgaImageAttributeRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"FpgaImageAttributeName"}, + "OperationType":{"shape":"OperationType"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "UserGroups":{ + "shape":"UserGroupStringList", + "locationName":"UserGroup" + }, + "ProductCodes":{ + "shape":"ProductCodeStringList", + "locationName":"ProductCode" + }, + "LoadPermission":{"shape":"LoadPermissionModifications"}, + "Description":{"shape":"String"}, + "Name":{"shape":"String"} + } + }, + "ModifyFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "FpgaImageAttribute":{ + "shape":"FpgaImageAttribute", + "locationName":"fpgaImageAttribute" + } + } + }, "ModifyHostsRequest":{ "type":"structure", "required":[ @@ -11882,7 +12102,10 @@ }, "PurchaseSet":{ "type":"list", - "member":{"shape":"Purchase"} + "member":{ + "shape":"Purchase", + "locationName":"item" + } }, "PurchasedScheduledInstanceSet":{ "type":"list", @@ -12943,6 +13166,28 @@ "locationName":"item" } }, + "ResetFpgaImageAttributeName":{ + "type":"string", + "enum":["loadPermission"] + }, + "ResetFpgaImageAttributeRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"ResetFpgaImageAttributeName"} + } + }, + "ResetFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "ResetImageAttributeName":{ "type":"string", "enum":["launchPermission"] @@ -14951,6 +15196,13 @@ "ALL" ] }, + "TunnelOptionsList":{ + "type":"list", + "member":{ + "shape":"VpnTunnelOptionsSpecification", + "locationName":"item" + } + }, "UnassignIpv6AddressesRequest":{ "type":"structure", "required":[ @@ -15951,6 +16203,10 @@ "shape":"String", "locationName":"customerGatewayId" }, + "Category":{ + "shape":"String", + "locationName":"category" + }, "State":{ "shape":"VpnState", "locationName":"state" @@ -16014,7 +16270,8 @@ "StaticRoutesOnly":{ "shape":"Boolean", "locationName":"staticRoutesOnly" - } + }, + "TunnelOptions":{"shape":"TunnelOptionsList"} } }, "VpnGateway":{ @@ -16097,6 +16354,13 @@ "type":"string", "enum":["Static"] }, + "VpnTunnelOptionsSpecification":{ + "type":"structure", + "members":{ + "TunnelInsideCidr":{"shape":"String"}, + "PreSharedKey":{"shape":"String"} + } + }, "ZoneNameStringList":{ "type":"list", "member":{ diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/docs-2.json index ca35040c..f7aa9807 100755 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/docs-2.json @@ -29,7 +29,8 @@ "CancelReservedInstancesListing": "

Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", "CancelSpotFleetRequests": "

Cancels the specified Spot fleet requests.

After you cancel a Spot fleet request, the Spot fleet launches no new Spot instances. You must specify whether the Spot fleet should also terminate its Spot instances. If you terminate the instances, the Spot fleet request enters the cancelled_terminating state. Otherwise, the Spot fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.

", "CancelSpotInstanceRequests": "

Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

Canceling a Spot instance request does not terminate running Spot instances associated with the request.

", - "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.

", + "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner must verify whether another user's instance is eligible for support.

", + "CopyFpgaImage": "

Copies the specified Amazon FPGA Image (AFI) to the current region.

", "CopyImage": "

Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request.

For more information about the prerequisites and limits when copying an AMI, see Copying an AMI in the Amazon Elastic Compute Cloud User Guide.

", "CopySnapshot": "

Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to.

Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless the Encrypted flag is specified during the snapshot copy operation. By default, encrypted snapshot copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a non-default CMK with the KmsKeyId parameter.

To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK used to encrypt the snapshot.

Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.

For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", "CreateCustomerGateway": "

Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).

Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources.

", @@ -47,7 +48,7 @@ "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkInterface": "

Creates a network interface in the specified subnet.

For more information about network interfaces, see Elastic Network Interfaces in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkInterfacePermission": "

Grants an AWS authorized partner account permission to attach the specified network interface to an instance in their account.

You can grant permission to a single AWS account only, and only one account at a time.

", - "CreatePlacementGroup": "

Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account.

For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreatePlacementGroup": "

Creates a placement group that you launch cluster instances into. Give the group a name that's unique within the scope of your account.

For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", "CreateReservedInstancesListing": "

Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation.

Only Standard Reserved Instances with a capacity reservation can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances and Standard Reserved Instances with a regional benefit cannot be sold.

The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", "CreateRoute": "

Creates a route in a route table within a VPC.

You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, or egress-only Internet gateway.

When determining how to route traffic, we use the route with the most specific match. For example, traffic is destined for the IPv4 address 192.0.2.3, and the route table includes the following two IPv4 routes:

  • 192.0.2.0/24 (goes to some target A)

  • 192.0.2.0/28 (goes to some target B)

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "CreateRouteTable": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", @@ -60,13 +61,14 @@ "CreateVpc": "

Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC.

By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide.

", "CreateVpcEndpoint": "

Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint.

Use DescribeVpcEndpointServices to get a list of supported AWS services.

", "CreateVpcPeeringConnection": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks.

The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected.

If you try to create a VPC peering connection between VPCs that have overlapping CIDR blocks, the VPC peering connection status goes to failed.

", - "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

For more information, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", "CreateVpnConnectionRoute": "

Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", "CreateVpnGateway": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", "DeleteCustomerGateway": "

Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.

", "DeleteDhcpOptions": "

Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

", "DeleteEgressOnlyInternetGateway": "

Deletes an egress-only Internet gateway.

", "DeleteFlowLogs": "

Deletes one or more flow logs.

", + "DeleteFpgaImage": "

Deletes the specified Amazon FPGA Image (AFI).

", "DeleteInternetGateway": "

Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.

", "DeleteKeyPair": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", "DeleteNatGateway": "

Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.

", @@ -102,6 +104,7 @@ "DescribeElasticGpus": "

Describes the Elastic GPUs associated with your instances. For more information about Elastic GPUs, see Amazon EC2 Elastic GPUs.

", "DescribeExportTasks": "

Describes one or more of your export tasks.

", "DescribeFlowLogs": "

Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.

", + "DescribeFpgaImageAttribute": "

Describes the specified attribute of the specified Amazon FPGA Image (AFI).

", "DescribeFpgaImages": "

Describes one or more available Amazon FPGA Images (AFIs). These include public AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which you have load permissions.

", "DescribeHostReservationOfferings": "

Describes the Dedicated Host Reservations that are available to purchase.

The results describe all the Dedicated Host Reservation offerings, including offerings that may not match the instance family and region of your Dedicated Hosts. When purchasing an offering, ensure that the the instance family and region of the offering matches that of the Dedicated Host/s it will be associated with. For an overview of supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide.

", "DescribeHostReservations": "

Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account.

", @@ -177,16 +180,17 @@ "EnableVolumeIO": "

Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

", "EnableVpcClassicLink": "

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", "EnableVpcClassicLinkDnsSupport": "

Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", - "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", + "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output, which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", "GetConsoleScreenshot": "

Retrieve a JPG-format screenshot of a running instance to help with troubleshooting.

The returned content is Base64-encoded.

", "GetHostReservationPurchasePreview": "

Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation.

This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.

", - "GetPasswordData": "

Retrieves the encrypted administrator password for an instance running Windows.

The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", + "GetPasswordData": "

Retrieves the encrypted administrator password for a running Windows instance.

The Windows password is generated at boot by the EC2Config service or EC2Launch scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the Amazon Elastic Compute Cloud User Guide.

For the EC2Config service, the password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", "GetReservedInstancesExchangeQuote": "

Returns details about the values and term of your specified Convertible Reserved Instances. When a target configuration is specified, it returns information about whether the exchange is valid and can be performed.

", "ImportImage": "

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more information, see Importing a VM as an Image Using VM Import/Export in the VM Import/Export User Guide.

", "ImportInstance": "

Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "ImportKeyPair": "

Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", "ImportSnapshot": "

Imports a disk into an EBS snapshot.

", "ImportVolume": "

Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", + "ModifyFpgaImageAttribute": "

Modifies the specified attribute of the specified Amazon FPGA Image (AFI).

", "ModifyHosts": "

Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, AWS will place instances that you launch with a tenancy of host, but without targeting a specific host ID, onto any available Dedicated Host in your account which has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID if you want the instance to launch onto a specific host. If no host ID is provided, the instance will be launched onto a suitable host which has auto-placement enabled.

", "ModifyIdFormat": "

Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume.

This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", "ModifyIdentityIdFormat": "

Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.

The following resource types support longer IDs: instance | reservation | snapshot | volume. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", @@ -221,6 +225,7 @@ "ReportInstanceStatus": "

Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks.

Use of this action does not change the value returned by DescribeInstanceStatus.

", "RequestSpotFleet": "

Creates a Spot fleet request.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools, you can improve the availability of your fleet.

For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide.

", "RequestSpotInstances": "

Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot Instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

", + "ResetFpgaImageAttribute": "

Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its default value. You can only reset the load permission attribute.

", "ResetImageAttribute": "

Resets an attribute of an AMI to its default value.

The productCodes attribute can't be reset.

", "ResetInstanceAttribute": "

Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either running or stopped.

The sourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "ResetNetworkInterfaceAttribute": "

Resets a network interface attribute. You can specify only one attribute at a time.

", @@ -228,10 +233,10 @@ "RestoreAddressToClassic": "

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

", "RevokeSecurityGroupEgress": "

[EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", "RevokeSecurityGroupIngress": "

Removes one or more ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic security groups only] If the values you specify do not match the existing rule's values, no error is returned. Use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", - "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

  • [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request.

  • [EC2-Classic] If don't specify an Availability Zone, we choose one for you.

  • Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance Types Available Only in a VPC.

  • [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet.

  • Not all instance types support IPv6 addresses. For more information, see Instance Types.

  • If you don't specify a security group ID, we use the default security group. For more information, see Security Groups.

  • If any of the AMIs have a product code attached for which the user has not subscribed, the request fails.

To ensure faster instance launches, break up large requests into smaller batches. For example, create 5 separate launch requests for 100 instances each instead of 1 launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

  • [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request.

  • [EC2-Classic] If don't specify an Availability Zone, we choose one for you.

  • Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance Types Available Only in a VPC.

  • [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet.

  • Not all instance types support IPv6 addresses. For more information, see Instance Types.

  • If you don't specify a security group ID, we use the default security group. For more information, see Security Groups.

  • If any of the AMIs have a product code attached for which the user has not subscribed, the request fails.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "RunScheduledInstances": "

Launches the specified Scheduled Instances.

Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances.

You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon Elastic Compute Cloud User Guide.

", - "StartInstances": "

Starts an Amazon EBS-backed AMI that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", - "StopInstances": "

Stops an Amazon EBS-backed instance.

We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

You can't start or stop Spot instances, and you can't stop instance store-backed instances.

When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "StartInstances": "

Starts an Amazon EBS-backed instance that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", + "StopInstances": "

Stops an Amazon EBS-backed instance.

We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

You can't start or stop Spot Instances, and you can't stop instance store-backed instances.

When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "TerminateInstances": "

Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.

If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated.

Terminated instances remain visible after termination (for approximately one hour).

By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, any attached EBS volumes with the DeleteOnTermination block device mapping parameter set to true are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "UnassignIpv6Addresses": "

Unassigns one or more IPv6 addresses from a network interface.

", "UnassignPrivateIpAddresses": "

Unassigns one or more secondary private IP addresses from a network interface.

", @@ -514,11 +519,11 @@ "DescribeVpcAttributeResult$EnableDnsSupport": "

Indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.

", "InstanceAttribute$DisableApiTermination": "

If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.

", "InstanceAttribute$EnaSupport": "

Indicates whether enhanced networking with ENA is enabled.

", - "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O.

", - "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", - "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", + "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT.

", "ModifyInstanceAttributeRequest$DisableApiTermination": "

If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this parameter for Spot Instances.

", - "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", "ModifyInstanceAttributeRequest$EnaSupport": "

Set to true to enable enhanced networking with ENA for the instance.

This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.

", "ModifyNetworkInterfaceAttributeRequest$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "ModifySubnetAttributeRequest$AssignIpv6AddressOnCreation": "

Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. This includes a network interface that's created when launching an instance into the subnet (the instance therefore receives an IPv6 address).

If you enable the IPv6 addressing feature for your subnet, your network interface or instance only receives an IPv6 address if it's created using version 2016-11-15 or later of the Amazon EC2 API.

", @@ -638,7 +643,7 @@ "BlobAttributeValue": { "base": null, "refs": { - "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

" + "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text.

" } }, "BlockDeviceMapping": { @@ -697,6 +702,7 @@ "ClassicLinkDnsSupport$ClassicLinkDnsSupported": "

Indicates whether ClassicLink DNS support is enabled for the VPC.

", "ConfirmProductInstanceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ConfirmProductInstanceResult$Return": "

The return value of the request. Returns true if the specified product code is owned by the requester and associated with the specified instance.

", + "CopyFpgaImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CopyImageRequest$Encrypted": "

Specifies whether the destination snapshots of the copied image should be encrypted. The default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CopyImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CopySnapshotRequest$Encrypted": "

Specifies whether the destination snapshot should be encrypted. You can encrypt a copy of an unencrypted snapshot using this flag, but you cannot use it to create an unencrypted copy from an encrypted snapshot. Your default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", @@ -736,6 +742,8 @@ "DeleteDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteEgressOnlyInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteEgressOnlyInternetGatewayResult$ReturnCode": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DeleteFpgaImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteFpgaImageResult$Return": "

Is true if the request succeeds, and an error otherwise.

", "DeleteInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteKeyPairRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -771,6 +779,7 @@ "DescribeDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeEgressOnlyInternetGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeElasticGpusRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeFpgaImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeFpgaImagesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeImagesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -841,6 +850,7 @@ "EnableVpcClassicLinkDnsSupportResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", "EnableVpcClassicLinkRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "EnableVpcClassicLinkResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "FpgaImage$Public": "

Indicates whether the AFI is public.

", "GetConsoleOutputRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetConsoleScreenshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetConsoleScreenshotRequest$WakeUp": "

When set to true, acts as keystroke input and wakes up an instance that's in standby or \"sleep\" mode.

", @@ -856,15 +866,16 @@ "ImportKeyPairRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ImportSnapshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ImportVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "Instance$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "Instance$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", "Instance$EnaSupport": "

Specifies whether enhanced networking with ENA is enabled.

", - "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "InstanceNetworkInterface$SourceDestCheck": "

Indicates whether to validate network traffic to or from this network interface.

", "InstanceNetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", "InstanceNetworkInterfaceSpecification$AssociatePublicIpAddress": "

Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", "InstanceNetworkInterfaceSpecification$DeleteOnTermination": "

If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.

", "InstancePrivateIpAddress$Primary": "

Indicates whether this IPv4 address is the primary private IP address of the network interface.

", "LaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", + "ModifyFpgaImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifyIdFormatRequest$UseLongIds": "

Indicate whether the resource should use longer IDs (17-character IDs).

", "ModifyIdentityIdFormatRequest$UseLongIds": "

Indicates whether the resource should use longer IDs (17-character IDs)

", "ModifyImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -914,6 +925,8 @@ "RequestSpotInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "RequestSpotLaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", "ReservedInstancesOffering$Marketplace": "

Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is true.

", + "ResetFpgaImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ResetFpgaImageAttributeResult$Return": "

Is true if the request succeeds, and an error otherwise.

", "ResetImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ResetInstanceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ResetNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -925,7 +938,7 @@ "RunInstancesMonitoringEnabled$Enabled": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.

", "RunInstancesRequest$DisableApiTermination": "

If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute to false after launch, use ModifyInstanceAttribute. Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance.

Default: false

", "RunInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", + "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", "RunScheduledInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ScheduledInstanceRecurrence$OccurrenceRelativeToEnd": "

Indicates whether the occurrence is relative to the end of the specified week or month.

", "ScheduledInstanceRecurrenceRequest$OccurrenceRelativeToEnd": "

Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.

", @@ -961,7 +974,7 @@ "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalClassicLinkToRemoteVpc": "

Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.

", "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalVpcToRemoteClassicLink": "

Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.

", "VpnConnectionOptions$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", - "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

" + "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicate whether the VPN connection uses static routes only. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" } }, "BundleIdStringList": { @@ -1200,6 +1213,16 @@ "ConversionTask$State": "

The state of the conversion task.

" } }, + "CopyFpgaImageRequest": { + "base": null, + "refs": { + } + }, + "CopyFpgaImageResult": { + "base": null, + "refs": { + } + }, "CopyImageRequest": { "base": "

Contains the parameters for CopyImage.

", "refs": { @@ -1661,6 +1684,16 @@ "refs": { } }, + "DeleteFpgaImageRequest": { + "base": null, + "refs": { + } + }, + "DeleteFpgaImageResult": { + "base": null, + "refs": { + } + }, "DeleteInternetGatewayRequest": { "base": "

Contains the parameters for DeleteInternetGateway.

", "refs": { @@ -1922,6 +1955,16 @@ "refs": { } }, + "DescribeFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "DescribeFpgaImagesRequest": { "base": null, "refs": { @@ -2933,7 +2976,7 @@ "DescribeImportImageTasksRequest$Filters": "

Filter tasks using the task-state filter and one of the following values: active, completed, deleting, deleted.

", "DescribeImportSnapshotTasksRequest$Filters": "

One or more filters.

", "DescribeInstanceStatusRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone of the instance.

  • event.code - The code for the scheduled event (instance-reboot | system-reboot | system-maintenance | instance-retirement | instance-stop).

  • event.description - A description of the event.

  • event.not-after - The latest end time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).

  • event.not-before - The earliest start time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).

  • instance-state-code - The code for the instance state, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-status.reachability - Filters on instance status where the name is reachability (passed | failed | initializing | insufficient-data).

  • instance-status.status - The status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

  • system-status.reachability - Filters on system status where the name is reachability (passed | failed | initializing | insufficient-data).

  • system-status.status - The system status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

", - "DescribeInstancesRequest$Filters": "

One or more filters.

  • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

  • architecture - The instance architecture (i386 | x86_64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

  • hypervisor - The hypervisor type of the instance (ovm | xen).

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IPv4 address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

  • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

  • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

  • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

  • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

  • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

  • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.description - The description of the network interface.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.private-dns-name - The private DNS name of the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • platform - The platform. Use windows if you have Windows instances; otherwise, leave blank.

  • private-dns-name - The private IPv4 DNS name of the instance.

  • private-ip-address - The private IPv4 address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.

  • root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda).

  • root-device-type - The type of root device that the instance uses (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • tenancy - The tenancy of an instance (dedicated | default | host).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

", + "DescribeInstancesRequest$Filters": "

One or more filters.

  • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

  • architecture - The instance architecture (i386 | x86_64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

  • hypervisor - The hypervisor type of the instance (ovm | xen).

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IPv4 address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

  • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

  • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

  • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

  • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

  • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

  • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.description - The description of the network interface.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.private-dns-name - The private DNS name of the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • platform - The platform. Use windows if you have Windows instances; otherwise, leave blank.

  • private-dns-name - The private IPv4 DNS name of the instance.

  • private-ip-address - The private IPv4 address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID.

  • root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda).

  • root-device-type - The type of root device that the instance uses (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot Instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of the tag's key). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • tenancy - The tenancy of an instance (dedicated | default | host).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

", "DescribeInternetGatewaysRequest$Filters": "

One or more filters.

  • attachment.state - The current state of the attachment between the gateway and the VPC (available). Present only if a VPC is attached.

  • attachment.vpc-id - The ID of an attached VPC.

  • internet-gateway-id - The ID of the Internet gateway.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", "DescribeKeyPairsRequest$Filters": "

One or more filters.

  • fingerprint - The fingerprint of the key pair.

  • key-name - The name of the key pair.

", "DescribeMovingAddressesRequest$Filters": "

One or more filters.

  • moving-status - The status of the Elastic IP address (MovingToVpc | RestoringToClassic).

", @@ -2953,7 +2996,7 @@ "DescribeScheduledInstancesRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone (for example, us-west-2a).

  • instance-type - The instance type (for example, c4.large).

  • network-platform - The network platform (EC2-Classic or EC2-VPC).

  • platform - The platform (Linux/UNIX or Windows).

", "DescribeSecurityGroupsRequest$Filters": "

One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

  • description - The description of the security group.

  • egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service to which the security group allows access.

  • group-id - The ID of the security group.

  • group-name - The name of the security group.

  • ip-permission.cidr - An IPv4 CIDR range that has been granted permission in a security group rule.

  • ip-permission.from-port - The start of port range for the TCP and UDP protocols, or an ICMP type number.

  • ip-permission.group-id - The ID of a security group that has been granted permission.

  • ip-permission.group-name - The name of a security group that has been granted permission.

  • ip-permission.ipv6-cidr - An IPv6 CIDR range that has been granted permission in a security group rule.

  • ip-permission.protocol - The IP protocol for the permission (tcp | udp | icmp or a protocol number).

  • ip-permission.to-port - The end of port range for the TCP and UDP protocols, or an ICMP code.

  • ip-permission.user-id - The ID of an AWS account that has been granted permission.

  • owner-id - The AWS account ID of the owner of the security group.

  • tag-key - The key of a tag assigned to the security group.

  • tag-value - The value of a tag assigned to the security group.

  • vpc-id - The ID of the VPC specified when the security group was created.

", "DescribeSnapshotsRequest$Filters": "

One or more filters.

  • description - A description of the snapshot.

  • owner-alias - Value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.

  • owner-id - The ID of the AWS account that owns the snapshot.

  • progress - The progress of the snapshot, as a percentage (for example, 80%).

  • snapshot-id - The snapshot ID.

  • start-time - The time stamp when the snapshot was initiated.

  • status - The status of the snapshot (pending | completed | error).

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • volume-id - The ID of the volume the snapshot is for.

  • volume-size - The size of the volume, in GiB.

", - "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

  • availability-zone-group - The Availability Zone group.

  • create-time - The time stamp when the Spot instance request was created.

  • fault-code - The fault code related to the request.

  • fault-message - The fault message related to the request.

  • instance-id - The ID of the instance that fulfilled the request.

  • launch-group - The Spot instance launch group.

  • launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination.

  • launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).

  • launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB.

  • launch.block-device-mapping.volume-type - The type of the Amazon EBS volume: gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1for Cold HDD, or standard for Magnetic.

  • launch.group-id - The security group for the instance.

  • launch.image-id - The ID of the AMI.

  • launch.instance-type - The type of instance (for example, m3.medium).

  • launch.kernel-id - The kernel ID.

  • launch.key-name - The name of the key pair the instance launched with.

  • launch.monitoring-enabled - Whether monitoring is enabled for the Spot instance.

  • launch.ramdisk-id - The RAM disk ID.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.device-index - The index of the device for the network interface attachment on the instance.

  • network-interface.subnet-id - The ID of the subnet for the instance.

  • network-interface.description - A description of the network interface.

  • network-interface.private-ip-address - The primary private IP address of the network interface.

  • network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated.

  • network-interface.group-id - The ID of the security group associated with the network interface.

  • network-interface.group-name - The name of the security group associated with the network interface.

  • network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address.

  • product-description - The product description associated with the instance (Linux/UNIX | Windows).

  • spot-instance-request-id - The Spot instance request ID.

  • spot-price - The maximum hourly price for any Spot instance launched to fulfill the request.

  • state - The state of the Spot instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

  • status-code - The short code describing the most recent evaluation of your Spot instance request.

  • status-message - The message explaining the status of the Spot instance request.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of Spot instance request (one-time | persistent).

  • launched-availability-zone - The Availability Zone in which the bid is launched.

  • valid-from - The start date of the request.

  • valid-until - The end date of the request.

", + "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

  • availability-zone-group - The Availability Zone group.

  • create-time - The time stamp when the Spot instance request was created.

  • fault-code - The fault code related to the request.

  • fault-message - The fault message related to the request.

  • instance-id - The ID of the instance that fulfilled the request.

  • launch-group - The Spot instance launch group.

  • launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination.

  • launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).

  • launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB.

  • launch.block-device-mapping.volume-type - The type of the Amazon EBS volume: gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1for Cold HDD, or standard for Magnetic.

  • launch.group-id - The security group for the instance.

  • launch.image-id - The ID of the AMI.

  • launch.instance-type - The type of instance (for example, m3.medium).

  • launch.kernel-id - The kernel ID.

  • launch.key-name - The name of the key pair the instance launched with.

  • launch.monitoring-enabled - Whether detailed monitoring is enabled for the Spot instance.

  • launch.ramdisk-id - The RAM disk ID.

  • launched-availability-zone - The Availability Zone in which the bid is launched.

  • network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address.

  • network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated.

  • network-interface.description - A description of the network interface.

  • network-interface.device-index - The index of the device for the network interface attachment on the instance.

  • network-interface.group-id - The ID of the security group associated with the network interface.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.private-ip-address - The primary private IP address of the network interface.

  • network-interface.subnet-id - The ID of the subnet for the instance.

  • product-description - The product description associated with the instance (Linux/UNIX | Windows).

  • spot-instance-request-id - The Spot instance request ID.

  • spot-price - The maximum hourly price for any Spot instance launched to fulfill the request.

  • state - The state of the Spot instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

  • status-code - The short code describing the most recent evaluation of your Spot instance request.

  • status-message - The message explaining the status of the Spot instance request.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of Spot instance request (one-time | persistent).

  • valid-from - The start date of the request.

  • valid-until - The end date of the request.

", "DescribeSpotPriceHistoryRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone for which prices should be returned.

  • instance-type - The type of instance (for example, m3.medium).

  • product-description - The product description for the Spot price (Linux/UNIX | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon VPC) | Windows (Amazon VPC)).

  • spot-price - The Spot price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported).

  • timestamp - The timestamp of the Spot price history, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). You can use wildcards (* and ?). Greater than or less than comparison is not supported.

", "DescribeSubnetsRequest$Filters": "

One or more filters.

  • availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name.

  • available-ip-address-count - The number of IPv4 addresses in the subnet that are available.

  • cidrBlock - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names.

  • defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name.

  • ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.association-id - An association ID for an IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the subnet.

  • state - The state of the subnet (pending | available).

  • subnet-id - The ID of the subnet.

  • tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the subnet.

", "DescribeTagsRequest$Filters": "

One or more filters.

  • key - The tag key.

  • resource-id - The resource ID.

  • resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway).

  • value - The tag value.

", @@ -3007,6 +3050,20 @@ "FpgaImageList$member": null } }, + "FpgaImageAttribute": { + "base": "

Describes an Amazon FPGA image (AFI) attribute.

", + "refs": { + "DescribeFpgaImageAttributeResult$FpgaImageAttribute": "

Information about the attribute.

", + "ModifyFpgaImageAttributeResult$FpgaImageAttribute": "

Information about the attribute.

" + } + }, + "FpgaImageAttributeName": { + "base": null, + "refs": { + "DescribeFpgaImageAttributeRequest$Attribute": "

The AFI attribute.

", + "ModifyFpgaImageAttributeRequest$Attribute": "

The name of the attribute.

" + } + }, "FpgaImageIdList": { "base": null, "refs": { @@ -3561,7 +3618,7 @@ "InstanceLifecycleType": { "base": null, "refs": { - "Instance$InstanceLifecycle": "

Indicates whether this is a Spot instance or a Scheduled Instance.

" + "Instance$InstanceLifecycle": "

Indicates whether this is a Spot Instance or a Scheduled Instance.

" } }, "InstanceList": { @@ -4040,6 +4097,37 @@ "ReservedInstancesListing$Status": "

The status of the Reserved Instance listing.

" } }, + "LoadPermission": { + "base": "

Describes a load permission.

", + "refs": { + "LoadPermissionList$member": null + } + }, + "LoadPermissionList": { + "base": null, + "refs": { + "FpgaImageAttribute$LoadPermissions": "

One or more load permissions.

" + } + }, + "LoadPermissionListRequest": { + "base": null, + "refs": { + "LoadPermissionModifications$Add": "

The load permissions to add.

", + "LoadPermissionModifications$Remove": "

The load permissions to remove.

" + } + }, + "LoadPermissionModifications": { + "base": "

Describes modifications to the load permissions of an Amazon FPGA image (AFI).

", + "refs": { + "ModifyFpgaImageAttributeRequest$LoadPermission": "

The load permission for the AFI.

" + } + }, + "LoadPermissionRequest": { + "base": "

Describes a load permission.

", + "refs": { + "LoadPermissionListRequest$member": null + } + }, "Long": { "base": null, "refs": { @@ -4067,6 +4155,16 @@ "DescribeVpcClassicLinkDnsSupportRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

" } }, + "ModifyFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "ModifyHostsRequest": { "base": "

Contains the parameters for ModifyHosts.

", "refs": { @@ -4471,6 +4569,7 @@ "OperationType": { "base": null, "refs": { + "ModifyFpgaImageAttributeRequest$OperationType": "

The operation type.

", "ModifyImageAttributeRequest$OperationType": "

The operation type.

", "ModifySnapshotAttributeRequest$OperationType": "

The type of operation to perform to the attribute.

" } @@ -4515,7 +4614,9 @@ "base": null, "refs": { "CreateVolumePermission$Group": "

The specific group that is to be added or removed from a volume's list of create volume permissions.

", - "LaunchPermission$Group": "

The name of the group.

" + "LaunchPermission$Group": "

The name of the group.

", + "LoadPermission$Group": "

The name of the group.

", + "LoadPermissionRequest$Group": "

The name of the group.

" } }, "Placement": { @@ -4678,6 +4779,7 @@ "DescribeSnapshotAttributeResult$ProductCodes": "

A list of product codes.

", "DescribeVolumeAttributeResult$ProductCodes": "

A list of product codes.

", "FpgaImage$ProductCodes": "

The product codes for the AFI.

", + "FpgaImageAttribute$ProductCodes": "

One or more product codes.

", "Image$ProductCodes": "

Any product codes associated with the AMI.

", "ImageAttribute$ProductCodes": "

One or more product codes.

", "Instance$ProductCodes": "

The product codes attached to this instance, if applicable.

", @@ -4687,6 +4789,7 @@ "ProductCodeStringList": { "base": null, "refs": { + "ModifyFpgaImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AFI, it can't be removed. This parameter is valid only when modifying the productCodes attribute.

", "ModifyImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute.

" } }, @@ -4800,7 +4903,7 @@ "ReasonCodesList": { "base": null, "refs": { - "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describes the health state of your instance.

  • instance-stuck-in-state: My instance is stuck in a state.

  • unresponsive: My instance is unresponsive.

  • not-accepting-credentials: My instance is not accepting my credentials.

  • password-not-available: A password is not available for my instance.

  • performance-network: My instance is experiencing performance problems which I believe are network related.

  • performance-instance-store: My instance is experiencing performance problems which I believe are related to the instance stores.

  • performance-ebs-volume: My instance is experiencing performance problems which I believe are related to an EBS volume.

  • performance-other: My instance is experiencing performance problems.

  • other: [explain using the description parameter]

" + "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describe the health state of your instance.

  • instance-stuck-in-state: My instance is stuck in a state.

  • unresponsive: My instance is unresponsive.

  • not-accepting-credentials: My instance is not accepting my credentials.

  • password-not-available: A password is not available for my instance.

  • performance-network: My instance is experiencing performance problems that I believe are network related.

  • performance-instance-store: My instance is experiencing performance problems that I believe are related to the instance stores.

  • performance-ebs-volume: My instance is experiencing performance problems that I believe are related to an EBS volume.

  • performance-other: My instance is experiencing performance problems.

  • other: [explain using the description parameter]

" } }, "RebootInstancesRequest": { @@ -5142,6 +5245,22 @@ "ReservedInstancesModification$ReservedInstancesIds": "

The IDs of one or more Reserved Instances.

" } }, + "ResetFpgaImageAttributeName": { + "base": null, + "refs": { + "ResetFpgaImageAttributeRequest$Attribute": "

The attribute.

" + } + }, + "ResetFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "ResetImageAttributeName": { "base": null, "refs": { @@ -5868,6 +5987,12 @@ "ConversionTask$ConversionTaskId": "

The ID of the conversion task.

", "ConversionTask$ExpirationTime": "

The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.

", "ConversionTask$StatusMessage": "

The status message related to the conversion task.

", + "CopyFpgaImageRequest$SourceFpgaImageId": "

The ID of the source AFI.

", + "CopyFpgaImageRequest$Description": "

The description for the new AFI.

", + "CopyFpgaImageRequest$Name": "

The name for the new AFI. The default is the name of the source AFI.

", + "CopyFpgaImageRequest$SourceRegion": "

The region that contains the source AFI.

", + "CopyFpgaImageRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "CopyFpgaImageResult$FpgaImageId": "

The ID of the new AFI.

", "CopyImageRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", "CopyImageRequest$Description": "

A description for the new AMI in the destination region.

", "CopyImageRequest$KmsKeyId": "

The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when encrypting the snapshots of an image during a copy operation. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. The specified CMK must exist in the region that the snapshot is being copied to. If a KmsKeyId is specified, the Encrypted flag must also be set.

", @@ -5969,6 +6094,7 @@ "CustomerGatewayIdStringList$member": null, "DeleteCustomerGatewayRequest$CustomerGatewayId": "

The ID of the customer gateway.

", "DeleteDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set.

", + "DeleteFpgaImageRequest$FpgaImageId": "

The ID of the AFI.

", "DeleteInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", "DeleteKeyPairRequest$KeyName": "

The name of the key pair.

", "DeleteNatGatewayRequest$NatGatewayId": "

The ID of the NAT gateway.

", @@ -6002,6 +6128,7 @@ "DescribeElasticGpusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeFlowLogsRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeFlowLogsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", "DescribeHostReservationOfferingsRequest$NextToken": "

The token to use to retrieve the next page of results.

", "DescribeHostReservationOfferingsRequest$OfferingId": "

The ID of the reservation offering.

", "DescribeHostReservationOfferingsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -6153,6 +6280,9 @@ "FpgaImage$ShellVersion": "

The version of the AWS Shell that was used to create the bitstream.

", "FpgaImage$OwnerId": "

The AWS account ID of the AFI owner.

", "FpgaImage$OwnerAlias": "

The alias of the AFI owner. Possible values include self, amazon, and aws-marketplace.

", + "FpgaImageAttribute$FpgaImageId": "

The ID of the AFI.

", + "FpgaImageAttribute$Name": "

The name of the AFI.

", + "FpgaImageAttribute$Description": "

The description of the AFI.

", "FpgaImageIdList$member": null, "FpgaImageState$Message": "

If the state is failed, this is the error message.

", "GetConsoleOutputRequest$InstanceId": "

The ID of the instance.

", @@ -6166,7 +6296,7 @@ "GetHostReservationPurchasePreviewResult$TotalUpfrontPrice": "

The potential total upfront price. This is billed immediately.

", "GetPasswordDataRequest$InstanceId": "

The ID of the Windows instance.

", "GetPasswordDataResult$InstanceId": "

The ID of the Windows instance.

", - "GetPasswordDataResult$PasswordData": "

The password of the instance.

", + "GetPasswordDataResult$PasswordData": "

The password of the instance. Returns an empty string if the password is not available.

", "GetReservedInstancesExchangeQuoteResult$CurrencyCode": "

The currency of the transaction.

", "GetReservedInstancesExchangeQuoteResult$PaymentDue": "

The total true upfront charge for the exchange.

", "GetReservedInstancesExchangeQuoteResult$ValidationFailureReason": "

Describes the reason why the exchange cannot be completed.

", @@ -6273,7 +6403,7 @@ "Instance$InstanceId": "

The ID of the instance.

", "Instance$KernelId": "

The kernel associated with this instance, if applicable.

", "Instance$KeyName": "

The name of the key pair, if this instance was launched with an associated key pair.

", - "Instance$PrivateDnsName": "

(IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

[EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.

", + "Instance$PrivateDnsName": "

(IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

[EC2-VPC] The Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.

", "Instance$PrivateIpAddress": "

The private IPv4 address assigned to the instance.

", "Instance$PublicDnsName": "

(IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the running state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.

", "Instance$PublicIpAddress": "

The public IPv4 address assigned to the instance, if applicable.

", @@ -6283,7 +6413,7 @@ "Instance$VpcId": "

[EC2-VPC] The ID of the VPC in which the instance is running.

", "Instance$ClientToken": "

The idempotency token you provided when you launched the instance, if applicable.

", "Instance$RootDeviceName": "

The root device name (for example, /dev/sda1 or /dev/xvda).

", - "Instance$SpotInstanceRequestId": "

If the request is a Spot instance request, the ID of the request.

", + "Instance$SpotInstanceRequestId": "

If the request is a Spot Instance request, the ID of the request.

", "Instance$SriovNetSupport": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

", "InstanceAttribute$InstanceId": "

The ID of the instance.

", "InstanceBlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", @@ -6342,6 +6472,11 @@ "LaunchSpecification$KeyName": "

The name of the key pair.

", "LaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", "LaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

", + "LoadPermission$UserId": "

The AWS account ID.

", + "LoadPermissionRequest$UserId": "

The AWS account ID.

", + "ModifyFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", + "ModifyFpgaImageAttributeRequest$Description": "

A description for the AFI.

", + "ModifyFpgaImageAttributeRequest$Name": "

A name for the AFI.

", "ModifyIdFormatRequest$Resource": "

The type of resource: instance | reservation | snapshot | volume

", "ModifyIdentityIdFormatRequest$PrincipalArn": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify all to modify the ID format for all IAM users, IAM roles, and the root user of the account.

", "ModifyIdentityIdFormatRequest$Resource": "

The type of resource: instance | reservation | snapshot | volume

", @@ -6532,6 +6667,7 @@ "ReservedInstancesOffering$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", "ReservedInstancesOffering$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering. This is the offering ID used in GetReservedInstancesExchangeQuote to confirm that an exchange can be made.

", "ReservedInstancesOfferingIdStringList$member": null, + "ResetFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", "ResetInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", "ResetNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", @@ -6574,7 +6710,7 @@ "RunInstancesRequest$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

", "RunInstancesRequest$RamdiskId": "

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", "RunInstancesRequest$SubnetId": "

[EC2-VPC] The ID of the subnet to launch the instance into.

", - "RunInstancesRequest$UserData": "

The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

", + "RunInstancesRequest$UserData": "

The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using an AWS SDK or command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text.

", "RunInstancesRequest$AdditionalInfo": "

Reserved.

", "RunInstancesRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", "RunInstancesRequest$PrivateIpAddress": "

[EC2-VPC] The primary IPv4 address. You must specify a value from the IPv4 address range of the subnet.

Only one private IP address can be designated as primary. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification. You cannot specify this option if you're launching more than one instance in the request.

", @@ -6699,7 +6835,7 @@ "StaleSecurityGroup$VpcId": "

The ID of the VPC for the security group.

", "StartInstancesRequest$AdditionalInfo": "

Reserved.

", "StateReason$Code": "

The reason code for the state change.

", - "StateReason$Message": "

The message for the state change.

  • Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request.

  • Server.InternalError: An internal error occurred during instance launch, resulting in termination.

  • Server.ScheduledStop: The instance was stopped due to a scheduled retirement.

  • Server.SpotInstanceTermination: A Spot instance was terminated due to an increase in the market price.

  • Client.InternalError: A client error caused the instance to terminate on launch.

  • Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance.

  • Client.InstanceTerminated: The instance was terminated or rebooted during AMI creation.

  • Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API.

  • Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.

  • Client.InvalidSnapshot.NotFound: The specified snapshot was not found.

", + "StateReason$Message": "

The message for the state change.

  • Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request.

  • Server.InternalError: An internal error occurred during instance launch, resulting in termination.

  • Server.ScheduledStop: The instance was stopped due to a scheduled retirement.

  • Server.SpotInstanceTermination: A Spot Instance was terminated due to an increase in the market price.

  • Client.InternalError: A client error caused the instance to terminate on launch.

  • Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance.

  • Client.InstanceTerminated: The instance was terminated or rebooted during AMI creation.

  • Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API.

  • Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.

  • Client.InvalidSnapshot.NotFound: The specified snapshot was not found.

", "StorageLocation$Bucket": "

The name of the S3 bucket.

", "StorageLocation$Key": "

The key.

", "Subnet$AvailabilityZone": "

The Availability Zone of the subnet.

", @@ -6787,6 +6923,7 @@ "VpcPeeringConnectionVpcInfo$VpcId": "

The ID of the VPC.

", "VpnConnection$CustomerGatewayConfiguration": "

The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state.

", "VpnConnection$CustomerGatewayId": "

The ID of the customer gateway at your end of the VPN connection.

", + "VpnConnection$Category": "

The category of the VPN connection. A value of VPN indicates an AWS VPN connection. A value of VPN-Classic indicates an AWS Classic VPN connection. For more information, see AWS Managed VPN Categories in the Amazon Virtual Private Cloud User Guide.

", "VpnConnection$VpnConnectionId": "

The ID of the VPN connection.

", "VpnConnection$VpnGatewayId": "

The ID of the virtual private gateway at the AWS side of the VPN connection.

", "VpnConnectionIdStringList$member": null, @@ -6794,6 +6931,8 @@ "VpnGateway$VpnGatewayId": "

The ID of the virtual private gateway.

", "VpnGatewayIdStringList$member": null, "VpnStaticRoute$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer data center.

", + "VpnTunnelOptionsSpecification$TunnelInsideCidr": "

The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway.

Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following CIDR blocks are reserved and cannot be used:

  • 169.254.0.0/30

  • 169.254.1.0/30

  • 169.254.2.0/30

  • 169.254.3.0/30

  • 169.254.4.0/30

  • 169.254.5.0/30

  • 169.254.169.252/30

", + "VpnTunnelOptionsSpecification$PreSharedKey": "

The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.

Constraints: Allowed characters are alphanumeric characters and ._. Must be between 8 and 64 characters in length and cannot start with zero (0).

", "ZoneNameStringList$member": null } }, @@ -6984,6 +7123,12 @@ "FlowLog$TrafficType": "

The type of traffic captured for the flow log.

" } }, + "TunnelOptionsList": { + "base": null, + "refs": { + "VpnConnectionOptionsSpecification$TunnelOptions": "

The tunnel options for the VPN connection.

" + } + }, "UnassignIpv6AddressesRequest": { "base": null, "refs": { @@ -7080,6 +7225,7 @@ "UserGroupStringList": { "base": null, "refs": { + "ModifyFpgaImageAttributeRequest$UserGroups": "

One or more user groups. This parameter is valid only when modifying the loadPermission attribute.

", "ModifyImageAttributeRequest$UserGroups": "

One or more user groups. This is only valid when modifying the launchPermission attribute.

" } }, @@ -7105,6 +7251,7 @@ "UserIdStringList": { "base": null, "refs": { + "ModifyFpgaImageAttributeRequest$UserIds": "

One or more AWS account IDs. This parameter is valid only when modifying the loadPermission attribute.

", "ModifyImageAttributeRequest$UserIds": "

One or more AWS account IDs. This is only valid when modifying the launchPermission attribute.

", "ModifySnapshotAttributeRequest$UserIds": "

The account ID to modify for the snapshot.

" } @@ -7496,7 +7643,7 @@ "VpnConnectionOptionsSpecification": { "base": "

Describes VPN connection options.

", "refs": { - "CreateVpnConnectionRequest$Options": "

Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" + "CreateVpnConnectionRequest$Options": "

The options for the VPN connection.

" } }, "VpnGateway": { @@ -7544,6 +7691,12 @@ "VpnStaticRoute$Source": "

Indicates how the routes were provided.

" } }, + "VpnTunnelOptionsSpecification": { + "base": "

The tunnel options for a VPN connection.

", + "refs": { + "TunnelOptionsList$member": null + } + }, "ZoneNameStringList": { "base": null, "refs": { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/waiters-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/waiters-2.json index 0f141739..33ea7b04 100755 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/waiters-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ec2/2016-11-15/waiters-2.json @@ -390,6 +390,12 @@ "argument": "SpotInstanceRequests[].Status.Code", "expected": "fulfilled" }, + { + "state": "success", + "matcher": "pathAll", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "request-canceled-and-instance-running" + }, { "state": "failure", "matcher": "pathAny", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/api-2.json index 1adc48d4..3afcced2 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/api-2.json @@ -578,6 +578,7 @@ "environment":{"shape":"EnvironmentVariables"}, "mountPoints":{"shape":"MountPointList"}, "volumesFrom":{"shape":"VolumeFromList"}, + "linuxParameters":{"shape":"LinuxParameters"}, "hostname":{"shape":"String"}, "user":{"shape":"String"}, "workingDirectory":{"shape":"String"}, @@ -918,6 +919,13 @@ }, "exception":true }, + "KernelCapabilities":{ + "type":"structure", + "members":{ + "add":{"shape":"StringList"}, + "drop":{"shape":"StringList"} + } + }, "KeyValuePair":{ "type":"structure", "members":{ @@ -925,6 +933,12 @@ "value":{"shape":"String"} } }, + "LinuxParameters":{ + "type":"structure", + "members":{ + "capabilities":{"shape":"KernelCapabilities"} + } + }, "ListAttributesRequest":{ "type":"structure", "required":["targetType"], diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/docs-2.json index b624b3f3..f1df48ad 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ecs/2014-11-13/docs-2.json @@ -78,7 +78,7 @@ "ContainerDefinition$disableNetworking": "

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

", "ContainerDefinition$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

", "ContainerDefinition$readonlyRootFilesystem": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

", - "DeregisterContainerInstanceRequest$force": "

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.

", + "DeregisterContainerInstanceRequest$force": "

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.

", "MountPoint$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

", "VolumeFrom$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" } @@ -444,12 +444,24 @@ "refs": { } }, + "KernelCapabilities": { + "base": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. For more information on the default capabilities and the non-default available capabilities, see Runtime privilege and Linux capabilities in the Docker run reference. For more detailed information on these Linux capabilities, see the capabilities(7) Linux manual page.

", + "refs": { + "LinuxParameters$capabilities": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.

" + } + }, "KeyValuePair": { "base": "

A key and value pair object.

", "refs": { "EnvironmentVariables$member": null } }, + "LinuxParameters": { + "base": "

Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

", + "refs": { + "ContainerDefinition$linuxParameters": "

Linux-specific modifications that are applied to the container, such as Linux KernelCapabilities.

" + } + }, "ListAttributesRequest": { "base": null, "refs": { @@ -529,7 +541,7 @@ "LoadBalancers": { "base": null, "refs": { - "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable.

For Elastic Load Balancing Classic load balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

For Elastic Load Balancing Application load balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

", + "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable.

For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

", "Service$loadBalancers": "

A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

" } }, @@ -797,7 +809,7 @@ "Container$lastStatus": "

The last known status of the container.

", "Container$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", "ContainerDefinition$name": "

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the --name option to docker run.

", - "ContainerDefinition$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

  • Images in Amazon ECR repositories use the full registry and repository URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

  • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

  • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

", + "ContainerDefinition$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

  • Images in Amazon ECR repositories can be specified by either using the full registry/repository:tag or registry/repository@digest. For example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

  • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

  • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

", "ContainerDefinition$hostname": "

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.

", "ContainerDefinition$user": "

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

", "ContainerDefinition$workingDirectory": "

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run.

", @@ -866,7 +878,7 @@ "ListTasksRequest$serviceName": "

The name of the service with which to filter the ListTasks results. Specifying a serviceName limits the results to tasks that belong to that service.

", "ListTasksResponse$nextToken": "

The nextToken value to include in a future ListTasks request. When the results of a ListTasks request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "LoadBalancer$targetGroupArn": "

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.

", - "LoadBalancer$loadBalancerName": "

The name of a Classic load balancer.

", + "LoadBalancer$loadBalancerName": "

The name of a load balancer.

", "LoadBalancer$containerName": "

The name of the container (as it appears in a container definition) to associate with the load balancer.

", "LogConfigurationOptionsMap$key": null, "LogConfigurationOptionsMap$value": null, @@ -957,6 +969,8 @@ "DescribeContainerInstancesRequest$containerInstances": "

A list of container instance IDs or full Amazon Resource Name (ARN) entries.

", "DescribeServicesRequest$services": "

A list of services to describe. You may specify up to 10 services to describe in a single operation.

", "DescribeTasksRequest$tasks": "

A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries.

", + "KernelCapabilities$add": "

The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to CapAdd in the Create a container section of the Docker Remote API and the --cap-add option to docker run.

", + "KernelCapabilities$drop": "

The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to CapDrop in the Create a container section of the Docker Remote API and the --cap-drop option to docker run.

", "ListClustersResponse$clusterArns": "

The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account.

", "ListContainerInstancesResponse$containerInstanceArns": "

The list of container instances with full Amazon Resource Name (ARN) entries for each container instance associated with the specified cluster.

", "ListServicesResponse$serviceArns": "

The list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster.

", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/api-2.json index fca40b45..35cd0395 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/api-2.json @@ -968,6 +968,23 @@ }, "errors" : [ ] }, + "ResetDeployments" : { + "name" : "ResetDeployments", + "http" : { + "method" : "POST", + "requestUri" : "/greengrass/groups/{GroupId}/deployments/$reset", + "responseCode" : 200 + }, + "input" : { + "shape" : "ResetDeploymentsRequest" + }, + "output" : { + "shape" : "ResetDeploymentsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, "UpdateConnectivityInfo" : { "name" : "UpdateConnectivityInfo", "http" : { @@ -1873,6 +1890,9 @@ "DeploymentId" : { "shape" : "__string" }, + "DeploymentType" : { + "shape" : "DeploymentType" + }, "GroupArn" : { "shape" : "__string" } @@ -1880,7 +1900,7 @@ }, "DeploymentType" : { "type" : "string", - "enum" : [ "NewDeployment", "Redeployment" ] + "enum" : [ "NewDeployment", "Redeployment", "ResetDeployment", "ForceResetDeployment" ] }, "Deployments" : { "type" : "list", @@ -2169,6 +2189,12 @@ "DeploymentStatus" : { "shape" : "__string" }, + "DeploymentType" : { + "shape" : "DeploymentType" + }, + "ErrorDetails" : { + "shape" : "ErrorDetails" + }, "ErrorMessage" : { "shape" : "__string" }, @@ -3228,6 +3254,36 @@ "shape" : "__string" } }, + "ResetDeploymentsRequest" : { + "type" : "structure", + "members" : { + "AmznClientToken" : { + "shape" : "__string", + "location" : "header", + "locationName" : "X-Amzn-Client-Token" + }, + "Force" : { + "shape" : "__boolean" + }, + "GroupId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "GroupId" + } + }, + "required" : [ "GroupId" ] + }, + "ResetDeploymentsResponse" : { + "type" : "structure", + "members" : { + "DeploymentArn" : { + "shape" : "__string" + }, + "DeploymentId" : { + "shape" : "__string" + } + } + }, "Subscription" : { "type" : "structure", "members" : { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/docs-2.json index 30bff0a3..e079aadc 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/greengrass/2017-06-07/docs-2.json @@ -1,5 +1,5 @@ { - "version" : "1.0", + "version" : "2.0", "service" : "AWS Greengrass seamlessly extends AWS onto physical devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS Greengrass ensures your devices can respond quickly to local events and operate with intermittent connectivity. AWS Greengrass minimizes the cost of transmitting data to the cloud by allowing you to author AWS Lambda functions that execute locally.", "operations" : { "AssociateRoleToGroup" : "Associates a role with a group. The role will be used by the AWS Greengrass core in order to access AWS cloud services. The role's permissions will allow Greengrass core Lambda functions to perform actions against the cloud.", @@ -58,6 +58,7 @@ "ListLoggerDefinitions" : "Retrieves a list of logger definitions.", "ListSubscriptionDefinitionVersions" : "Lists the versions of a subscription definition.", "ListSubscriptionDefinitions" : "Retrieves a list of subscription definitions.", + "ResetDeployments" : "Resets a group's deployments.", "UpdateConnectivityInfo" : "Updates the connectivity information for the core. Any devices that belong to the group which has this core will receive this information in order to find the location of the core and connect to it.", "UpdateCoreDefinition" : "Updates a core definition.", "UpdateDeviceDefinition" : "Updates a device definition.", @@ -91,8 +92,8 @@ "ConnectivityInfo" : { "base" : "Connectivity Info", "refs" : { - "GetConnectivityInfoResponse$ConnectivityInfo" : "Connectivity info array", - "UpdateConnectivityInfoRequest$ConnectivityInfo" : "Connectivity info array" + "GetConnectivityInfoResponse$ConnectivityInfo" : "Connectivity info list", + "UpdateConnectivityInfoRequest$ConnectivityInfo" : "Connectivity info list" } }, "Core" : { @@ -134,13 +135,15 @@ "DeploymentType" : { "base" : null, "refs" : { - "CreateDeploymentRequest$DeploymentType" : "Type of deployment" + "CreateDeploymentRequest$DeploymentType" : "Type of deployment. When used in CreateDeployment, only NewDeployment and Redeployment are valid. ", + "Deployment$DeploymentType" : "The type of deployment.", + "GetDeploymentStatusResponse$DeploymentType" : "The type of the deployment." } }, "Deployments" : { "base" : null, "refs" : { - "ListDeploymentsResponse$Deployments" : "Information on deployments" + "ListDeploymentsResponse$Deployments" : "List of deployments for the requested groups" } }, "Device" : { @@ -176,7 +179,8 @@ "ErrorDetails" : { "base" : "Error Details", "refs" : { - "GeneralError$ErrorDetails" : "Error Details" + "GeneralError$ErrorDetails" : "Error Details", + "GetDeploymentStatusResponse$ErrorDetails" : "The error Details" } }, "Function" : { @@ -262,7 +266,7 @@ "refs" : { } }, "GroupInformation" : { - "base" : "Information of a group", + "base" : "Information on the group", "refs" : { "ListGroupsResponse$Groups" : "Groups" } @@ -274,11 +278,11 @@ } }, "InternalServerErrorException" : { - "base" : "This request was invalid.", + "base" : "Server Error", "refs" : { } }, "ListDefinitionsResponse" : { - "base" : "List of definition response", + "base" : "List of definition responses", "refs" : { } }, "ListDeploymentsResponse" : { @@ -371,6 +375,14 @@ "base" : null, "refs" : { } }, + "ResetDeploymentsRequest" : { + "base" : "Information needed to perform a reset of a group's deployments.", + "refs" : { } + }, + "ResetDeploymentsResponse" : { + "base" : null, + "refs" : { } + }, "Subscription" : { "base" : "Information on subscription", "refs" : { @@ -406,7 +418,8 @@ "refs" : { "Core$SyncShadow" : "If true, the local shadow value automatically syncs with the cloud's shadow state.", "Device$SyncShadow" : "If true, the local shadow value automatically syncs with the cloud's shadow state.", - "FunctionConfiguration$Pinned" : "Whether the function is pinned or not. Pinned means the function is long-lived and starts when the core starts." + "FunctionConfiguration$Pinned" : "Whether the function is pinned or not. Pinned means the function is long-lived and starts when the core starts.", + "ResetDeploymentsRequest$Force" : "When set to true, perform a best-effort only core reset." } }, "__integer" : { @@ -433,8 +446,8 @@ "Core$ThingArn" : "Thing arn of the core.", "CreateDeploymentRequest$DeploymentId" : "Id of the deployment if you wish to redeploy a previous deployment.", "CreateDeploymentRequest$GroupVersionId" : "Group Version you wish to deploy.", - "CreateDeploymentResponse$DeploymentArn" : "Arn of the deployment.", - "CreateDeploymentResponse$DeploymentId" : "Id of the deployment.", + "CreateDeploymentResponse$DeploymentArn" : "The arn of the deployment.", + "CreateDeploymentResponse$DeploymentId" : "The id of the deployment.", "CreateGroupCertificateAuthorityResponse$GroupCertificateAuthorityArn" : "Arn of the group certificate authority.", "DefinitionInformation$Arn" : "Arn of the definition.", "DefinitionInformation$CreationTimestamp" : "Timestamp of when the definition was created.", @@ -458,7 +471,7 @@ "Function$Id" : "Id of the function in this version.", "FunctionConfiguration$ExecArgs" : "Execution Arguments", "FunctionConfiguration$Executable" : "Executable", - "GeneralError$Message" : "Message", + "GeneralError$Message" : "Message containing information about the error", "GetAssociatedRoleResponse$AssociatedAt" : "Time when the role was associated for the group.", "GetAssociatedRoleResponse$RoleArn" : "Arn of the role that is associated with the group.", "GetConnectivityInfoResponse$message" : "Response Text", @@ -516,6 +529,8 @@ "ListGroupsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", "ListVersionsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", "Logger$Id" : "Element Id for this entry in the list.", + "ResetDeploymentsResponse$DeploymentArn" : "The arn of the reset deployment.", + "ResetDeploymentsResponse$DeploymentId" : "The id of the reset deployment.", "Subscription$Id" : "Element Id for this entry in the list.", "Subscription$Source" : "Source of the subscription. Can be a thing arn, lambda arn or word 'cloud'", "Subscription$Subject" : "Subject of the message.", @@ -530,4 +545,4 @@ } } } -} +} \ No newline at end of file diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/api-2.json index 1b9dbb97..b9513c73 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/api-2.json @@ -44,6 +44,21 @@ {"shape":"CodeValidationException"} ] }, + "AddApplicationInputProcessingConfiguration":{ + "name":"AddApplicationInputProcessingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddApplicationInputProcessingConfigurationRequest"}, + "output":{"shape":"AddApplicationInputProcessingConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "AddApplicationOutput":{ "name":"AddApplicationOutput", "http":{ @@ -118,6 +133,21 @@ {"shape":"ConcurrentModificationException"} ] }, + "DeleteApplicationInputProcessingConfiguration":{ + "name":"DeleteApplicationInputProcessingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationInputProcessingConfigurationRequest"}, + "output":{"shape":"DeleteApplicationInputProcessingConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DeleteApplicationOutput":{ "name":"DeleteApplicationOutput", "http":{ @@ -248,6 +278,26 @@ "members":{ } }, + "AddApplicationInputProcessingConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "InputId", + "InputProcessingConfiguration" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "InputId":{"shape":"Id"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"} + } + }, + "AddApplicationInputProcessingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "AddApplicationInputRequest":{ "type":"structure", "required":[ @@ -497,6 +547,24 @@ "members":{ } }, + "DeleteApplicationInputProcessingConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "InputId" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "InputId":{"shape":"Id"} + } + }, + "DeleteApplicationInputProcessingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteApplicationOutputRequest":{ "type":"structure", "required":[ @@ -571,15 +639,12 @@ }, "DiscoverInputSchemaRequest":{ "type":"structure", - "required":[ - "ResourceARN", - "RoleARN", - "InputStartingPositionConfiguration" - ], "members":{ "ResourceARN":{"shape":"ResourceARN"}, "RoleARN":{"shape":"RoleARN"}, - "InputStartingPositionConfiguration":{"shape":"InputStartingPositionConfiguration"} + "InputStartingPositionConfiguration":{"shape":"InputStartingPositionConfiguration"}, + "S3Configuration":{"shape":"S3Configuration"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"} } }, "DiscoverInputSchemaResponse":{ @@ -587,11 +652,16 @@ "members":{ "InputSchema":{"shape":"SourceSchema"}, "ParsedInputRecords":{"shape":"ParsedInputRecords"}, + "ProcessedInputRecords":{"shape":"ProcessedInputRecords"}, "RawInputRecords":{"shape":"RawInputRecords"} } }, "ErrorMessage":{"type":"string"}, - "FileKey":{"type":"string"}, + "FileKey":{ + "type":"string", + "max":1024, + "min":1 + }, "Id":{ "type":"string", "max":50, @@ -622,6 +692,7 @@ ], "members":{ "NamePrefix":{"shape":"InAppStreamName"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"}, "KinesisStreamsInput":{"shape":"KinesisStreamsInput"}, "KinesisFirehoseInput":{"shape":"KinesisFirehoseInput"}, "InputParallelism":{"shape":"InputParallelism"}, @@ -649,6 +720,7 @@ "InputId":{"shape":"Id"}, "NamePrefix":{"shape":"InAppStreamName"}, "InAppStreamNames":{"shape":"InAppStreamNames"}, + "InputProcessingConfigurationDescription":{"shape":"InputProcessingConfigurationDescription"}, "KinesisStreamsInputDescription":{"shape":"KinesisStreamsInputDescription"}, "KinesisFirehoseInputDescription":{"shape":"KinesisFirehoseInputDescription"}, "InputSchema":{"shape":"SourceSchema"}, @@ -660,6 +732,31 @@ "type":"list", "member":{"shape":"InputDescription"} }, + "InputLambdaProcessor":{ + "type":"structure", + "required":[ + "ResourceARN", + "RoleARN" + ], + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "RoleARN":{"shape":"RoleARN"} + } + }, + "InputLambdaProcessorDescription":{ + "type":"structure", + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "RoleARN":{"shape":"RoleARN"} + } + }, + "InputLambdaProcessorUpdate":{ + "type":"structure", + "members":{ + "ResourceARNUpdate":{"shape":"ResourceARN"}, + "RoleARNUpdate":{"shape":"RoleARN"} + } + }, "InputParallelism":{ "type":"structure", "members":{ @@ -677,6 +774,26 @@ "CountUpdate":{"shape":"InputParallelismCount"} } }, + "InputProcessingConfiguration":{ + "type":"structure", + "required":["InputLambdaProcessor"], + "members":{ + "InputLambdaProcessor":{"shape":"InputLambdaProcessor"} + } + }, + "InputProcessingConfigurationDescription":{ + "type":"structure", + "members":{ + "InputLambdaProcessorDescription":{"shape":"InputLambdaProcessorDescription"} + } + }, + "InputProcessingConfigurationUpdate":{ + "type":"structure", + "required":["InputLambdaProcessorUpdate"], + "members":{ + "InputLambdaProcessorUpdate":{"shape":"InputLambdaProcessorUpdate"} + } + }, "InputSchemaUpdate":{ "type":"structure", "members":{ @@ -705,6 +822,7 @@ "members":{ "InputId":{"shape":"Id"}, "NamePrefixUpdate":{"shape":"InAppStreamName"}, + "InputProcessingConfigurationUpdate":{"shape":"InputProcessingConfigurationUpdate"}, "KinesisStreamsInputUpdate":{"shape":"KinesisStreamsInputUpdate"}, "KinesisFirehoseInputUpdate":{"shape":"KinesisFirehoseInputUpdate"}, "InputSchemaUpdate":{"shape":"InputSchemaUpdate"}, @@ -938,6 +1056,11 @@ "type":"list", "member":{"shape":"ParsedInputRecord"} }, + "ProcessedInputRecord":{"type":"string"}, + "ProcessedInputRecords":{ + "type":"list", + "member":{"shape":"ProcessedInputRecord"} + }, "RawInputRecord":{"type":"string"}, "RawInputRecords":{ "type":"list", @@ -964,7 +1087,10 @@ "type":"string", "pattern":"[a-zA-Z_][a-zA-Z0-9_]*" }, - "RecordColumnSqlType":{"type":"string"}, + "RecordColumnSqlType":{ + "type":"string", + "min":1 + }, "RecordColumns":{ "type":"list", "member":{"shape":"RecordColumn"}, @@ -994,7 +1120,10 @@ "type":"string", "min":1 }, - "RecordRowPath":{"type":"string"}, + "RecordRowPath":{ + "type":"string", + "min":1 + }, "ReferenceDataSource":{ "type":"structure", "required":[ @@ -1043,7 +1172,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"arn:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:\\d{12}:[a-zA-Z_0-9+=,.@\\-_/:]+" + "pattern":"arn:.*" }, "ResourceInUseException":{ "type":"structure", @@ -1072,6 +1201,19 @@ "min":1, "pattern":"arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" }, + "S3Configuration":{ + "type":"structure", + "required":[ + "RoleARN", + "BucketARN", + "FileKey" + ], + "members":{ + "RoleARN":{"shape":"RoleARN"}, + "BucketARN":{"shape":"BucketARN"}, + "FileKey":{"shape":"FileKey"} + } + }, "S3ReferenceDataSource":{ "type":"structure", "required":[ @@ -1111,7 +1253,8 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "exception":true + "exception":true, + "fault":true }, "SourceSchema":{ "type":"structure", @@ -1158,7 +1301,8 @@ "type":"structure", "members":{ "message":{"shape":"ErrorMessage"}, - "RawInputRecords":{"shape":"RawInputRecords"} + "RawInputRecords":{"shape":"RawInputRecords"}, + "ProcessedInputRecords":{"shape":"ProcessedInputRecords"} }, "exception":true }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/docs-2.json index 93e3fb55..b2f5dbd8 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/kinesisanalytics/2015-08-14/docs-2.json @@ -4,11 +4,13 @@ "operations": { "AddApplicationCloudWatchLoggingOption": "

Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs.

", "AddApplicationInput": "

Adds a streaming source to your Amazon Kinesis application. For conceptual information, see Configuring Application Input.

You can add a streaming source either when you create an application or you can use this operation to add a streaming source after you create an application. For more information, see CreateApplication.

Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the DescribeApplication operation to find the current application version.

This operation requires permissions to perform the kinesisanalytics:AddApplicationInput action.

", + "AddApplicationInputProcessingConfiguration": "

Adds an InputProcessingConfiguration to an application. An input processor preprocesses records on the input stream before the application's SQL code executes. Currently, the only input processor available is AWS Lambda.

", "AddApplicationOutput": "

Adds an external destination to your Amazon Kinesis Analytics application.

If you want Amazon Kinesis Analytics to deliver data from an in-application stream within your application to an external destination (such as an Amazon Kinesis stream or a Firehose delivery stream), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.

You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors. For conceptual information, see Understanding Application Output (Destination).

Note that any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the DescribeApplication operation to find the current application version.

For the limits on the number of application inputs and outputs you can configure, see Limits.

This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput action.

", "AddApplicationReferenceDataSource": "

Adds a reference data source to an existing application.

Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in Amazon S3 object maps to columns in the resulting in-application table.

For conceptual information, see Configuring Application Input. For the limits on data sources you can add to your application, see Limits.

This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput action.

", "CreateApplication": "

Creates an Amazon Kinesis Analytics application. You can configure each application with one streaming source as input, application code to process the input, and up to five streaming destinations where you want Amazon Kinesis Analytics to write the output data from your application. For an overview, see How it Works.

In the input configuration, you map the streaming source to an in-application stream, which you can think of as a constantly updating table. In the mapping, you must provide a schema for the in-application stream and map each data column in the in-application stream to a data element in the streaming source.

Your application code is one or more SQL statements that read input data, transform it, and generate output. Your application code can create one or more SQL artifacts like SQL streams or pumps.

In the output configuration, you can configure the application to write data from in-application streams created in your applications to up to five streaming destinations.

To read data from your source stream or write data to destination streams, Amazon Kinesis Analytics needs your permissions. You grant these permissions by creating IAM roles. This operation requires permissions to perform the kinesisanalytics:CreateApplication action.

For introductory exercises to create an Amazon Kinesis Analytics application, see Getting Started.

", "DeleteApplication": "

Deletes the specified application. Amazon Kinesis Analytics halts application execution and deletes the application, including any application artifacts (such as in-application streams, reference table, and application code).

This operation requires permissions to perform the kinesisanalytics:DeleteApplication action.

", "DeleteApplicationCloudWatchLoggingOption": "

Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs.

", + "DeleteApplicationInputProcessingConfiguration": "

Deletes an InputProcessingConfiguration from an input.

", "DeleteApplicationOutput": "

Deletes output destination configuration from your application configuration. Amazon Kinesis Analytics will no longer write data from the corresponding in-application stream to the external output destination.

This operation requires permissions to perform the kinesisanalytics:DeleteApplicationOutput action.

", "DeleteApplicationReferenceDataSource": "

Deletes a reference data source configuration from the specified application configuration.

If the application is running, Amazon Kinesis Analytics immediately removes the in-application table that you created using the AddApplicationReferenceDataSource operation.

This operation requires permissions to perform the kinesisanalytics.DeleteApplicationReferenceDataSource action.

", "DescribeApplication": "

Returns information about a specific Amazon Kinesis Analytics application.

If you want to retrieve a list of all applications in your account, use the ListApplications operation.

This operation requires permissions to perform the kinesisanalytics:DescribeApplication action. You can use DescribeApplication to get the current application versionId, which you need to call other operations such as Update.

", @@ -29,6 +31,16 @@ "refs": { } }, + "AddApplicationInputProcessingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "AddApplicationInputProcessingConfigurationResponse": { + "base": null, + "refs": { + } + }, "AddApplicationInputRequest": { "base": "

", "refs": { @@ -84,6 +96,7 @@ "base": null, "refs": { "AddApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Kinesis Analytics application name.

", + "AddApplicationInputProcessingConfigurationRequest$ApplicationName": "

Name of the application to which you want to add the input processing configuration.

", "AddApplicationInputRequest$ApplicationName": "

Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.

", "AddApplicationOutputRequest$ApplicationName": "

Name of the application to which you want to add the output configuration.

", "AddApplicationReferenceDataSourceRequest$ApplicationName": "

Name of an existing application.

", @@ -91,6 +104,7 @@ "ApplicationSummary$ApplicationName": "

Name of the application.

", "CreateApplicationRequest$ApplicationName": "

Name of your Amazon Kinesis Analytics application (for example, sample-app).

", "DeleteApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Kinesis Analytics application name.

", + "DeleteApplicationInputProcessingConfigurationRequest$ApplicationName": "

The Kinesis Analytics application name.

", "DeleteApplicationOutputRequest$ApplicationName": "

Amazon Kinesis Analytics application name.

", "DeleteApplicationReferenceDataSourceRequest$ApplicationName": "

Name of an existing application.

", "DeleteApplicationRequest$ApplicationName": "

Name of the Amazon Kinesis Analytics application to delete.

", @@ -131,11 +145,13 @@ "base": null, "refs": { "AddApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", + "AddApplicationInputProcessingConfigurationRequest$CurrentApplicationVersionId": "

Version of the application to which you want to add the input processing configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "AddApplicationInputRequest$CurrentApplicationVersionId": "

Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication operation to find the current application version.

", "AddApplicationOutputRequest$CurrentApplicationVersionId": "

Version of the application to which you want add the output configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "AddApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

Version of the application for which you are adding the reference data source. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "ApplicationDetail$ApplicationVersionId": "

Provides the current application version.

", "DeleteApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", + "DeleteApplicationInputProcessingConfigurationRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", "DeleteApplicationOutputRequest$CurrentApplicationVersionId": "

Amazon Kinesis Analytics application version. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "DeleteApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

Version of the application. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "UpdateApplicationRequest$CurrentApplicationVersionId": "

The current application version ID. You can use the DescribeApplication operation to get this value.

" @@ -150,6 +166,7 @@ "BucketARN": { "base": null, "refs": { + "S3Configuration$BucketARN": null, "S3ReferenceDataSource$BucketARN": "

Amazon Resource Name (ARN) of the S3 bucket.

", "S3ReferenceDataSourceDescription$BucketARN": "

Amazon Resource Name (ARN) of the S3 bucket.

", "S3ReferenceDataSourceUpdate$BucketARNUpdate": "

Amazon Resource Name (ARN) of the S3 bucket.

" @@ -228,6 +245,16 @@ "refs": { } }, + "DeleteApplicationInputProcessingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteApplicationInputProcessingConfigurationResponse": { + "base": null, + "refs": { + } + }, "DeleteApplicationOutputRequest": { "base": "

", "refs": { @@ -277,7 +304,7 @@ } }, "DiscoverInputSchemaRequest": { - "base": "

", + "base": null, "refs": { } }, @@ -304,6 +331,7 @@ "FileKey": { "base": null, "refs": { + "S3Configuration$FileKey": null, "S3ReferenceDataSource$FileKey": "

Object key name containing reference data.

", "S3ReferenceDataSourceDescription$FileKey": "

Amazon S3 object key name.

", "S3ReferenceDataSourceUpdate$FileKeyUpdate": "

Object key name.

" @@ -312,9 +340,11 @@ "Id": { "base": null, "refs": { + "AddApplicationInputProcessingConfigurationRequest$InputId": "

The ID of the input configuration to which to add the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation.

", "CloudWatchLoggingOptionDescription$CloudWatchLoggingOptionId": "

ID of the CloudWatch logging option description.

", "CloudWatchLoggingOptionUpdate$CloudWatchLoggingOptionId": "

ID of the CloudWatch logging option to update

", "DeleteApplicationCloudWatchLoggingOptionRequest$CloudWatchLoggingOptionId": "

The CloudWatchLoggingOptionId of the CloudWatch logging option to delete. You can use the DescribeApplication operation to get the CloudWatchLoggingOptionId.

", + "DeleteApplicationInputProcessingConfigurationRequest$InputId": "

The ID of the input configuration from which to delete the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation.

", "DeleteApplicationOutputRequest$OutputId": "

The ID of the configuration to delete. Each output configuration that is added to the application, either when the application is created or later using the AddApplicationOutput operation, has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the DescribeApplication operation to get the specific OutputId.

", "DeleteApplicationReferenceDataSourceRequest$ReferenceId": "

ID of the reference data source. When you add a reference data source to your application using the AddApplicationReferenceDataSource, Amazon Kinesis Analytics assigns an ID. You can use the DescribeApplication operation to get the reference ID.

", "InputConfiguration$Id": "

Input source ID. You can get this ID by calling the DescribeApplication operation.

", @@ -355,7 +385,7 @@ "Input": { "base": "

When you configure the application input, you specify the streaming source, the in-application stream name that is created, and the mapping between the two. For more information, see Configuring Application Input.

", "refs": { - "AddApplicationInputRequest$Input": "

", + "AddApplicationInputRequest$Input": "

The Input to add.

", "Inputs$member": null } }, @@ -383,6 +413,24 @@ "ApplicationDetail$InputDescriptions": "

Describes the application input configuration. For more information, see Configuring Application Input.

" } }, + "InputLambdaProcessor": { + "base": "

An object that contains the ARN of the AWS Lambda function that is used to preprocess records in the stream, and the ARN of the IAM role used to access the AWS Lambda function.

", + "refs": { + "InputProcessingConfiguration$InputLambdaProcessor": "

The InputLambdaProcessor that is used to preprocess the records in the stream prior to being processed by your application code.

" + } + }, + "InputLambdaProcessorDescription": { + "base": "

An object that contains the ARN of the AWS Lambda function that is used to preprocess records in the stream, and the ARN of the IAM role used to access the AWS Lambda expression.

", + "refs": { + "InputProcessingConfigurationDescription$InputLambdaProcessorDescription": "

Provides configuration information about the associated InputLambdaProcessorDescription.

" + } + }, + "InputLambdaProcessorUpdate": { + "base": "

Represents an update to the InputLambdaProcessor that is used to preprocess the records in the stream.

", + "refs": { + "InputProcessingConfigurationUpdate$InputLambdaProcessorUpdate": "

Provides update information for an InputLambdaProcessor.

" + } + }, "InputParallelism": { "base": "

Describes the number of in-application streams to create for a given streaming source. For information about parallelism, see Configuring Application Input.

", "refs": { @@ -403,8 +451,28 @@ "InputUpdate$InputParallelismUpdate": "

Describes the parallelism updates (the number in-application streams Amazon Kinesis Analytics creates for the specific streaming source).

" } }, + "InputProcessingConfiguration": { + "base": "

Provides a description of a processor that is used to preprocess the records in the stream prior to being processed by your application code. Currently, the only input processor available is AWS Lambda.

", + "refs": { + "AddApplicationInputProcessingConfigurationRequest$InputProcessingConfiguration": "

The InputProcessingConfiguration to add to the application.

", + "DiscoverInputSchemaRequest$InputProcessingConfiguration": "

The InputProcessingConfiguration to use to preprocess the records before discovering the schema of the records.

", + "Input$InputProcessingConfiguration": "

The InputProcessingConfiguration for the Input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is InputLambdaProcessor.

" + } + }, + "InputProcessingConfigurationDescription": { + "base": "

Provides configuration information about an input processor. Currently, the only input processor available is AWS Lambda.

", + "refs": { + "InputDescription$InputProcessingConfigurationDescription": "

The description of the preprocessor that executes on records in this input before the application's code is run.

" + } + }, + "InputProcessingConfigurationUpdate": { + "base": "

Describes updates to an InputProcessingConfiguration.

", + "refs": { + "InputUpdate$InputProcessingConfigurationUpdate": "

Describes updates for an input processing configuration.

" + } + }, "InputSchemaUpdate": { - "base": "

Describes updates for the application's input schema.

", + "base": "

Describes updates for the application's input schema.

", "refs": { "InputUpdate$InputSchemaUpdate": "

Describes the data format on the streaming source, and how record elements on the streaming source map to columns of the in-application stream that is created.

" } @@ -619,6 +687,19 @@ "DiscoverInputSchemaResponse$ParsedInputRecords": "

An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row).

" } }, + "ProcessedInputRecord": { + "base": null, + "refs": { + "ProcessedInputRecords$member": null + } + }, + "ProcessedInputRecords": { + "base": null, + "refs": { + "DiscoverInputSchemaResponse$ProcessedInputRecords": "

Stream data that was modified by the processor specified in the InputProcessingConfiguration parameter.

", + "UnableToDetectSchemaException$ProcessedInputRecords": null + } + }, "RawInputRecord": { "base": null, "refs": { @@ -738,6 +819,9 @@ "ApplicationDetail$ApplicationARN": "

ARN of the application.

", "ApplicationSummary$ApplicationARN": "

ARN of the application.

", "DiscoverInputSchemaRequest$ResourceARN": "

Amazon Resource Name (ARN) of the streaming source.

", + "InputLambdaProcessor$ResourceARN": "

The ARN of the AWS Lambda function that operates on records in the stream.

", + "InputLambdaProcessorDescription$ResourceARN": "

The ARN of the AWS Lambda function that is used to preprocess the records in the stream.

", + "InputLambdaProcessorUpdate$ResourceARNUpdate": "

The ARN of the new AWS Lambda function that is used to preprocess the records in the stream.

", "KinesisFirehoseInput$ResourceARN": "

ARN of the input Firehose delivery stream.

", "KinesisFirehoseInputDescription$ResourceARN": "

Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.

", "KinesisFirehoseInputUpdate$ResourceARNUpdate": "

ARN of the input Amazon Kinesis Firehose delivery stream to read.

", @@ -774,6 +858,9 @@ "CloudWatchLoggingOptionDescription$RoleARN": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", "CloudWatchLoggingOptionUpdate$RoleARNUpdate": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", "DiscoverInputSchemaRequest$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf.

", + "InputLambdaProcessor$RoleARN": "

The ARN of the IAM role used to access the AWS Lambda function.

", + "InputLambdaProcessorDescription$RoleARN": "

The ARN of the IAM role used to access the AWS Lambda function.

", + "InputLambdaProcessorUpdate$RoleARNUpdate": "

The ARN of the new IAM role used to access the AWS Lambda function.

", "KinesisFirehoseInput$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to make sure the role has necessary permissions to access the stream.

", "KinesisFirehoseInputDescription$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics assumes to access the stream.

", "KinesisFirehoseInputUpdate$RoleARNUpdate": "

Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant necessary permissions to this role.

", @@ -786,11 +873,18 @@ "KinesisStreamsOutput$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.

", "KinesisStreamsOutputDescription$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream.

", "KinesisStreamsOutputUpdate$RoleARNUpdate": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.

", + "S3Configuration$RoleARN": null, "S3ReferenceDataSource$ReferenceRoleARN": "

ARN of the IAM role that the service can assume to read data on your behalf. This role must have permission for the s3:GetObject action on the object and trust policy that allows Amazon Kinesis Analytics service principal to assume this role.

", "S3ReferenceDataSourceDescription$ReferenceRoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf to populate the in-application reference table.

", "S3ReferenceDataSourceUpdate$ReferenceRoleARNUpdate": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application.

" } }, + "S3Configuration": { + "base": null, + "refs": { + "DiscoverInputSchemaRequest$S3Configuration": null + } + }, "S3ReferenceDataSource": { "base": "

Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf.

An Amazon Kinesis Analytics application loads reference data only once. If the data changes, you call the UpdateApplication operation to trigger reloading of data into your application.

", "refs": { @@ -819,7 +913,7 @@ "refs": { "DiscoverInputSchemaResponse$InputSchema": "

Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create.

", "Input$InputSchema": "

Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.

Also used to describe the format of the reference data source.

", - "InputDescription$InputSchema": null, + "InputDescription$InputSchema": "

Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.

", "ReferenceDataSource$ReferenceSchema": null, "ReferenceDataSourceDescription$ReferenceSchema": null, "ReferenceDataSourceUpdate$ReferenceSchemaUpdate": null diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/api-2.json index 41b528e4..ddc47eaa 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/api-2.json @@ -11,6 +11,20 @@ "uid":"logs-2014-03-28" }, "operations":{ + "AssociateKmsKey":{ + "name":"AssociateKmsKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateKmsKeyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "CancelExportTask":{ "name":"CancelExportTask", "http":{ @@ -262,6 +276,20 @@ {"shape":"ServiceUnavailableException"} ] }, + "DisassociateKmsKey":{ + "name":"DisassociateKmsKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateKmsKeyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "FilterLogEvents":{ "name":"FilterLogEvents", "http":{ @@ -447,6 +475,17 @@ "min":1 }, "Arn":{"type":"string"}, + "AssociateKmsKeyRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "kmsKeyId" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "kmsKeyId":{"shape":"KmsKeyId"} + } + }, "CancelExportTaskRequest":{ "type":"structure", "required":["taskId"], @@ -483,6 +522,7 @@ "required":["logGroupName"], "members":{ "logGroupName":{"shape":"LogGroupName"}, + "kmsKeyId":{"shape":"KmsKeyId"}, "tags":{"shape":"Tags"} } }, @@ -711,6 +751,13 @@ "type":"list", "member":{"shape":"Destination"} }, + "DisassociateKmsKeyRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"} + } + }, "Distribution":{ "type":"string", "enum":[ @@ -909,6 +956,10 @@ }, "exception":true }, + "KmsKeyId":{ + "type":"string", + "max":256 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -937,7 +988,8 @@ "retentionInDays":{"shape":"Days"}, "metricFilterCount":{"shape":"FilterCount"}, "arn":{"shape":"Arn"}, - "storedBytes":{"shape":"StoredBytes"} + "storedBytes":{"shape":"StoredBytes"}, + "kmsKeyId":{"shape":"KmsKeyId"} } }, "LogGroupName":{ diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/docs-2.json index 6644761c..0ae429da 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/logs/2014-03-28/docs-2.json @@ -2,9 +2,10 @@ "version": "2.0", "service": "

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from Amazon EC2 instances, AWS CloudTrail, or other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the AWS CLI, CloudWatch Logs API, or CloudWatch Logs SDK.

You can use CloudWatch Logs to:

  • Monitor logs from EC2 instances in real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required. For example, you can monitor application logs for specific literal terms (such as \"NullReferenceException\") or count the number of occurrences of a literal term at a particular position in log data (such as \"404\" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify.

  • Monitor AWS CloudTrail logged events: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail and use the notification to perform troubleshooting.

  • Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it.

", "operations": { + "AssociateKmsKey": "

Associates the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group.

Associating an AWS KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested.

Note that it can take up to 5 minutes for this operation to take effect.

If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you will receive an InvalidParameterException error.

", "CancelExportTask": "

Cancels the specified export task.

The task must be in the PENDING or RUNNING state.

", "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

", - "CreateLogGroup": "

Creates a log group with the specified name.

You can create up to 5000 log groups per account.

You must use the following guidelines when naming a log group:

  • Log group names must be unique within a region for an AWS account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).

", + "CreateLogGroup": "

Creates a log group with the specified name.

You can create up to 5000 log groups per account.

You must use the following guidelines when naming a log group:

  • Log group names must be unique within a region for an AWS account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).

If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you will receive an InvalidParameterException error.

", "CreateLogStream": "

Creates a log stream for the specified log group.

There is no limit on the number of log streams that you can create for a log group.

You must use the following guidelines when naming a log stream:

  • Log stream names must be unique within the log group.

  • Log stream names can be between 1 and 512 characters long.

  • The ':' (colon) and '*' (asterisk) characters are not allowed.

", "DeleteDestination": "

Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination.

", "DeleteLogGroup": "

Deletes the specified log group and permanently deletes all the archived log events associated with the log group.

", @@ -17,12 +18,13 @@ "DescribeExportTasks": "

Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status.

", "DescribeLogGroups": "

Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name.

", "DescribeLogStreams": "

Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered.

This operation has a limit of five transactions per second, after which transactions are throttled.

", - "DescribeMetricFilters": "

Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, and metric namespace. The results are ASCII-sorted by filter name.

", + "DescribeMetricFilters": "

Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name.

", "DescribeResourcePolicies": "

Lists the resource policies in this account.

", "DescribeSubscriptionFilters": "

Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name.

", + "DisassociateKmsKey": "

Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group.

After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested.

Note that it can take up to 5 minutes for this operation to take effect.

", "FilterLogEvents": "

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call.

", - "GetLogEvents": "

Lists log events from the specified log stream. You can list all the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1 MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call.

", - "ListTagsLogGroup": "

Lists the tags for the specified log group.

To add tags, use TagLogGroup. To remove tags, use UntagLogGroup.

", + "GetLogEvents": "

Lists log events from the specified log stream. You can list all the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call.

", + "ListTagsLogGroup": "

Lists the tags for the specified log group.

", "PutDestination": "

Creates or updates a destination. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents. Currently, the only supported physical resource is a Kinesis stream belonging to the same account as the destination.

Through an access policy, a destination controls what is written to its Kinesis stream. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

", "PutDestinationPolicy": "

Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination.

", "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls may be successful, or one may be rejected.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be older than 14 days or the retention period of the log group.

  • The log events in the batch must be in chronological ordered by their time stamp (the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC).

  • The maximum number of log events in a batch is 10,000.

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

", @@ -50,6 +52,11 @@ "LogStream$arn": "

The Amazon Resource Name (ARN) of the log stream.

" } }, + "AssociateKmsKeyRequest": { + "base": null, + "refs": { + } + }, "CancelExportTaskRequest": { "base": null, "refs": { @@ -246,11 +253,16 @@ "DescribeDestinationsResponse$destinations": "

The destinations.

" } }, - "Distribution": { + "DisassociateKmsKeyRequest": { "base": null, "refs": { - "PutSubscriptionFilterRequest$distribution": "

The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream. By default, log data is grouped by log stream. For a more even distribution, you can group log data randomly.

", - "SubscriptionFilter$distribution": "

The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream.

" + } + }, + "Distribution": { + "base": "

The method used to distribute log data to the destination, which can be either random or grouped by log stream.

", + "refs": { + "PutSubscriptionFilterRequest$distribution": "

The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream.

", + "SubscriptionFilter$distribution": null } }, "EventId": { @@ -456,6 +468,14 @@ "refs": { } }, + "KmsKeyId": { + "base": null, + "refs": { + "AssociateKmsKeyRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS).

", + "CreateLogGroupRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS).

", + "LogGroup$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data.

" + } + }, "LimitExceededException": { "base": "

You have reached the maximum number of resources that can be created.

", "refs": { @@ -488,6 +508,7 @@ "LogGroupName": { "base": null, "refs": { + "AssociateKmsKeyRequest$logGroupName": "

The name of the log group.

", "CreateExportTaskRequest$logGroupName": "

The name of the log group.

", "CreateLogGroupRequest$logGroupName": "

The name of the log group.

", "CreateLogStreamRequest$logGroupName": "

The name of the log group.

", @@ -500,6 +521,7 @@ "DescribeLogStreamsRequest$logGroupName": "

The name of the log group.

", "DescribeMetricFiltersRequest$logGroupName": "

The name of the log group.

", "DescribeSubscriptionFiltersRequest$logGroupName": "

The name of the log group.

", + "DisassociateKmsKeyRequest$logGroupName": "

The name of the log group.

", "ExportTask$logGroupName": "

The name of the log group from which logs data was exported.

", "FilterLogEventsRequest$logGroupName": "

The name of the log group.

", "GetLogEventsRequest$logGroupName": "

The name of the log group.

", @@ -581,7 +603,7 @@ "MetricName": { "base": "

The name of the CloudWatch metric to which the monitored log information should be published. For example, you may publish to a metric called ErrorCount.

", "refs": { - "DescribeMetricFiltersRequest$metricName": "

The name of the CloudWatch metric.

", + "DescribeMetricFiltersRequest$metricName": null, "MetricTransformation$metricName": "

The name of the CloudWatch metric.

" } }, @@ -841,7 +863,7 @@ "base": null, "refs": { "CreateLogGroupRequest$tags": "

The key-value pairs to use for the tags.

", - "ListTagsLogGroupResponse$tags": "

The tags.

", + "ListTagsLogGroupResponse$tags": "

The tags for the log group.

", "TagLogGroupRequest$tags": "

The key-value pairs to use for the tags.

" } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/api-2.json index 2751c756..3d8c2155 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/api-2.json @@ -629,7 +629,7 @@ "type":"structure", "members":{ "WorkerId":{"shape":"CustomerId"}, - "BonusAmount":{"shape":"NumericValue"}, + "BonusAmount":{"shape":"CurrencyAmount"}, "AssignmentId":{"shape":"EntityId"}, "Reason":{"shape":"String"}, "GrantTime":{"shape":"Timestamp"} @@ -662,7 +662,10 @@ }, "CreateAdditionalAssignmentsForHITRequest":{ "type":"structure", - "required":["HITId"], + "required":[ + "HITId", + "NumberOfAdditionalAssignments" + ], "members":{ "HITId":{"shape":"EntityId"}, "NumberOfAdditionalAssignments":{"shape":"Integer"}, @@ -688,7 +691,7 @@ "AutoApprovalDelayInSeconds":{"shape":"Long"}, "LifetimeInSeconds":{"shape":"Long"}, "AssignmentDurationInSeconds":{"shape":"Long"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "Title":{"shape":"String"}, "Keywords":{"shape":"String"}, "Description":{"shape":"String"}, @@ -719,7 +722,7 @@ "members":{ "AutoApprovalDelayInSeconds":{"shape":"Long"}, "AssignmentDurationInSeconds":{"shape":"Long"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "Title":{"shape":"String"}, "Keywords":{"shape":"String"}, "Description":{"shape":"String"}, @@ -799,6 +802,10 @@ "members":{ } }, + "CurrencyAmount":{ + "type":"string", + "pattern":"^[0-9]+(\\.)?[0-9]{0,2}$" + }, "CustomerId":{ "type":"string", "max":64, @@ -899,8 +906,8 @@ "GetAccountBalanceResponse":{ "type":"structure", "members":{ - "AvailableBalance":{"shape":"NumericValue"}, - "OnHoldBalance":{"shape":"NumericValue"} + "AvailableBalance":{"shape":"CurrencyAmount"}, + "OnHoldBalance":{"shape":"CurrencyAmount"} } }, "GetAssignmentRequest":{ @@ -991,7 +998,7 @@ "Keywords":{"shape":"String"}, "HITStatus":{"shape":"HITStatus"}, "MaxAssignments":{"shape":"Integer"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "AutoApprovalDelayInSeconds":{"shape":"Long"}, "Expiration":{"shape":"Timestamp"}, "AssignmentDurationInSeconds":{"shape":"Long"}, @@ -1005,6 +1012,10 @@ }, "HITLayoutParameter":{ "type":"structure", + "required":[ + "Name", + "Value" + ], "members":{ "Name":{"shape":"String"}, "Value":{"shape":"String"} @@ -1239,7 +1250,9 @@ "type":"structure", "required":[ "Destination", - "Transport" + "Transport", + "Version", + "EventTypes" ], "members":{ "Destination":{"shape":"String"}, @@ -1252,7 +1265,8 @@ "type":"string", "enum":[ "Email", - "SQS" + "SQS", + "SNS" ] }, "NotifyWorkersFailureCode":{ @@ -1293,10 +1307,6 @@ "NotifyWorkersFailureStatuses":{"shape":"NotifyWorkersFailureStatusList"} } }, - "NumericValue":{ - "type":"string", - "pattern":"^[0-9]+(\\.)?[0-9]*$" - }, "PaginationToken":{ "type":"string", "max":255, @@ -1411,7 +1421,10 @@ }, "RejectAssignmentRequest":{ "type":"structure", - "required":["AssignmentId"], + "required":[ + "AssignmentId", + "RequesterFeedback" + ], "members":{ "AssignmentId":{"shape":"EntityId"}, "RequesterFeedback":{"shape":"String"} @@ -1476,6 +1489,7 @@ }, "ReviewPolicy":{ "type":"structure", + "required":["PolicyName"], "members":{ "PolicyName":{"shape":"String"}, "Parameters":{"shape":"PolicyParameterList"} @@ -1526,11 +1540,12 @@ "required":[ "WorkerId", "BonusAmount", - "AssignmentId" + "AssignmentId", + "Reason" ], "members":{ "WorkerId":{"shape":"CustomerId"}, - "BonusAmount":{"shape":"NumericValue"}, + "BonusAmount":{"shape":"CurrencyAmount"}, "AssignmentId":{"shape":"EntityId"}, "Reason":{"shape":"String"}, "UniqueRequestToken":{"shape":"IdempotencyToken"} @@ -1575,7 +1590,10 @@ "TurkErrorCode":{"type":"string"}, "UpdateExpirationForHITRequest":{ "type":"structure", - "required":["HITId"], + "required":[ + "HITId", + "ExpireAt" + ], "members":{ "HITId":{"shape":"EntityId"}, "ExpireAt":{"shape":"Timestamp"} diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/docs-2.json index 5d0b9a55..9f98ce07 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/mturk-requester/2017-01-17/docs-2.json @@ -202,6 +202,18 @@ "refs": { } }, + "CurrencyAmount": { + "base": "

A string representing a currency amount.

", + "refs": { + "BonusPayment$BonusAmount": null, + "CreateHITRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", + "CreateHITTypeRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", + "GetAccountBalanceResponse$AvailableBalance": null, + "GetAccountBalanceResponse$OnHoldBalance": null, + "HIT$Reward": null, + "SendBonusRequest$BonusAmount": "

The Bonus amount is a US Dollar amount specified using a string (for example, \"5\" represents $5.00 USD and \"101.42\" represents $101.42 USD). Do not include currency symbols or currency codes.

" + } + }, "CustomerId": { "base": null, "refs": { @@ -626,7 +638,7 @@ "NotificationTransport": { "base": null, "refs": { - "NotificationSpecification$Transport": "

The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS.

" + "NotificationSpecification$Transport": "

The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS | SNS.

" } }, "NotifyWorkersFailureCode": { @@ -657,18 +669,6 @@ "refs": { } }, - "NumericValue": { - "base": "

A string representing a numeric value.

", - "refs": { - "BonusPayment$BonusAmount": null, - "CreateHITRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", - "CreateHITTypeRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", - "GetAccountBalanceResponse$AvailableBalance": null, - "GetAccountBalanceResponse$OnHoldBalance": null, - "HIT$Reward": null, - "SendBonusRequest$BonusAmount": "

The Bonus amount is a US Dollar amount specified using a string (for example, \"5\" represents $5.00 USD and \"101.42\" represents $101.42 USD). Do not include currency symbols or currency codes.

" - } - }, "PaginationToken": { "base": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results.

", "refs": { @@ -954,7 +954,7 @@ "HITLayoutParameter$Name": "

The name of the parameter in the HITLayout.

", "HITLayoutParameter$Value": "

The value substituted for the parameter referenced in the HITLayout.

", "ListQualificationTypesRequest$Query": "

A text query against all of the searchable attributes of Qualification types.

", - "NotificationSpecification$Destination": "

The destination for notification messages. or email notifications (if Transport is Email), this is an email address. For Amazon Simple Queue Service (Amazon SQS) notifications (if Transport is SQS), this is the URL for your Amazon SQS queue.

", + "NotificationSpecification$Destination": "

The target for notification messages. The Destination’s format is determined by the specified Transport:

  • When Transport is Email, the Destination is your email address.

  • When Transport is SQS, the Destination is your queue URL.

  • When Transport is SNS, the Destination is the ARN of your topic.

", "NotificationSpecification$Version": "

The version of the Notification API to use. Valid value is 2006-05-05.

", "NotifyWorkersFailureStatus$NotifyWorkersFailureMessage": "

A message detailing the reason the Worker could not be notified.

", "NotifyWorkersRequest$Subject": "

The subject line of the email message to send. Can include up to 200 characters.

", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/api-2.json index d2189a1f..b2addb85 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/api-2.json @@ -1310,6 +1310,10 @@ }, "HandshakeParty":{ "type":"structure", + "required":[ + "Id", + "Type" + ], "members":{ "Id":{"shape":"HandshakePartyId"}, "Type":{"shape":"HandshakePartyType"} diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/docs-2.json index d4602601..009c6eff 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/organizations/2016-11-28/docs-2.json @@ -1119,7 +1119,7 @@ "RootId": { "base": null, "refs": { - "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListPolicies operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", + "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", "EnablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", "Root$Id": "

The unique identifier (ID) for the root.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

" } diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/api-2.json index f5e0cb72..6a9d11ee 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/api-2.json @@ -6,7 +6,8 @@ "serviceFullName" : "Amazon Pinpoint", "signatureVersion":"v4", "protocol" : "rest-json", - "jsonVersion" : "1.1" + "jsonVersion" : "1.1", + "uid":"pinpoint-2016-12-01" }, "operations" : { "CreateApp" : { @@ -117,6 +118,33 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteAdmChannel" : { + "name" : "DeleteAdmChannel", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/channels/adm", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteAdmChannelRequest" + }, + "output" : { + "shape" : "DeleteAdmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteApnsChannel" : { "name" : "DeleteApnsChannel", "http" : { @@ -198,6 +226,33 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteBaiduChannel" : { + "name" : "DeleteBaiduChannel", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteBaiduChannelRequest" + }, + "output" : { + "shape" : "DeleteBaiduChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteCampaign" : { "name" : "DeleteCampaign", "http" : { @@ -360,6 +415,33 @@ "shape" : "TooManyRequestsException" } ] }, + "GetAdmChannel" : { + "name" : "GetAdmChannel", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/channels/adm", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetAdmChannelRequest" + }, + "output" : { + "shape" : "GetAdmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "GetApnsChannel" : { "name" : "GetApnsChannel", "http" : { @@ -495,6 +577,33 @@ "shape" : "TooManyRequestsException" } ] }, + "GetBaiduChannel" : { + "name" : "GetBaiduChannel", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetBaiduChannelRequest" + }, + "output" : { + "shape" : "GetBaiduChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "GetCampaign" : { "name" : "GetCampaign", "http" : { @@ -1008,6 +1117,60 @@ "shape" : "TooManyRequestsException" } ] }, + "SendUsersMessages" : { + "name" : "SendUsersMessages", + "http" : { + "method" : "POST", + "requestUri" : "/v1/apps/{application-id}/users-messages", + "responseCode" : 200 + }, + "input" : { + "shape" : "SendUsersMessagesRequest" + }, + "output" : { + "shape" : "SendUsersMessagesResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "UpdateAdmChannel" : { + "name" : "UpdateAdmChannel", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/channels/adm", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateAdmChannelRequest" + }, + "output" : { + "shape" : "UpdateAdmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "UpdateApnsChannel" : { "name" : "UpdateApnsChannel", "http" : { @@ -1089,6 +1252,33 @@ "shape" : "TooManyRequestsException" } ] }, + "UpdateBaiduChannel" : { + "name" : "UpdateBaiduChannel", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateBaiduChannelRequest" + }, + "output" : { + "shape" : "UpdateBaiduChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "UpdateCampaign" : { "name" : "UpdateCampaign", "http" : { @@ -1280,17 +1470,134 @@ } }, "shapes" : { + "ADMChannelRequest" : { + "type" : "structure", + "members" : { + "ClientId" : { + "shape" : "__string" + }, + "ClientSecret" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + } + } + }, + "ADMChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "ADMMessage" : { + "type" : "structure", + "members" : { + "Action" : { + "shape" : "Action" + }, + "Body" : { + "shape" : "__string" + }, + "ConsolidationKey" : { + "shape" : "__string" + }, + "Data" : { + "shape" : "MapOf__string" + }, + "ExpiresAfter" : { + "shape" : "__string" + }, + "IconReference" : { + "shape" : "__string" + }, + "ImageIconUrl" : { + "shape" : "__string" + }, + "ImageUrl" : { + "shape" : "__string" + }, + "JsonData" : { + "shape" : "__string" + }, + "MD5" : { + "shape" : "__string" + }, + "RawContent" : { + "shape" : "__string" + }, + "SilentPush" : { + "shape" : "__boolean" + }, + "SmallImageIconUrl" : { + "shape" : "__string" + }, + "Sound" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "Title" : { + "shape" : "__string" + }, + "Url" : { + "shape" : "__string" + } + } + }, "APNSChannelRequest" : { "type" : "structure", "members" : { + "BundleId" : { + "shape" : "__string" + }, "Certificate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, "PrivateKey" : { "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" } } }, @@ -1344,9 +1651,15 @@ "Data" : { "shape" : "MapOf__string" }, + "JsonData" : { + "shape" : "__string" + }, "MediaUrl" : { "shape" : "__string" }, + "PreferredAuthenticationMethod" : { + "shape" : "__string" + }, "RawContent" : { "shape" : "__string" }, @@ -1373,14 +1686,29 @@ "APNSSandboxChannelRequest" : { "type" : "structure", "members" : { + "BundleId" : { + "shape" : "__string" + }, "Certificate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, "PrivateKey" : { "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" } } }, @@ -1564,6 +1892,102 @@ "httpStatusCode" : 400 } }, + "BaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApiKey" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "SecretKey" : { + "shape" : "__string" + } + } + }, + "BaiduChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "Credential" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "BaiduMessage" : { + "type" : "structure", + "members" : { + "Action" : { + "shape" : "Action" + }, + "Body" : { + "shape" : "__string" + }, + "Data" : { + "shape" : "MapOf__string" + }, + "IconReference" : { + "shape" : "__string" + }, + "ImageIconUrl" : { + "shape" : "__string" + }, + "ImageUrl" : { + "shape" : "__string" + }, + "JsonData" : { + "shape" : "__string" + }, + "RawContent" : { + "shape" : "__string" + }, + "SilentPush" : { + "shape" : "__boolean" + }, + "SmallImageIconUrl" : { + "shape" : "__string" + }, + "Sound" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "Title" : { + "shape" : "__string" + }, + "Url" : { + "shape" : "__string" + } + } + }, "CampaignEmailMessage" : { "type" : "structure", "members" : { @@ -1587,6 +2011,12 @@ "Daily" : { "shape" : "__integer" }, + "MaximumDuration" : { + "shape" : "__integer" + }, + "MessagesPerSecond" : { + "shape" : "__integer" + }, "Total" : { "shape" : "__integer" } @@ -1693,7 +2123,7 @@ }, "ChannelType" : { "type" : "string", - "enum" : [ "GCM", "APNS", "APNS_SANDBOX", "ADM", "SMS", "EMAIL" ] + "enum" : [ "GCM", "APNS", "APNS_SANDBOX", "ADM", "SMS", "EMAIL", "BAIDU" ] }, "CreateAppRequest" : { "type" : "structure", @@ -1821,6 +2251,9 @@ "Data" : { "shape" : "MapOf__string" }, + "JsonData" : { + "shape" : "__string" + }, "SilentPush" : { "shape" : "__boolean" }, @@ -1835,6 +2268,27 @@ } } }, + "DeleteAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "DeleteApnsChannelRequest" : { "type" : "structure", "members" : { @@ -1898,6 +2352,27 @@ "required" : [ "ApplicationResponse" ], "payload" : "ApplicationResponse" }, + "DeleteBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "DeleteCampaignRequest" : { "type" : "structure", "members" : { @@ -2036,7 +2511,7 @@ }, "DeliveryStatus" : { "type" : "string", - "enum" : [ "SUCCESSFUL", "THROTTLED", "TEMPORARY_FAILURE", "PERMANENT_FAILURE" ] + "enum" : [ "SUCCESSFUL", "THROTTLED", "TEMPORARY_FAILURE", "PERMANENT_FAILURE", "UNKNOWN_FAILURE", "OPT_OUT", "DUPLICATE" ] }, "DimensionType" : { "type" : "string", @@ -2045,15 +2520,24 @@ "DirectMessageConfiguration" : { "type" : "structure", "members" : { + "ADMMessage" : { + "shape" : "ADMMessage" + }, "APNSMessage" : { "shape" : "APNSMessage" }, + "BaiduMessage" : { + "shape" : "BaiduMessage" + }, "DefaultMessage" : { "shape" : "DefaultMessage" }, "DefaultPushNotificationMessage" : { "shape" : "DefaultPushNotificationMessage" }, + "EmailMessage" : { + "shape" : "EmailMessage" + }, "GCMMessage" : { "shape" : "GCMMessage" }, @@ -2124,6 +2608,29 @@ } } }, + "EmailMessage" : { + "type" : "structure", + "members" : { + "Body" : { + "shape" : "__string" + }, + "FromAddress" : { + "shape" : "__string" + }, + "HtmlBody" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "TemplateArn" : { + "shape" : "__string" + }, + "Title" : { + "shape" : "__string" + } + } + }, "EndpointBatchItem" : { "type" : "structure", "members" : { @@ -2225,6 +2732,26 @@ } } }, + "EndpointMessageResult" : { + "type" : "structure", + "members" : { + "Address" : { + "shape" : "__string" + }, + "DeliveryStatus" : { + "shape" : "DeliveryStatus" + }, + "StatusCode" : { + "shape" : "__integer" + }, + "StatusMessage" : { + "shape" : "__string" + }, + "UpdatedToken" : { + "shape" : "__string" + } + } + }, "EndpointRequest" : { "type" : "structure", "members" : { @@ -2316,6 +2843,26 @@ } } }, + "EndpointSendConfiguration" : { + "type" : "structure", + "members" : { + "BodyOverride" : { + "shape" : "__string" + }, + "Context" : { + "shape" : "MapOf__string" + }, + "RawContent" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "TitleOverride" : { + "shape" : "__string" + } + } + }, "EndpointUser" : { "type" : "structure", "members" : { @@ -2443,6 +2990,9 @@ "ImageUrl" : { "shape" : "__string" }, + "JsonData" : { + "shape" : "__string" + }, "RawContent" : { "shape" : "__string" }, @@ -2469,6 +3019,27 @@ } } }, + "GetAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "GetApnsChannelRequest" : { "type" : "structure", "members" : { @@ -2578,6 +3149,27 @@ "required" : [ "ApplicationsResponse" ], "payload" : "ApplicationsResponse" }, + "GetBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "GetCampaignActivitiesRequest" : { "type" : "structure", "members" : { @@ -3269,6 +3861,24 @@ "shape" : "AttributeDimension" } }, + "MapOfEndpointMessageResult" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "EndpointMessageResult" + } + }, + "MapOfEndpointSendConfiguration" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "EndpointSendConfiguration" + } + }, "MapOfListOf__string" : { "type" : "map", "key" : { @@ -3278,6 +3888,15 @@ "shape" : "ListOf__string" } }, + "MapOfMapOfEndpointMessageResult" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "MapOfEndpointMessageResult" + } + }, "MapOfMessageResult" : { "type" : "map", "key" : { @@ -3389,11 +4008,20 @@ "Addresses" : { "shape" : "MapOfAddressConfiguration" }, + "Campaign" : { + "shape" : "MapOf__string" + }, "Context" : { "shape" : "MapOf__string" }, + "Endpoints" : { + "shape" : "MapOfEndpointSendConfiguration" + }, "MessageConfiguration" : { "shape" : "DirectMessageConfiguration" + }, + "RequestId" : { + "shape" : "__string" } } }, @@ -3403,6 +4031,9 @@ "ApplicationId" : { "shape" : "__string" }, + "EndpointResult" : { + "shape" : "MapOfEndpointMessageResult" + }, "RequestId" : { "shape" : "__string" }, @@ -3521,6 +4152,9 @@ }, "SenderId" : { "shape" : "__string" + }, + "ShortCode" : { + "shape" : "__string" } } }, @@ -3756,6 +4390,62 @@ "required" : [ "MessageResponse" ], "payload" : "MessageResponse" }, + "SendUsersMessageRequest" : { + "type" : "structure", + "members" : { + "Context" : { + "shape" : "MapOf__string" + }, + "MessageConfiguration" : { + "shape" : "DirectMessageConfiguration" + }, + "RequestId" : { + "shape" : "__string" + }, + "Users" : { + "shape" : "MapOfEndpointSendConfiguration" + } + } + }, + "SendUsersMessageResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "RequestId" : { + "shape" : "__string" + }, + "Result" : { + "shape" : "MapOfMapOfEndpointMessageResult" + } + } + }, + "SendUsersMessagesRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + }, + "SendUsersMessageRequest" : { + "shape" : "SendUsersMessageRequest" + } + }, + "required" : [ "ApplicationId", "SendUsersMessageRequest" ], + "payload" : "SendUsersMessageRequest" + }, + "SendUsersMessagesResponse" : { + "type" : "structure", + "members" : { + "SendUsersMessageResponse" : { + "shape" : "SendUsersMessageResponse" + } + }, + "required" : [ "SendUsersMessageResponse" ], + "payload" : "SendUsersMessageResponse" + }, "SetDimension" : { "type" : "structure", "members" : { @@ -3808,6 +4498,31 @@ } } }, + "UpdateAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ADMChannelRequest" : { + "shape" : "ADMChannelRequest" + }, + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId", "ADMChannelRequest" ], + "payload" : "ADMChannelRequest" + }, + "UpdateAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "UpdateApnsChannelRequest" : { "type" : "structure", "members" : { @@ -3883,6 +4598,31 @@ "required" : [ "ApplicationSettingsResource" ], "payload" : "ApplicationSettingsResource" }, + "UpdateBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + }, + "BaiduChannelRequest" : { + "shape" : "BaiduChannelRequest" + } + }, + "required" : [ "ApplicationId", "BaiduChannelRequest" ], + "payload" : "BaiduChannelRequest" + }, + "UpdateBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "UpdateCampaignRequest" : { "type" : "structure", "members" : { @@ -4117,6 +4857,9 @@ "SegmentVersion" : { "shape" : "__integer" }, + "Trace" : { + "shape" : "__boolean" + }, "TreatmentDescription" : { "shape" : "__string" }, @@ -4131,6 +4874,9 @@ "DestinationStreamArn" : { "shape" : "__string" }, + "ExternalId" : { + "shape" : "__string" + }, "RoleArn" : { "shape" : "__string" } diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/docs-2.json index f2553aa4..10f3d605 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/pinpoint/2016-12-01/docs-2.json @@ -2,24 +2,28 @@ "version" : "2.0", "service" : null, "operations" : { - "CreateApp" : "Used to create an app.", + "CreateApp" : "Creates or updates an app.", "CreateCampaign" : "Creates or updates a campaign.", "CreateImportJob" : "Creates or updates an import job.", "CreateSegment" : "Used to create or update a segment.", + "DeleteAdmChannel" : "Delete an ADM channel", "DeleteApnsChannel" : "Deletes the APNs channel for an app.", "DeleteApnsSandboxChannel" : "Delete an APNS sandbox channel", "DeleteApp" : "Deletes an app.", + "DeleteBaiduChannel" : "Delete a BAIDU GCM channel", "DeleteCampaign" : "Deletes a campaign.", "DeleteEmailChannel" : "Delete an email channel", "DeleteEventStream" : "Deletes the event stream for an app.", "DeleteGcmChannel" : "Deletes the GCM channel for an app.", "DeleteSegment" : "Deletes a segment.", "DeleteSmsChannel" : "Delete an SMS channel", + "GetAdmChannel" : "Get an ADM channel", "GetApnsChannel" : "Returns information about the APNs channel for an app.", "GetApnsSandboxChannel" : "Get an APNS sandbox channel", "GetApp" : "Returns information about an app.", "GetApplicationSettings" : "Used to request the settings for an app.", "GetApps" : "Returns information about your apps.", + "GetBaiduChannel" : "Get a BAIDU GCM channel", "GetCampaign" : "Returns information about a campaign.", "GetCampaignActivities" : "Returns information about the activity performed by a campaign.", "GetCampaignVersion" : "Returns information about a specific version of a campaign.", @@ -39,9 +43,12 @@ "GetSmsChannel" : "Get an SMS channel", "PutEventStream" : "Use to create or update the event stream for an app.", "SendMessages" : "Send a batch of messages", + "SendUsersMessages" : "Send a batch of messages to users", + "UpdateAdmChannel" : "Update an ADM channel", "UpdateApnsChannel" : "Use to update the APNs channel for an app.", "UpdateApnsSandboxChannel" : "Update an APNS sandbox channel", "UpdateApplicationSettings" : "Used to update the settings for an app.", + "UpdateBaiduChannel" : "Update a BAIDU GCM channel", "UpdateCampaign" : "Use to update a campaign.", "UpdateEmailChannel" : "Update an email channel", "UpdateEndpoint" : "Use to update an endpoint.", @@ -51,6 +58,20 @@ "UpdateSmsChannel" : "Update an SMS channel" }, "shapes" : { + "ADMChannelRequest" : { + "base" : "Amazon Device Messaging channel definition.", + "refs" : { } + }, + "ADMChannelResponse" : { + "base" : "Amazon Device Messaging channel definition.", + "refs" : { } + }, + "ADMMessage" : { + "base" : "ADM Message.", + "refs" : { + "DirectMessageConfiguration$ADMMessage" : "The message to ADM channels. Overrides the default push notification message." + } + }, "APNSChannelRequest" : { "base" : "Apple Push Notification Service channel definition.", "refs" : { } @@ -76,7 +97,9 @@ "Action" : { "base" : null, "refs" : { + "ADMMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "APNSMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", + "BaiduMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "DefaultPushNotificationMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "GCMMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "Message$Action" : "The action that occurs if the user taps a push notification delivered by the campaign:\nOPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action.\n\nDEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app.\n\nURL - The default mobile browser on the user's device launches and opens a web page at the URL you specify." @@ -129,6 +152,20 @@ "base" : null, "refs" : { } }, + "BaiduChannelRequest" : { + "base" : "Baidu Cloud Push credentials", + "refs" : { } + }, + "BaiduChannelResponse" : { + "base" : "Baidu Cloud Messaging channel definition", + "refs" : { } + }, + "BaiduMessage" : { + "base" : "Baidu Message.", + "refs" : { + "DirectMessageConfiguration$BaiduMessage" : "The message to Baidu GCM channels. Overrides the default push notification message." + } + }, "CampaignEmailMessage" : { "base" : "The email message configuration.", "refs" : { @@ -202,6 +239,7 @@ "DeliveryStatus" : { "base" : null, "refs" : { + "EndpointMessageResult$DeliveryStatus" : "Delivery status of message.", "MessageResult$DeliveryStatus" : "Delivery status of message." } }, @@ -214,7 +252,8 @@ "DirectMessageConfiguration" : { "base" : "The message configuration.", "refs" : { - "MessageRequest$MessageConfiguration" : "Message configuration." + "MessageRequest$MessageConfiguration" : "Message configuration.", + "SendUsersMessageRequest$MessageConfiguration" : "Message configuration." } }, "Duration" : { @@ -231,6 +270,12 @@ "base" : "Email Channel Response.", "refs" : { } }, + "EmailMessage" : { + "base" : "Email Message.", + "refs" : { + "DirectMessageConfiguration$EmailMessage" : "The message to Email channels. Overrides the default message." + } + }, "EndpointBatchItem" : { "base" : "Endpoint update request", "refs" : { @@ -257,6 +302,13 @@ "EndpointResponse$Location" : "The endpoint location attributes." } }, + "EndpointMessageResult" : { + "base" : "The result from sending a message to an endpoint.", + "refs" : { + "MessageResponse$EndpointResult" : "A map containing a multi part response for each address, with the endpointId as the key and the result as the value.", + "SendUsersMessageResponse$Result" : "A map containing of UserId to Map of EndpointId to Endpoint Message Result." + } + }, "EndpointRequest" : { "base" : "Endpoint update request", "refs" : { } @@ -265,6 +317,13 @@ "base" : "Endpoint response", "refs" : { } }, + "EndpointSendConfiguration" : { + "base" : "Endpoint send configuration.", + "refs" : { + "MessageRequest$Endpoints" : "A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value.", + "SendUsersMessageRequest$Users" : "A map of destination endpoints, with the EndpointId as the key Endpoint Message Configuration as the value." + } + }, "EndpointUser" : { "base" : "Endpoint user specific custom userAttributes", "refs" : { @@ -383,10 +442,22 @@ "base" : null, "refs" : { } }, + "MapOfEndpointMessageResult" : { + "base" : null, + "refs" : { } + }, + "MapOfEndpointSendConfiguration" : { + "base" : null, + "refs" : { } + }, "MapOfListOf__string" : { "base" : null, "refs" : { } }, + "MapOfMapOfEndpointMessageResult" : { + "base" : null, + "refs" : { } + }, "MapOfMessageResult" : { "base" : null, "refs" : { } @@ -543,6 +614,14 @@ "base" : "Segments in your account.", "refs" : { } }, + "SendUsersMessageRequest" : { + "base" : "Send message request.", + "refs" : { } + }, + "SendUsersMessageResponse" : { + "base" : "User send message response.", + "refs" : { } + }, "SetDimension" : { "base" : "Dimension specification of a segment.", "refs" : { @@ -590,6 +669,10 @@ "__boolean" : { "base" : null, "refs" : { + "ADMChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "ADMChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "ADMChannelResponse$IsArchived" : "Is this channel archived", + "ADMMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "APNSChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "APNSChannelResponse$Enabled" : "If the channel is enabled for sending messages.", "APNSChannelResponse$IsArchived" : "Is this channel archived", @@ -597,6 +680,10 @@ "APNSSandboxChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "APNSSandboxChannelResponse$Enabled" : "If the channel is enabled for sending messages.", "APNSSandboxChannelResponse$IsArchived" : "Is this channel archived", + "BaiduChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "BaiduChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "BaiduChannelResponse$IsArchived" : "Is this channel archived", + "BaiduMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "CampaignResponse$IsPaused" : "Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false.", "DefaultPushNotificationMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "EmailChannelRequest$Enabled" : "If the channel is enabled for sending messages.", @@ -615,7 +702,8 @@ "SMSChannelResponse$Enabled" : "If the channel is enabled for sending messages.", "SMSChannelResponse$IsArchived" : "Is this channel archived", "Schedule$IsLocalTime" : "Indicates whether the campaign schedule takes effect according to each user's local time.", - "WriteCampaignRequest$IsPaused" : "Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false." + "WriteCampaignRequest$IsPaused" : "Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false.", + "WriteCampaignRequest$Trace" : "Whether or not to enable trace logging for the campaign. Undocumented" } }, "__double" : { @@ -628,6 +716,7 @@ "__integer" : { "base" : null, "refs" : { + "ADMChannelResponse$Version" : "Version of channel", "APNSChannelResponse$Version" : "Version of channel", "APNSMessage$Badge" : "Include this key when you want the system to modify the badge of your app icon. If this key is not included in the dictionary, the badge is not changed. To remove the badge, set the value of this key to 0.", "APNSSandboxChannelResponse$Version" : "Version of channel", @@ -635,12 +724,16 @@ "ActivityResponse$TimezonesCompletedCount" : "The total number of timezones completed.", "ActivityResponse$TimezonesTotalCount" : "The total number of unique timezones present in the segment.", "ActivityResponse$TotalEndpointCount" : "The total number of endpoints to which the campaign attempts to deliver messages.", + "BaiduChannelResponse$Version" : "Version of channel", "CampaignLimits$Daily" : "The maximum number of messages that the campaign can send daily.", + "CampaignLimits$MaximumDuration" : "The maximum duration of a campaign from the scheduled start. Must be a minimum of 60 seconds.", + "CampaignLimits$MessagesPerSecond" : "The maximum number of messages per second that the campaign will send. This is a best effort maximum cap and can go as high as 20000 and as low as 50", "CampaignLimits$Total" : "The maximum total number of messages that the campaign can send.", "CampaignResponse$HoldoutPercent" : "The allocated percentage of end users who will not receive messages from this campaign.", "CampaignResponse$SegmentVersion" : "The version of the segment to which the campaign sends messages.", "CampaignResponse$Version" : "The campaign version number.", "EmailChannelResponse$Version" : "Version of channel", + "EndpointMessageResult$StatusCode" : "Downstream service status code.", "GCMChannelResponse$Version" : "Version of channel", "ImportJobResponse$CompletedPieces" : "The number of pieces that have successfully imported as of the time of the request.", "ImportJobResponse$FailedPieces" : "The number of pieces that have failed to import as of the time of the request.", @@ -660,8 +753,34 @@ "__string" : { "base" : null, "refs" : { + "ADMChannelRequest$ClientId" : "Client ID as gotten from Amazon", + "ADMChannelRequest$ClientSecret" : "Client secret as gotten from Amazon", + "ADMChannelResponse$ApplicationId" : "Application id", + "ADMChannelResponse$CreationDate" : "When was this segment created", + "ADMChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "ADMChannelResponse$LastModifiedBy" : "Who last updated this entry", + "ADMChannelResponse$LastModifiedDate" : "Last date this was updated", + "ADMChannelResponse$Platform" : "Platform type. Will be \"ADM\"", + "ADMMessage$Body" : "The message body of the notification, the email body or the text message.", + "ADMMessage$ConsolidationKey" : "Optional. Arbitrary string used to indicate multiple messages are logically the same and that ADM is allowed to drop previously enqueued messages in favor of this one.", + "ADMMessage$ExpiresAfter" : "Optional. Number of seconds ADM should retain the message if the device is offline", + "ADMMessage$IconReference" : "The icon image name of the asset saved in your application.", + "ADMMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", + "ADMMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "ADMMessage$JsonData" : "The data payload used for a silent push. This payload is added to the notifications' data.pinpoint.jsonBody' object", + "ADMMessage$MD5" : "Optional. Base-64-encoded MD5 checksum of the data parameter. Used to verify data integrity", + "ADMMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "ADMMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", + "ADMMessage$Sound" : "Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/", + "ADMMessage$Title" : "The message title that displays above the message on the user's device.", + "ADMMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", + "APNSChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", "APNSChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", "APNSChannelRequest$PrivateKey" : "The certificate private key.", + "APNSChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", "APNSChannelResponse$ApplicationId" : "The ID of the application to which the channel applies.", "APNSChannelResponse$CreationDate" : "When was this segment created", "APNSChannelResponse$Id" : "Channel ID. Not used. Present only for backwards compatibility.", @@ -670,14 +789,21 @@ "APNSChannelResponse$Platform" : "The platform type. Will be APNS.", "APNSMessage$Body" : "The message body of the notification, the email body or the text message.", "APNSMessage$Category" : "Provide this key with a string value that represents the notification's type. This value corresponds to the value in the identifier property of one of your app's registered categories.", + "APNSMessage$JsonData" : "The data payload used for a silent push. This payload is added to the notifications' data.pinpoint.jsonBody' object", "APNSMessage$MediaUrl" : "The URL that points to a video used in the push notification.", + "APNSMessage$PreferredAuthenticationMethod" : "The preferred authentication method, either \"CERTIFICATE\" or \"TOKEN\"", "APNSMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "APNSMessage$Sound" : "Include this key when you want the system to play a sound. The value of this key is the name of a sound file in your app's main bundle or in the Library/Sounds folder of your app's data container. If the sound file cannot be found, or if you specify defaultfor the value, the system plays the default alert sound.", "APNSMessage$ThreadId" : "Provide this key with a string value that represents the app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together.", "APNSMessage$Title" : "The message title that displays above the message on the user's device.", "APNSMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", + "APNSSandboxChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", "APNSSandboxChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSSandboxChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", "APNSSandboxChannelRequest$PrivateKey" : "The certificate private key.", + "APNSSandboxChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSSandboxChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSSandboxChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", "APNSSandboxChannelResponse$ApplicationId" : "Application id", "APNSSandboxChannelResponse$CreationDate" : "When was this segment created", "APNSSandboxChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", @@ -701,6 +827,25 @@ "ApplicationSettingsResource$ApplicationId" : "The unique ID for the application.", "ApplicationSettingsResource$LastModifiedDate" : "The date that the settings were last updated in ISO 8601 format.", "ApplicationsResponse$NextToken" : "The string that you use in a subsequent request to get the next page of results in a paginated response.", + "BaiduChannelRequest$ApiKey" : "Platform credential API key from Baidu.", + "BaiduChannelRequest$SecretKey" : "Platform credential Secret key from Baidu.", + "BaiduChannelResponse$ApplicationId" : "Application id", + "BaiduChannelResponse$CreationDate" : "When was this segment created", + "BaiduChannelResponse$Credential" : "The Baidu API key from Baidu.", + "BaiduChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "BaiduChannelResponse$LastModifiedBy" : "Who made the last change", + "BaiduChannelResponse$LastModifiedDate" : "Last date this was updated", + "BaiduChannelResponse$Platform" : "The platform type. Will be BAIDU", + "BaiduMessage$Body" : "The message body of the notification, the email body or the text message.", + "BaiduMessage$IconReference" : "The icon image name of the asset saved in your application.", + "BaiduMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", + "BaiduMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "BaiduMessage$JsonData" : "The data payload used for a silent push. This payload is added to the notifications' data.pinpoint.jsonBody' object", + "BaiduMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "BaiduMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", + "BaiduMessage$Sound" : "Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/", + "BaiduMessage$Title" : "The message title that displays above the message on the user's device.", + "BaiduMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "CampaignEmailMessage$Body" : "The email text body.", "CampaignEmailMessage$FromAddress" : "The email address used to send the email from. Defaults to use FromAddress specified in the Email Channel.", "CampaignEmailMessage$HtmlBody" : "The email html body.", @@ -720,6 +865,7 @@ "CreateApplicationRequest$Name" : "The display name of the application. Used in the Amazon Pinpoint console.", "DefaultMessage$Body" : "The message body of the notification, the email body or the text message.", "DefaultPushNotificationMessage$Body" : "The message body of the notification, the email body or the text message.", + "DefaultPushNotificationMessage$JsonData" : "The data payload used for a silent push. This payload is added to the notifications' data.pinpoint.jsonBody' object", "DefaultPushNotificationMessage$Title" : "The message title that displays above the message on the user's device.", "DefaultPushNotificationMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "EmailChannelRequest$FromAddress" : "The email address used to send emails from.", @@ -734,6 +880,11 @@ "EmailChannelResponse$LastModifiedDate" : "Last date this was updated", "EmailChannelResponse$Platform" : "Platform type. Will be \"EMAIL\"", "EmailChannelResponse$RoleArn" : "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service", + "EmailMessage$Body" : "The message body of the notification, the email body or the text message.", + "EmailMessage$FromAddress" : "The email address used to send the email from. Defaults to use FromAddress specified in the Email Channel.", + "EmailMessage$HtmlBody" : "The HTML part of the email.", + "EmailMessage$TemplateArn" : "The ARN of the template to use for the email.", + "EmailMessage$Title" : "The subject of the email.", "EndpointBatchItem$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointBatchItem$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointBatchItem$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", @@ -752,6 +903,9 @@ "EndpointLocation$Country" : "Country according to ISO 3166-1 Alpha-2 codes. For example, US.", "EndpointLocation$PostalCode" : "The postal code or zip code of the endpoint.", "EndpointLocation$Region" : "The region of the endpoint location. For example, corresponds to a state in US.", + "EndpointMessageResult$Address" : "Address that endpoint message was delivered to.", + "EndpointMessageResult$StatusMessage" : "Status message for message delivery.", + "EndpointMessageResult$UpdatedToken" : "If token was updated as part of delivery. (This is GCM Specific)", "EndpointRequest$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointRequest$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointRequest$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", @@ -766,6 +920,10 @@ "EndpointResponse$Id" : "The unique ID that you assigned to the endpoint. The ID should be a globally unique identifier (GUID) to ensure that it is unique compared to all other endpoints for the application.", "EndpointResponse$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointResponse$RequestId" : "The unique ID for the most recent request to update the endpoint.", + "EndpointResponse$ShardId" : "The ShardId of endpoint.", + "EndpointSendConfiguration$BodyOverride" : "Body override. If specified will override default body.", + "EndpointSendConfiguration$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "EndpointSendConfiguration$TitleOverride" : "Title override. If specified will override default title if applicable.", "EndpointUser$UserId" : "The unique ID of the user.", "EventStream$ApplicationId" : "The ID of the application from which events should be published.", "EventStream$DestinationStreamArn" : "The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events.\n Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME\n Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME", @@ -786,6 +944,7 @@ "GCMMessage$IconReference" : "The icon image name of the asset saved in your application.", "GCMMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", "GCMMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "GCMMessage$JsonData" : "The data payload used for a silent push. This payload is added to the notifications' data.pinpoint.jsonBody' object", "GCMMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "GCMMessage$RestrictedPackageName" : "This parameter specifies the package name of the application where the registration tokens must match in order to receive the message.", "GCMMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", @@ -819,6 +978,7 @@ "Message$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "MessageBody$Message" : "The error message returned from the API.", "MessageBody$RequestID" : "The unique message body ID.", + "MessageRequest$RequestId" : "Original request Id for which this message is delivered.", "MessageResponse$ApplicationId" : "Application id of the message.", "MessageResponse$RequestId" : "Original request Id for which this message was delivered.", "MessageResult$StatusMessage" : "Status message for message delivery.", @@ -826,6 +986,7 @@ "QuietTime$End" : "The default end time for quiet time in ISO 8601 format.", "QuietTime$Start" : "The default start time for quiet time in ISO 8601 format.", "SMSChannelRequest$SenderId" : "Sender identifier of your messages.", + "SMSChannelRequest$ShortCode" : "ShortCode registered with phone provider.", "SMSChannelResponse$ApplicationId" : "The unique ID of the application to which the SMS channel belongs.", "SMSChannelResponse$CreationDate" : "The date that the settings were last updated in ISO 8601 format.", "SMSChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", @@ -848,6 +1009,9 @@ "SegmentResponse$LastModifiedDate" : "The date the segment was last updated in ISO 8601 format.", "SegmentResponse$Name" : "The name of segment", "SegmentsResponse$NextToken" : "An identifier used to retrieve the next page of results. The token is null if no additional pages exist.", + "SendUsersMessageRequest$RequestId" : "Original request Id for which this message is delivered.", + "SendUsersMessageResponse$ApplicationId" : "Application id of the message.", + "SendUsersMessageResponse$RequestId" : "Original request Id for which this message was delivered.", "TreatmentResource$Id" : "The unique treatment ID.", "TreatmentResource$TreatmentDescription" : "A custom description for the treatment.", "TreatmentResource$TreatmentName" : "The custom name of a variation of the campaign used for A/B testing.", @@ -857,14 +1021,11 @@ "WriteCampaignRequest$TreatmentDescription" : "A custom description for the treatment.", "WriteCampaignRequest$TreatmentName" : "The custom name of a variation of the campaign used for A/B testing.", "WriteEventStream$DestinationStreamArn" : "The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events.\n Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME\n Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME", + "WriteEventStream$ExternalId" : "The external ID assigned the IAM role that authorizes Amazon Pinpoint to publish to the stream.", "WriteEventStream$RoleArn" : "The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account.", "WriteSegmentRequest$Name" : "The name of segment", "WriteTreatmentResource$TreatmentDescription" : "A custom description for the treatment.", - "WriteTreatmentResource$TreatmentName" : "The custom name of a variation of the campaign used for A/B testing.", - "PutEventStreamRequest$ApplicationId": "Application Id.", - "PutEventStreamRequest$WriteEventStream": "Write event stream wrapper.", - "GetEventStreamRequest$ApplicationId": "Application Id.", - "DeleteEventStreamRequest$ApplicationId": "Application Id." + "WriteTreatmentResource$TreatmentName" : "The custom name of a variation of the campaign used for A/B testing." } } } diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/api-2.json index 1d92a5b9..64144feb 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/api-2.json @@ -1983,7 +1983,9 @@ "DomainIAMRoleName":{"shape":"String"}, "PromotionTier":{"shape":"IntegerOptional"}, "Timezone":{"shape":"String"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "CreateDBInstanceReadReplicaMessage":{ @@ -2010,7 +2012,9 @@ "MonitoringRoleArn":{"shape":"String"}, "KmsKeyId":{"shape":"String"}, "PreSignedUrl":{"shape":"String"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "CreateDBInstanceReadReplicaResult":{ @@ -2522,7 +2526,9 @@ "PromotionTier":{"shape":"IntegerOptional"}, "DBInstanceArn":{"shape":"String"}, "Timezone":{"shape":"String"}, - "IAMDatabaseAuthenticationEnabled":{"shape":"Boolean"} + "IAMDatabaseAuthenticationEnabled":{"shape":"Boolean"}, + "PerformanceInsightsEnabled":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} }, "wrapper":true }, @@ -3952,7 +3958,9 @@ "MonitoringRoleArn":{"shape":"String"}, "DomainIAMRoleName":{"shape":"String"}, "PromotionTier":{"shape":"IntegerOptional"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "ModifyDBInstanceResult":{ @@ -3996,7 +4004,8 @@ "required":["DBSnapshotIdentifier"], "members":{ "DBSnapshotIdentifier":{"shape":"String"}, - "EngineVersion":{"shape":"String"} + "EngineVersion":{"shape":"String"}, + "OptionGroupName":{"shape":"String"} } }, "ModifyDBSnapshotResult":{ @@ -4299,7 +4308,8 @@ "StorageType":{"shape":"String"}, "SupportsIops":{"shape":"Boolean"}, "SupportsEnhancedMonitoring":{"shape":"Boolean"}, - "SupportsIAMDatabaseAuthentication":{"shape":"Boolean"} + "SupportsIAMDatabaseAuthentication":{"shape":"Boolean"}, + "SupportsPerformanceInsights":{"shape":"Boolean"} }, "wrapper":true }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/docs-2.json index 4f6a4e5e..09cdcc63 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/rds/2014-10-31/docs-2.json @@ -26,7 +26,7 @@ "DeleteDBCluster": "

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and cannot be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "DeleteDBClusterParameterGroup": "

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted cannot be associated with any DB clusters.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "DeleteDBClusterSnapshot": "

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB cluster snapshot must be in the available state to be deleted.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", - "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and cannot be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action cannot be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

If the specified DB instance is part of an Amazon Aurora DB cluster, you cannot delete the DB instance if the following are true:

  • The DB cluster is a Read Replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster.

", + "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and cannot be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action cannot be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

If the specified DB instance is part of an Amazon Aurora DB cluster, you cannot delete the DB instance if both of the following conditions are true:

  • The DB cluster is a Read Replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster.

", "DeleteDBParameterGroup": "

Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted cannot be associated with any DB instances.

", "DeleteDBSecurityGroup": "

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

", "DeleteDBSnapshot": "

Deletes a DBSnapshot. If the snapshot is being copied, the copy operation is terminated.

The DBSnapshot must be in the available state to be deleted.

", @@ -69,7 +69,7 @@ "ModifyDBClusterSnapshotAttribute": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot.

To share a manual DB cluster snapshot with other AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all AWS accounts. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot public or private, use the DescribeDBClusterSnapshotAttributes API action.

", "ModifyDBInstance": "

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request.

", "ModifyDBParameterGroup": "

Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB instance associated with the parameter group before the change can take effect.

After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", - "ModifyDBSnapshot": "

Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version. You can update the engine version to either a new major or minor engine version.

Amazon RDS supports upgrading a MySQL DB snapshot from MySQL 5.1 to MySQL 5.5.

", + "ModifyDBSnapshot": "

Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version.

Amazon RDS supports upgrading DB snapshots for MySQL and Oracle.

", "ModifyDBSnapshotAttribute": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot.

To share a manual DB snapshot with other AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS accounts that are authorized to restore the manual DB snapshot. Uses the value all to make the manual DB snapshot public, which means it can be copied or restored by all AWS accounts. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all AWS accounts. If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the DescribeDBSnapshotAttributes API action.

", "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region.

", "ModifyEventSubscription": "

Modifies an existing RDS event notification subscription. Note that you cannot modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

", @@ -84,7 +84,7 @@ "ResetDBClusterParameterGroup": "

Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB cluster parameter group, specify the DBClusterParameterGroupName and ResetAllParameters parameters.

When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. You must call RebootDBInstance for every DB instance in your DB cluster that you want the updated static parameter to apply to.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "ResetDBParameterGroup": "

Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request.

", "RestoreDBClusterFromS3": "

Creates an Amazon Aurora DB cluster from data stored in an Amazon S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and the data must be created using the Percona XtraBackup utility as described in Migrating Data from MySQL by Using an Amazon S3 Bucket.

", - "RestoreDBClusterFromSnapshot": "

Creates a new DB cluster from a DB cluster snapshot. The target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "RestoreDBClusterFromSnapshot": "

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

If a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group.

If a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "RestoreDBClusterToPointInTime": "

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "RestoreDBInstanceFromDBSnapshot": "

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS does not allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

", "RestoreDBInstanceToPointInTime": "

Restores a DB instance to an arbitrary point in time. You can restore to any point in time before the time identified by the LatestRestorableTime property. You can restore to a point up to the number of days specified by the BackupRetentionPeriod property.

The target database is created with most of the original configuration, but in a system-selected availability zone, with the default security group, the default subnet group, and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored deployment and not a single-AZ deployment.

", @@ -255,6 +255,7 @@ "OrderableDBInstanceOption$SupportsIops": "

Indicates whether this orderable DB instance supports provisioned IOPS.

", "OrderableDBInstanceOption$SupportsEnhancedMonitoring": "

Indicates whether the DB instance supports enhanced monitoring at intervals from 1 to 60 seconds.

", "OrderableDBInstanceOption$SupportsIAMDatabaseAuthentication": "

Indicates whether this orderable DB instance supports IAM database authentication.

", + "OrderableDBInstanceOption$SupportsPerformanceInsights": null, "Parameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", "ReservedDBInstance$MultiAZ": "

Indicates if the reservation applies to Multi-AZ deployments.

", "ReservedDBInstancesOffering$MultiAZ": "

Indicates if the offering applies to Multi-AZ deployments.

", @@ -279,11 +280,14 @@ "CreateDBInstanceMessage$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

Amazon Aurora

Not applicable. The encryption for DB instances is managed by the DB cluster. For more information, see CreateDBCluster.

Default: false

", "CreateDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false.

", "CreateDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines:

Amazon Aurora

Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see CreateDBCluster.

MySQL

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", + "CreateDBInstanceMessage$EnablePerformanceInsights": null, "CreateDBInstanceReadReplicaMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades will be applied automatically to the Read Replica during the maintenance window.

Default: Inherits from the source DB instance

", "CreateDBInstanceReadReplicaMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", "CreateDBInstanceReadReplicaMessage$CopyTagsToSnapshot": "

True to copy all tags from the Read Replica to snapshots of the Read Replica; otherwise false. The default is false.

", "CreateDBInstanceReadReplicaMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

", + "CreateDBInstanceReadReplicaMessage$EnablePerformanceInsights": null, "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", + "DBInstance$PerformanceInsightsEnabled": null, "DescribeDBEngineVersionsMessage$ListSupportedCharacterSets": "

If this parameter is specified and the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version.

", "DescribeDBEngineVersionsMessage$ListSupportedTimezones": "

If this parameter is specified and the requested engine supports the TimeZone parameter for CreateDBInstance, the response includes a list of supported time zones for each engine version.

", "DescribeOrderableDBInstanceOptionsMessage$Vpc": "

The VPC filter value. Specify this parameter to show only the available VPC or non-VPC offerings.

", @@ -295,6 +299,7 @@ "ModifyDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false.

", "ModifyDBInstanceMessage$PubliclyAccessible": "

Boolean value that indicates if the DB instance has a publicly resolvable DNS name. Set to True to make the DB instance Internet-facing with a publicly resolvable DNS name, which resolves to a public IP address. Set to False to make the DB instance internal with a DNS name that resolves to a private IP address.

PubliclyAccessible only applies to DB instances in a VPC. The DB instance must be part of a public subnet and PubliclyAccessible must be true in order for it to be publicly accessible.

Changes to the PubliclyAccessible parameter are applied immediately regardless of the value of the ApplyImmediately parameter.

Default: false

", "ModifyDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

Amazon Aurora

Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see ModifyDBCluster.

MySQL

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", + "ModifyDBInstanceMessage$EnablePerformanceInsights": null, "ModifyEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription.

", "OptionGroupOption$SupportsOptionVersionDowngrade": "

If true, you can change the option to an earlier version of the option. This only applies to options that have different versions available.

", "PendingModifiedValues$MultiAZ": "

Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.

", @@ -2327,7 +2332,7 @@ "CreateDBClusterMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", "CreateDBClusterMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", "CreateDBClusterMessage$ReplicationSourceIdentifier": "

The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.

", - "CreateDBClusterMessage$KmsKeyId": "

The KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

If you create a Read Replica of an encrypted DB cluster in another AWS Region, you must set KmsKeyId to a KMS key ID that is valid in the destination AWS Region. This key is used to encrypt the Read Replica in that AWS Region.

", + "CreateDBClusterMessage$KmsKeyId": "

The KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If an encryption key is not specified in KmsKeyId:

  • If ReplicationSourceIdentifier identifies an encrypted source, then Amazon RDS will use the encryption key used to encrypt the source. Otherwise, Amazon RDS will use your default encryption key.

  • If the StorageEncrypted parameter is true and ReplicationSourceIdentifier is not specified, then Amazon RDS will use your default encryption key.

AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

If you create a Read Replica of an encrypted DB cluster in another AWS Region, you must set KmsKeyId to a KMS key ID that is valid in the destination AWS Region. This key is used to encrypt the Read Replica in that AWS Region.

", "CreateDBClusterMessage$PreSignedUrl": "

A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source AWS Region where the DB cluster will be replicated from. You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster.

The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source AWS Region that contains the encrypted DB cluster to be copied.

The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination AWS Region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the AWS Region that Aurora Read Replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster from the us-west-2 region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", "CreateDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", "CreateDBClusterParameterGroupMessage$DBParameterGroupFamily": "

The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.

", @@ -2345,7 +2350,7 @@ "CreateDBInstanceMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see DB Instance Maintenance.

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", "CreateDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine will be used.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", "CreateDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see DB Instance Backups.

Amazon Aurora

Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see CreateDBCluster.

Default: A 30-minute window selected at random from an 8-hour block of time per AWS Region. To see the time blocks available, see Adjusting the Preferred DB Instance Maintenance Window.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", - "CreateDBInstanceMessage$EngineVersion": "

The version number of the database engine to use.

The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region.

Amazon Aurora

Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. For more information, see CreateDBCluster.

MariaDB

  • 10.1.23 (supported in all AWS regions)

  • 10.1.19 (supported in all AWS regions)

  • 10.1.14 (supported in all regions except us-east-2)

  • 10.0.31 (supported in all AWS regions)

  • 10.0.28 (supported in all AWS regions)

  • 10.0.24 (supported in all AWS regions)

  • 10.0.17 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

Microsoft SQL Server 2016

  • 13.00.4422.0.v1 (supported for all editions, and all AWS regions)

  • 13.00.2164.0.v1 (supported for all editions, and all AWS regions)

Microsoft SQL Server 2014

  • 12.00.5546.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.5000.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS regions except ca-central-1 and eu-west-2)

Microsoft SQL Server 2012

  • 11.00.6594.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.6020.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.5058.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 11.00.2100.60.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

Microsoft SQL Server 2008 R2

  • 10.50.6529.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.6000.34.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.2789.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

MySQL

  • 5.7.17 (supported in all AWS regions)

  • 5.7.16 (supported in all AWS regions)

  • 5.7.11 (supported in all AWS regions)

  • 5.6.35 (supported in all AWS regions)

  • 5.6.34 (supported in all AWS regions)

  • 5.6.29 (supported in all AWS regions)

  • 5.6.27 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

  • 5.5.54 (supported in all AWS regions)

  • 5.5.53 (supported in all AWS regions)

  • 5.5.46 (supported in all AWS regions)

Oracle 12c

  • 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

Oracle 11g

  • 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions)

PostgreSQL

  • Version 9.6.x: 9.6.1 | 9.6.2

  • Version 9.5.x: 9.5.6 | 9.5.4 | 9.5.2

  • Version 9.4.x: 9.4.11 | 9.4.9 | 9.4.7

  • Version 9.3.x: 9.3.16 | 9.3.14 | 9.3.12

", + "CreateDBInstanceMessage$EngineVersion": "

The version number of the database engine to use.

The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region.

Amazon Aurora

Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. For more information, see CreateDBCluster.

MariaDB

  • 10.1.23 (supported in all AWS regions)

  • 10.1.19 (supported in all AWS regions)

  • 10.1.14 (supported in all regions except us-east-2)

  • 10.0.31 (supported in all AWS regions)

  • 10.0.28 (supported in all AWS regions)

  • 10.0.24 (supported in all AWS regions)

  • 10.0.17 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

Microsoft SQL Server 2016

  • 13.00.4422.0.v1 (supported for all editions, and all AWS regions)

  • 13.00.2164.0.v1 (supported for all editions, and all AWS regions)

Microsoft SQL Server 2014

  • 12.00.5546.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.5000.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS regions except ca-central-1 and eu-west-2)

Microsoft SQL Server 2012

  • 11.00.6594.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.6020.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.5058.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 11.00.2100.60.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

Microsoft SQL Server 2008 R2

  • 10.50.6529.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.6000.34.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.2789.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

MySQL

  • 5.7.17 (supported in all AWS regions)

  • 5.7.16 (supported in all AWS regions)

  • 5.7.11 (supported in all AWS regions)

  • 5.6.35 (supported in all AWS regions)

  • 5.6.34 (supported in all AWS regions)

  • 5.6.29 (supported in all AWS regions)

  • 5.6.27 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

  • 5.5.54 (supported in all AWS regions)

  • 5.5.53 (supported in all AWS regions)

  • 5.5.46 (supported in all AWS regions)

Oracle 12c

  • 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

Oracle 11g

  • 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions)

PostgreSQL

  • Version 9.6.x: 9.6.1 | 9.6.2 | 9.6.3

  • Version 9.5.x: 9.5.6 | 9.5.4 | 9.5.2

  • Version 9.4.x: 9.4.11 | 9.4.9 | 9.4.7

  • Version 9.3.x: 9.3.16 | 9.3.14 | 9.3.12

", "CreateDBInstanceMessage$LicenseModel": "

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", "CreateDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", "CreateDBInstanceMessage$CharacterSetName": "

For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.

Amazon Aurora

Not applicable. The character set is managed by the DB cluster. For more information, see CreateDBCluster.

", @@ -2358,6 +2363,7 @@ "CreateDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to Setting Up and Enabling Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", "CreateDBInstanceMessage$DomainIAMRoleName": "

Specify the name of the IAM role to be used when making API calls to the Directory Service.

", "CreateDBInstanceMessage$Timezone": "

The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.

", + "CreateDBInstanceMessage$PerformanceInsightsKMSKeyId": null, "CreateDBInstanceReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier of the Read Replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string.

", "CreateDBInstanceReadReplicaMessage$SourceDBInstanceIdentifier": "

The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas.

Constraints:

  • Must be the identifier of an existing MySQL, MariaDB, or PostgreSQL DB instance.

  • Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6.

  • Can specify a DB instance that is a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later (9.4.7 and higher for cross region replication).

  • The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0.

  • If the source DB instance is in the same AWS Region as the Read Replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different AWS Region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN).

", "CreateDBInstanceReadReplicaMessage$DBInstanceClass": "

The compute and memory capacity of the Read Replica. Note that not all instance classes are available in all regions for all DB engines.

Valid Values: db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

Default: Inherits from the source DB instance.

", @@ -2368,6 +2374,7 @@ "CreateDBInstanceReadReplicaMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", "CreateDBInstanceReadReplicaMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted Read Replica. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you specify this parameter when you create a Read Replica from an unencrypted DB instance, the Read Replica is encrypted.

If you create an encrypted Read Replica in the same AWS Region as the source DB instance, then you do not have to specify a value for this parameter. The Read Replica is encrypted with the same KMS key as the source DB instance.

If you create an encrypted Read Replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you cannot use encryption keys from one AWS Region in another AWS Region.

", "CreateDBInstanceReadReplicaMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the source AWS Region that contains the source DB instance.

You must specify this parameter when you create an encrypted Read Replica from another AWS Region by using the Amazon RDS API. You can specify the source region option instead of this parameter when you create an encrypted Read Replica from another AWS Region by using the AWS CLI.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source AWS Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The AWS Region that the encrypted Read Replica will be created in. This AWS Region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 region, from a source DB instance in the us-east-2 region, then you call the CreateDBInstanceReadReplica action in the us-east-1 region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the Read Replica in the destination AWS Region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination AWS Region, and the action contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are creating an encrypted Read Replica from a DB instance in the us-west-2 region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", + "CreateDBInstanceReadReplicaMessage$PerformanceInsightsKMSKeyId": null, "CreateDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", "CreateDBParameterGroupMessage$DBParameterGroupFamily": "

The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.

", "CreateDBParameterGroupMessage$Description": "

The description for the DB parameter group.

", @@ -2463,6 +2470,7 @@ "DBInstance$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to CloudWatch Logs.

", "DBInstance$DBInstanceArn": "

The Amazon Resource Name (ARN) for the DB instance.

", "DBInstance$Timezone": "

The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.

", + "DBInstance$PerformanceInsightsKMSKeyId": null, "DBInstanceMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", "DBInstanceStatusInfo$StatusType": "

This value is currently \"read replication.\"

", "DBInstanceStatusInfo$Status": "

Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated.

", @@ -2668,11 +2676,13 @@ "ModifyDBInstanceMessage$Domain": "

The Active Directory Domain to move the instance to. Specify none to remove the instance from its current domain. The domain must be created prior to this operation. Currently only a Microsoft SQL Server instance can be created in a Active Directory Domain.

", "ModifyDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", "ModifyDBInstanceMessage$DomainIAMRoleName": "

The name of the IAM role to use when making API calls to the Directory Service.

", + "ModifyDBInstanceMessage$PerformanceInsightsKMSKeyId": null, "ModifyDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", "ModifyDBSnapshotAttributeMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to modify the attributes for.

", "ModifyDBSnapshotAttributeMessage$AttributeName": "

The name of the DB snapshot attribute to modify.

To manage authorization for other AWS accounts to copy or restore a manual DB snapshot, set this value to restore.

", "ModifyDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier of the DB snapshot to modify.

", - "ModifyDBSnapshotMessage$EngineVersion": "

The engine version to update the DB snapshot to.

", + "ModifyDBSnapshotMessage$EngineVersion": "

The engine version to upgrade the DB snapshot to.

The following are the database engines and engine versions that are available when you upgrade a DB snapshot.

MySQL

  • 5.5.46 (supported for 5.1 DB snapshots)

Oracle

  • 12.1.0.2.v8 (supported for 12.1.0.1 DB snapshots)

  • 11.2.0.4.v12 (supported for 11.2.0.2 DB snapshots)

  • 11.2.0.4.v11 (supported for 11.2.0.3 DB snapshots)

", + "ModifyDBSnapshotMessage$OptionGroupName": "

The option group to identify with the upgraded DB snapshot.

You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see Option Group Considerations.

", "ModifyDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", "ModifyDBSubnetGroupMessage$DBSubnetGroupDescription": "

The description for the DB subnet group.

", "ModifyEventSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription.

", @@ -2792,14 +2802,14 @@ "RestoreDBClusterFromS3Message$S3BucketName": "

The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster.

", "RestoreDBClusterFromS3Message$S3Prefix": "

The prefix for all of the file names that contain the data used to create the Amazon Aurora DB cluster. If you do not specify a SourceS3Prefix value, then the Amazon Aurora DB cluster is created by using all of the files in the Amazon S3 bucket.

", "RestoreDBClusterFromS3Message$S3IngestionRoleArn": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf.

", - "RestoreDBClusterFromSnapshotMessage$DBClusterIdentifier": "

The name of the DB cluster to create from the DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", - "RestoreDBClusterFromSnapshotMessage$SnapshotIdentifier": "

The identifier for the DB cluster snapshot to restore from.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "RestoreDBClusterFromSnapshotMessage$DBClusterIdentifier": "

The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "RestoreDBClusterFromSnapshotMessage$SnapshotIdentifier": "

The identifier for the DB snapshot or DB cluster snapshot to restore from.

You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", "RestoreDBClusterFromSnapshotMessage$Engine": "

The database engine to use for the new DB cluster.

Default: The same as source

Constraint: Must be compatible with the engine of the source

", "RestoreDBClusterFromSnapshotMessage$EngineVersion": "

The version of the database engine to use for the new DB cluster.

", "RestoreDBClusterFromSnapshotMessage$DBSubnetGroupName": "

The name of the DB subnet group to use for the new DB cluster.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", "RestoreDBClusterFromSnapshotMessage$DatabaseName": "

The database name for the restored DB cluster.

", "RestoreDBClusterFromSnapshotMessage$OptionGroupName": "

The name of the option group to use for the restored DB cluster.

", - "RestoreDBClusterFromSnapshotMessage$KmsKeyId": "

The KMS key identifier to use when restoring an encrypted DB cluster from a DB cluster snapshot.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB cluster snapshot is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB cluster snapshot.

  • If the DB cluster snapshot is not encrypted, then the restored DB cluster is encrypted using the specified encryption key.

", + "RestoreDBClusterFromSnapshotMessage$KmsKeyId": "

The KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is not encrypted, then the restored DB cluster is not encrypted.

", "RestoreDBClusterToPointInTimeMessage$DBClusterIdentifier": "

The name of the new DB cluster to be created.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", "RestoreDBClusterToPointInTimeMessage$RestoreType": "

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

Constraints: You cannot specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

", "RestoreDBClusterToPointInTimeMessage$SourceDBClusterIdentifier": "

The identifier of the source DB cluster from which to restore.

Constraints:

  • Must be the identifier of an existing database instance

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/api-2.json index 58b4ed91..0d200734 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/api-2.json @@ -545,7 +545,8 @@ "resultWrapper":"DescribeEventSubscriptionsResult" }, "errors":[ - {"shape":"SubscriptionNotFoundFault"} + {"shape":"SubscriptionNotFoundFault"}, + {"shape":"InvalidTagFault"} ] }, "DescribeEvents":{ @@ -2097,7 +2098,9 @@ "members":{ "SubscriptionName":{"shape":"String"}, "MaxRecords":{"shape":"IntegerOptional"}, - "Marker":{"shape":"String"} + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} } }, "DescribeEventsMessage":{ diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/docs-2.json index 28cdd0d4..a5d729ac 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/redshift/2012-12-01/docs-2.json @@ -34,7 +34,7 @@ "DescribeClusters": "

Returns properties of provisioned clusters including general cluster properties, cluster database properties, maintenance and backup properties, and security and access properties. This operation supports pagination. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all clusters that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all clusters that have any combination of those values are returned.

If both tag keys and values are omitted from the request, clusters are returned regardless of whether they have tag keys or values associated with them.

", "DescribeDefaultClusterParameters": "

Returns a list of parameter settings for the specified parameter group family.

For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", "DescribeEventCategories": "

Displays a list of event categories for all event source types, or for a specified source type. For a list of the event categories and source types, go to Amazon Redshift Event Notifications.

", - "DescribeEventSubscriptions": "

Lists descriptions of all the Amazon Redshift event notifications subscription for a customer account. If you specify a subscription name, lists the description for that subscription.

", + "DescribeEventSubscriptions": "

Lists descriptions of all the Amazon Redshift event notification subscriptions for a customer account. If you specify a subscription name, lists the description for that subscription.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all event notification subscriptions that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all subscriptions that have any combination of those values are returned.

If both tag keys and values are omitted from the request, subscriptions are returned regardless of whether they have tag keys or values associated with them.

", "DescribeEvents": "

Returns events related to clusters, security groups, snapshots, and parameter groups for the past 14 days. Events specific to a particular cluster, security group, snapshot or parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

", "DescribeHsmClientCertificates": "

Returns information about the specified HSM client certificate. If no certificate ID is specified, returns information about all the HSM certificates owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM client certificates that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM client certificates that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM client certificates are returned regardless of whether they have tag keys or values associated with them.

", "DescribeHsmConfigurations": "

Returns information about the specified Amazon Redshift HSM configuration. If no configuration ID is specified, returns information about all the HSM configurations owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM connections that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM connections that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM connections are returned regardless of whether they have tag keys or values associated with them.

", @@ -50,7 +50,7 @@ "DisableSnapshotCopy": "

Disables the automatic copying of snapshots from one region to another region for a specified cluster.

If your cluster and its snapshots are encrypted using a customer master key (CMK) from AWS KMS, use DeleteSnapshotCopyGrant to delete the grant that grants Amazon Redshift permission to the CMK in the destination region.

", "EnableLogging": "

Starts logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

", "EnableSnapshotCopy": "

Enables the automatic copy of snapshots from one region to another region for a specified cluster.

", - "GetClusterCredentials": "

Returns a database user name and temporary password with temporary authorization to log in to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log in. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Generating IAM Database User Credentials in the Amazon Redshift Cluster Management Guide.

The IAM user or role that executes GetClusterCredentials must have an IAM policy attached that allows the redshift:GetClusterCredentials action with access to the dbuser resource on the cluster. The user name specified for dbuser in the IAM policy and the user name specified for the DbUser parameter must match.

If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups.

In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege.

If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.

", + "GetClusterCredentials": "

Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Using IAM Authentication to Generate Database User Credentials in the Amazon Redshift Cluster Management Guide.

The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see Resource Policies for GetClusterCredentials in the Amazon Redshift Cluster Management Guide.

If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups.

In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege.

If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.

", "ModifyCluster": "

Modifies the settings for a cluster. For example, you can add another security or parameter group, update the preferred maintenance window, or change the master user password. Resetting a cluster password or modifying the security groups associated with a cluster do not need a reboot. However, modifying a parameter group requires a reboot for parameters to take effect. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

You can also change node type and the number of nodes to scale up or down the cluster. When resizing a cluster, you must specify both the number of nodes and the node type even if one of the parameters does not change.

", "ModifyClusterIamRoles": "

Modifies the list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.

A cluster can have up to 10 IAM roles associated at any time.

", "ModifyClusterParameterGroup": "

Modifies the parameters of a parameter group.

For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", @@ -157,7 +157,7 @@ "CreateClusterMessage$Encrypted": "

If true, the data in the cluster is encrypted at rest.

Default: false

", "CreateClusterMessage$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", - "GetClusterCredentialsMessage$AutoCreate": "

Create a database user with the name specified for DbUser if one does not exist.

", + "GetClusterCredentialsMessage$AutoCreate": "

Create a database user with the name specified for the user named in DbUser if one does not exist.

", "ModifyClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Default: false

", "ModifyClusterMessage$PubliclyAccessible": "

If true, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.

", "ModifyClusterMessage$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", @@ -196,7 +196,7 @@ } }, "ClusterCredentials": { - "base": "

Temporary credentials with authorization to log in to an Amazon Redshift database.

", + "base": "

Temporary credentials with authorization to log on to an Amazon Redshift database.

", "refs": { } }, @@ -551,7 +551,7 @@ "DbGroupList": { "base": null, "refs": { - "GetClusterCredentialsMessage$DbGroups": "

A list of the names of existing database groups that DbUser will join for the current session. If not specified, the new user is added only to PUBLIC.

" + "GetClusterCredentialsMessage$DbGroups": "

A list of the names of existing database groups that the user named in DbUser will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC.

Database group name constraints

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" } }, "DefaultClusterParameters": { @@ -1628,7 +1628,7 @@ "Cluster$ClusterPublicKey": "

The public key for the cluster.

", "Cluster$ClusterRevisionNumber": "

The specific revision number of the database in the cluster.

", "Cluster$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.

", - "ClusterCredentials$DbUser": "

A database user name that is authorized to log on to the database DbName using the password DbPassword. If the DbGroups parameter is specifed, DbUser is added to the listed groups for the current session. The user name is prefixed with IAM: for an existing user name or IAMA: if the user was auto-created.

", + "ClusterCredentials$DbUser": "

A database user name that is authorized to log on to the database DbName using the password DbPassword. If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter is specifed, DbUser is added to the listed groups for any sessions created using these credentials.

", "ClusterIamRole$IamRoleArn": "

The Amazon Resource Name (ARN) of the IAM role, for example, arn:aws:iam::123456789012:role/RedshiftCopyUnload.

", "ClusterIamRole$ApplyStatus": "

A value that describes the status of the IAM role's association with an Amazon Redshift cluster.

The following are possible statuses and descriptions.

  • in-sync: The role is available for use by the cluster.

  • adding: The role is in the process of being associated with the cluster.

  • removing: The role is in the process of being disassociated with the cluster.

", "ClusterNode$NodeRole": "

Whether the node is a leader node or a compute node.

", @@ -1744,7 +1744,7 @@ "DescribeDefaultClusterParametersMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeDefaultClusterParameters request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeEventCategoriesMessage$SourceType": "

The source type, such as cluster or parameter group, to which the described event categories apply.

Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group.

", "DescribeEventSubscriptionsMessage$SubscriptionName": "

The name of the Amazon Redshift event notification subscription to be described.

", - "DescribeEventSubscriptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeEventSubscriptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If this parameter is not specified, then all sources are included in the response.

Constraints:

If SourceIdentifier is supplied, SourceType must also be provided.

  • Specify a cluster identifier when SourceType is cluster.

  • Specify a cluster security group name when SourceType is cluster-security-group.

  • Specify a cluster parameter group name when SourceType is cluster-parameter-group.

  • Specify a cluster snapshot identifier when SourceType is cluster-snapshot.

", "DescribeEventsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEvents request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeHsmClientCertificatesMessage$HsmClientCertificateIdentifier": "

The identifier of a specific HSM client certificate for which you want information. If no identifier is specified, information is returned for all HSM client certificates owned by your AWS customer account.

", @@ -1766,7 +1766,7 @@ "DescribeTableRestoreStatusMessage$TableRestoreRequestId": "

The identifier of the table restore request to return status for. If you don't specify a TableRestoreRequestId value, then DescribeTableRestoreStatus returns the status of all in-progress table restore requests.

", "DescribeTableRestoreStatusMessage$Marker": "

An optional pagination token provided by a previous DescribeTableRestoreStatus request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the MaxRecords parameter.

", "DescribeTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) for which you want to describe the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", - "DescribeTagsMessage$ResourceType": "

The type of resource with which you want to view tags. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

  • Snapshot copy grant

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "DescribeTagsMessage$ResourceType": "

The type of resource with which you want to view tags. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

  • Snapshot copy grant

For more information about Amazon Redshift resource types and constructing ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and Principals in the Amazon Redshift Cluster Management Guide.

", "DescribeTagsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the marker parameter and retrying the command. If the marker field is empty, all response records have been retrieved for the request.

", "DisableLoggingMessage$ClusterIdentifier": "

The identifier of the cluster on which logging is to be stopped.

Example: examplecluster

", "DisableSnapshotCopyMessage$ClusterIdentifier": "

The unique identifier of the source cluster that you want to disable copying of snapshots to a destination region.

Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.

", @@ -1799,8 +1799,8 @@ "EventSubscription$Severity": "

The event severity specified in the Amazon Redshift event notification subscription.

Values: ERROR, INFO

", "EventSubscriptionsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", "EventsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", - "GetClusterCredentialsMessage$DbUser": "

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 128 alphanumeric characters or hyphens

  • Must contain only lowercase letters.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", - "GetClusterCredentialsMessage$DbName": "

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log in to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters.

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", + "GetClusterCredentialsMessage$DbUser": "

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", + "GetClusterCredentialsMessage$DbName": "

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log on to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", "GetClusterCredentialsMessage$ClusterIdentifier": "

The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.

", "HsmClientCertificate$HsmClientCertificateIdentifier": "

The identifier of the HSM client certificate.

", "HsmClientCertificate$HsmClientCertificatePublicKey": "

The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.

", @@ -1946,7 +1946,7 @@ "TagKeyList$member": null, "TagValueList$member": null, "TaggedResource$ResourceName": "

The Amazon Resource Name (ARN) with which the tag is associated. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", - "TaggedResource$ResourceType": "

The type of resource with which the tag is associated. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "TaggedResource$ResourceType": "

The type of resource with which the tag is associated. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", "TaggedResourceListMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", "VpcSecurityGroupIdList$member": null, "VpcSecurityGroupMembership$VpcSecurityGroupId": "

The identifier of the VPC security group.

", @@ -2006,7 +2006,7 @@ "base": null, "refs": { "Cluster$ClusterCreateTime": "

The date and time that the cluster was created.

", - "ClusterCredentials$Expiration": "

The date and time DbPassword expires.

", + "ClusterCredentials$Expiration": "

The date and time the password in DbPassword expires.

", "DescribeClusterSnapshotsMessage$StartTime": "

A value that requests only snapshots created at or after the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeClusterSnapshotsMessage$EndTime": "

A time value that requests only snapshots created at or before the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", @@ -2066,6 +2066,7 @@ "DescribeClusterSnapshotsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster snapshots that are associated with the specified key or keys. For example, suppose that you have snapshots that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag keys associated with them.

", "DescribeClusterSubnetGroupsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster subnet groups that are associated with the specified key or keys. For example, suppose that you have subnet groups that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag keys associated with them.

", "DescribeClustersMessage$TagKeys": "

A tag key or keys for which you want to return all matching clusters that are associated with the specified key or keys. For example, suppose that you have clusters that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag keys associated with them.

", + "DescribeEventSubscriptionsMessage$TagKeys": "

A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them.

", "DescribeHsmClientCertificatesMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM client certificates that are associated with the specified key or keys. For example, suppose that you have HSM client certificates that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag keys associated with them.

", "DescribeHsmConfigurationsMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM configurations that are associated with the specified key or keys. For example, suppose that you have HSM configurations that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag keys associated with them.

", "DescribeSnapshotCopyGrantsMessage$TagKeys": "

A tag key or keys for which you want to return all matching resources that are associated with the specified key or keys. For example, suppose that you have resources tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with all resources that have either or both of these tag keys associated with them.

", @@ -2111,6 +2112,7 @@ "DescribeClusterSnapshotsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster snapshots that are associated with the specified tag value or values. For example, suppose that you have snapshots that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag values associated with them.

", "DescribeClusterSubnetGroupsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster subnet groups that are associated with the specified tag value or values. For example, suppose that you have subnet groups that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag values associated with them.

", "DescribeClustersMessage$TagValues": "

A tag value or values for which you want to return all matching clusters that are associated with the specified tag value or values. For example, suppose that you have clusters that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag values associated with them.

", + "DescribeEventSubscriptionsMessage$TagValues": "

A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them.

", "DescribeHsmClientCertificatesMessage$TagValues": "

A tag value or values for which you want to return all matching HSM client certificates that are associated with the specified tag value or values. For example, suppose that you have HSM client certificates that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag values associated with them.

", "DescribeHsmConfigurationsMessage$TagValues": "

A tag value or values for which you want to return all matching HSM configurations that are associated with the specified tag value or values. For example, suppose that you have HSM configurations that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag values associated with them.

", "DescribeSnapshotCopyGrantsMessage$TagValues": "

A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them.

", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/api-2.json index 1dd761df..523211ff 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/api-2.json @@ -2913,6 +2913,25 @@ "max":30, "min":10 }, + "ResettableElementName":{ + "type":"string", + "enum":[ + "FullyQualifiedDomainName", + "Regions", + "ResourcePath", + "ChildHealthChecks" + ], + "max":64, + "min":1 + }, + "ResettableElementNameList":{ + "type":"list", + "member":{ + "shape":"ResettableElementName", + "locationName":"ResettableElementName" + }, + "max":64 + }, "ResourceDescription":{ "type":"string", "max":256 @@ -3382,7 +3401,8 @@ "EnableSNI":{"shape":"EnableSNI"}, "Regions":{"shape":"HealthCheckRegionList"}, "AlarmIdentifier":{"shape":"AlarmIdentifier"}, - "InsufficientDataHealthStatus":{"shape":"InsufficientDataHealthStatus"} + "InsufficientDataHealthStatus":{"shape":"InsufficientDataHealthStatus"}, + "ResetElements":{"shape":"ResettableElementNameList"} } }, "UpdateHealthCheckResponse":{ diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/docs-2.json index 304567cb..798b799b 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/route53/2013-04-01/docs-2.json @@ -295,7 +295,7 @@ "DNSName": { "base": null, "refs": { - "AliasTarget$DNSName": "

Alias resource record sets only: The value that you specify depends on where you want to route queries:

CloudFront distribution

Specify the domain name that CloudFront assigned when you created your distribution.

Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide.

Elastic Beanstalk environment

Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute:

  • AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide.

  • Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference.

  • AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference.

ELB load balancer

Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI.

  • AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.)

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of DNSName.

Amazon S3 bucket that is configured as a static website

Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide.

Another Amazon Route 53 resource record set

Specify the value of the Name element for a resource record set in the current hosted zone.

", + "AliasTarget$DNSName": "

Alias resource record sets only: The value that you specify depends on where you want to route queries:

CloudFront distribution

Specify the domain name that CloudFront assigned when you created your distribution.

Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide.

Elastic Beanstalk environment

Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute:

  • AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide.

  • Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference.

  • AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference.

ELB load balancer

Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI.

  • AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.)

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of DNSName. For more information, see the applicable guide:

Amazon S3 bucket that is configured as a static website

Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide.

Another Amazon Route 53 resource record set

Specify the value of the Name element for a resource record set in the current hosted zone.

", "CreateHostedZoneRequest$Name": "

The name of the domain. For resource record types that include a domain name, specify a fully qualified domain name, for example, www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Amazon Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Amazon Route 53, change the name servers for your domain to the set of NameServers that CreateHostedZone returns in DelegationSet.

", "CreateTrafficPolicyInstanceRequest$Name": "

The domain name (such as example.com) or subdomain name (such as www.example.com) for which Amazon Route 53 responds to DNS queries by using the resource record sets that Amazon Route 53 creates for this traffic policy instance.

", "DelegationSetNameServers$member": null, @@ -1426,6 +1426,18 @@ "HealthCheckConfig$RequestInterval": "

The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Amazon Route 53 health checker makes requests at this interval.

You can't change the value of RequestInterval after you create a health check.

If you don't specify a value for RequestInterval, the default value is 30 seconds.

" } }, + "ResettableElementName": { + "base": null, + "refs": { + "ResettableElementNameList$member": null + } + }, + "ResettableElementNameList": { + "base": null, + "refs": { + "UpdateHealthCheckRequest$ResetElements": "

A complex type that contains one ResetElement element for each element that you want to reset to the default value. Valid values for ResetElement include the following:

" + } + }, "ResourceDescription": { "base": null, "refs": { @@ -1438,7 +1450,7 @@ "ResourceId": { "base": null, "refs": { - "AliasTarget$HostedZoneId": "

Alias resource records sets only: The value used depends on where you want to route traffic:

CloudFront distribution

Specify Z2FDTNDATAQYW2.

Alias resource record sets for CloudFront can't be created in a private zone.

Elastic Beanstalk environment

Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

ELB load balancer

Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID:

  • Elastic Load Balancing table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference: Use the value in the \"Amazon Route 53 Hosted Zone ID\" column that corresponds with the region that you created your load balancer in.

  • AWS Management Console: Go to the Amazon EC2 page, click Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab.

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneNameId. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of CanonicalHostedZoneNameID.

An Amazon S3 bucket configured as a static website

Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

Another Amazon Route 53 resource record set in your hosted zone

Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.)

", + "AliasTarget$HostedZoneId": "

Alias resource records sets only: The value used depends on where you want to route traffic:

CloudFront distribution

Specify Z2FDTNDATAQYW2.

Alias resource record sets for CloudFront can't be created in a private zone.

Elastic Beanstalk environment

Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

ELB load balancer

Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID:

  • Elastic Load Balancing table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference: Use the value that corresponds with the region that you created your load balancer in. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers.

  • AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab.

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneNameId. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of CanonicalHostedZoneNameID (for Classic Load Balancers) or CanonicalHostedZoneNameID (for Application and Network Load Balancers). For more information, see the applicable guide:

An Amazon S3 bucket configured as a static website

Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

Another Amazon Route 53 resource record set in your hosted zone

Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.)

", "AssociateVPCWithHostedZoneRequest$HostedZoneId": "

The ID of the private hosted zone that you want to associate an Amazon VPC with.

Note that you can't associate a VPC with a hosted zone that doesn't have an existing VPC association.

", "ChangeInfo$Id": "

The ID of the request.

", "ChangeResourceRecordSetsRequest$HostedZoneId": "

The ID of the hosted zone that contains the resource record sets that you want to change.

", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/api-2.json index cee390c1..f291a3d5 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/api-2.json @@ -24,6 +24,19 @@ {"shape":"UnsupportedTLD"} ] }, + "CheckDomainTransferability":{ + "name":"CheckDomainTransferability", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CheckDomainTransferabilityRequest"}, + "output":{"shape":"CheckDomainTransferabilityResponse"}, + "errors":[ + {"shape":"InvalidInput"}, + {"shape":"UnsupportedTLD"} + ] + }, "DeleteTagsForDomain":{ "name":"DeleteTagsForDomain", "http":{ @@ -374,6 +387,21 @@ "Availability":{"shape":"DomainAvailability"} } }, + "CheckDomainTransferabilityRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AuthCode":{"shape":"DomainAuthCode"} + } + }, + "CheckDomainTransferabilityResponse":{ + "type":"structure", + "required":["Transferability"], + "members":{ + "Transferability":{"shape":"DomainTransferability"} + } + }, "City":{ "type":"string", "max":255 @@ -721,8 +749,7 @@ }, "DomainName":{ "type":"string", - "max":255, - "pattern":"[a-zA-Z0-9_\\-.]*" + "max":255 }, "DomainStatus":{"type":"string"}, "DomainStatusList":{ @@ -754,6 +781,12 @@ "type":"list", "member":{"shape":"DomainSummary"} }, + "DomainTransferability":{ + "type":"structure", + "members":{ + "Transferable":{"shape":"Transferable"} + } + }, "DuplicateRequest":{ "type":"structure", "members":{ @@ -831,11 +864,16 @@ "ES_LEGAL_FORM", "FI_BUSINESS_NUMBER", "FI_ID_NUMBER", + "FI_NATIONALITY", + "FI_ORGANIZATION_TYPE", "IT_PIN", + "IT_REGISTRANT_ENTITY_TYPE", "RU_PASSPORT_DATA", "SE_ID_NUMBER", "SG_ID_NUMBER", - "VAT_NUMBER" + "VAT_NUMBER", + "UK_CONTACT_TYPE", + "UK_COMPANY_NUMBER" ] }, "ExtraParamValue":{ @@ -1064,7 +1102,16 @@ "UPDATE_DOMAIN_CONTACT", "UPDATE_NAMESERVER", "CHANGE_PRIVACY_PROTECTION", - "DOMAIN_LOCK" + "DOMAIN_LOCK", + "ENABLE_AUTORENEW", + "DISABLE_AUTORENEW", + "ADD_DNSSEC", + "REMOVE_DNSSEC", + "EXPIRE_DOMAIN", + "TRANSFER_OUT_DOMAIN", + "CHANGE_DOMAIN_OWNER", + "RENEW_DOMAIN", + "PUSH_DOMAIN" ] }, "PageMarker":{ @@ -1226,6 +1273,14 @@ "OperationId":{"shape":"OperationId"} } }, + "Transferable":{ + "type":"string", + "enum":[ + "TRANSFERABLE", + "UNTRANSFERABLE", + "DONT_KNOW" + ] + }, "UnsupportedTLD":{ "type":"structure", "members":{ @@ -1275,7 +1330,10 @@ ], "members":{ "DomainName":{"shape":"DomainName"}, - "FIAuthKey":{"shape":"FIAuthKey"}, + "FIAuthKey":{ + "shape":"FIAuthKey", + "deprecated":true + }, "Nameservers":{"shape":"NameserverList"} } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/docs-2.json index e0932952..ccc2cee6 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/route53domains/2014-05-15/docs-2.json @@ -3,7 +3,8 @@ "service": "

Amazon Route 53 API actions let you register domain names and perform related operations.

", "operations": { "CheckDomainAvailability": "

This operation checks the availability of one domain name. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name.

", - "DeleteTagsForDomain": "

This operation deletes the specified tags for a domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "CheckDomainTransferability": "

Checks whether a domain name can be transferred to Amazon Route 53.

", + "DeleteTagsForDomain": "

This operation deletes the specified tags for a domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "DisableDomainAutoRenew": "

This operation disables automatic renewal of domain registration for the specified domain.

", "DisableDomainTransferLock": "

This operation removes the transfer lock on the domain (specifically the clientTransferProhibited status) to allow domain transfers. We recommend you refrain from performing this action unless you intend to transfer the domain to a different registrar. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "EnableDomainAutoRenew": "

This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. The cost of renewing your domain registration is billed to your AWS account.

The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \"Renewal, restoration, and deletion times\" on the website for our registrar partner, Gandi. Route 53 requires that you renew before the end of the renewal period that is listed on the Gandi website so we can complete processing before the deadline.

", @@ -14,7 +15,7 @@ "GetOperationDetail": "

This operation returns the current status of an operation that is not completed.

", "ListDomains": "

This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

", "ListOperations": "

This operation returns the operation IDs of operations that are not yet complete.

", - "ListTagsForDomain": "

This operation returns all of the tags that are associated with the specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "ListTagsForDomain": "

This operation returns all of the tags that are associated with the specified domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "RegisterDomain": "

This operation registers a domain. Domains are registered by the AWS registrar partner, Gandi. For some top-level domains (TLDs), this operation requires extra parameters.

When you register a domain, Amazon Route 53 does the following:

  • Creates a Amazon Route 53 hosted zone that has the same name as the domain. Amazon Route 53 assigns four name servers to your hosted zone and automatically updates your domain registration with the names of these name servers.

  • Enables autorenew, so your domain registration will renew automatically each year. We'll notify you in advance of the renewal date so you can choose whether to renew the registration.

  • Optionally enables privacy protection, so WHOIS queries return contact information for our registrar partner, Gandi, instead of the information you entered for registrant, admin, and tech contacts.

  • If registration is successful, returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant is notified by email.

  • Charges your AWS account an amount based on the top-level domain. For more information, see Amazon Route 53 Pricing.

", "RenewDomain": "

This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the expiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see Renewing Registration for a Domain in the Amazon Route 53 Developer Guide.

", "ResendContactReachabilityEmail": "

For operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain, this operation resends the confirmation email to the current email address for the registrant contact.

", @@ -23,7 +24,7 @@ "UpdateDomainContact": "

This operation updates the contact information for a particular domain. Information for at least one contact (registrant, administrator, or technical) must be supplied for update.

If the update is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "UpdateDomainContactPrivacy": "

This operation updates the specified domain contact's privacy setting. When the privacy option is enabled, personal information such as postal or email address is hidden from the results of a public WHOIS query. The privacy services are provided by the AWS registrar, Gandi. For more information, see the Gandi privacy features.

This operation only affects the privacy of the specified contact type (registrant, administrator, or tech). Successful acceptance returns an operation ID that you can use with GetOperationDetail to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "UpdateDomainNameservers": "

This operation replaces the current set of name servers for the domain with the specified set of name servers. If you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted zone for the domain.

If successful, this operation returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", - "UpdateTagsForDomain": "

This operation adds or updates tags for a specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "UpdateTagsForDomain": "

This operation adds or updates tags for a specified domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "ViewBilling": "

Returns all the domain-related billing records for the current AWS account for a specified period

" }, "shapes": { @@ -80,6 +81,16 @@ "refs": { } }, + "CheckDomainTransferabilityRequest": { + "base": "

The CheckDomainTransferability request contains the following elements.

", + "refs": { + } + }, + "CheckDomainTransferabilityResponse": { + "base": "

The CheckDomainTransferability response includes the following elements.

", + "refs": { + } + }, "City": { "base": null, "refs": { @@ -176,6 +187,7 @@ "DomainAuthCode": { "base": null, "refs": { + "CheckDomainTransferabilityRequest$AuthCode": "

If the registrar for the top-level domain (TLD) requires an authorization code to transfer the domain, the code that you got from the current registrar for the domain.

", "RetrieveDomainAuthCodeResponse$AuthCode": "

The authorization code for the domain.

", "TransferDomainRequest$AuthCode": "

The authorization code for the domain. You get this value from the current registrar.

" } @@ -183,7 +195,7 @@ "DomainAvailability": { "base": null, "refs": { - "CheckDomainAvailabilityResponse$Availability": "

Whether the domain name is available for registering.

You can only register domains designated as AVAILABLE.

Valid values:

AVAILABLE

The domain name is available.

AVAILABLE_RESERVED

The domain name is reserved under specific conditions.

AVAILABLE_PREORDER

The domain name is available and can be preordered.

DONT_KNOW

The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

PENDING

The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

RESERVED

The domain name has been reserved for another person or organization.

UNAVAILABLE

The domain name is not available.

UNAVAILABLE_PREMIUM

The domain name is not available.

UNAVAILABLE_RESTRICTED

The domain name is forbidden.

" + "CheckDomainAvailabilityResponse$Availability": "

Whether the domain name is available for registering.

You can register only domains designated as AVAILABLE.

Valid values:

AVAILABLE

The domain name is available.

AVAILABLE_RESERVED

The domain name is reserved under specific conditions.

AVAILABLE_PREORDER

The domain name is available and can be preordered.

DONT_KNOW

The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

PENDING

The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

RESERVED

The domain name has been reserved for another person or organization.

UNAVAILABLE

The domain name is not available.

UNAVAILABLE_PREMIUM

The domain name is not available.

UNAVAILABLE_RESTRICTED

The domain name is forbidden.

" } }, "DomainLimitExceeded": { @@ -196,6 +208,7 @@ "refs": { "BillingRecord$DomainName": "

The name of the domain that the billing record applies to. If the domain name contains characters other than a-z, 0-9, and - (hyphen), such as an internationalized domain name, then this value is in Punycode. For more information, see DNS Domain Name Format in the Amazon Route 53 Developer Guidezzz.

", "CheckDomainAvailabilityRequest$DomainName": "

The name of the domain that you want to get availability for.

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

", + "CheckDomainTransferabilityRequest$DomainName": "

The name of the domain that you want to transfer to Amazon Route 53.

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

", "DeleteTagsForDomainRequest$DomainName": "

The domain for which you want to delete one or more tags.

", "DisableDomainAutoRenewRequest$DomainName": "

The name of the domain that you want to disable automatic renewal for.

", "DisableDomainTransferLockRequest$DomainName": "

The name of the domain that you want to remove the transfer lock for.

", @@ -258,6 +271,12 @@ "ListDomainsResponse$Domains": "

A summary of domains.

" } }, + "DomainTransferability": { + "base": null, + "refs": { + "CheckDomainTransferabilityResponse$Transferability": "

A complex type that contains information about whether the specified domain can be transferred to Amazon Route 53.

" + } + }, "DuplicateRequest": { "base": "

The request is already in progress for the domain.

", "refs": { @@ -305,10 +324,10 @@ "DomainLimitExceeded$message": "

The number of domains has exceeded the allowed threshold for the account.

", "DuplicateRequest$message": "

The request is already in progress for the domain.

", "GetOperationDetailResponse$Message": "

Detailed information on the status including possible errors.

", - "InvalidInput$message": "

The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.

", + "InvalidInput$message": "

The requested item is not acceptable. For example, for an OperationId it might refer to the ID of an operation that is already completed. For a domain name, it might not be a valid domain name or belong to the requester account.

", "OperationLimitExceeded$message": "

The number of operations or jobs running exceeded the allowed threshold for the account.

", "TLDRulesViolation$message": "

The top-level domain does not support this operation.

", - "UnsupportedTLD$message": "

Amazon Route 53 does not support this top-level domain.

" + "UnsupportedTLD$message": "

Amazon Route 53 does not support this top-level domain (TLD).

" } }, "ExtraParam": { @@ -406,7 +425,7 @@ } }, "InvalidInput": { - "base": "

The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.

", + "base": "

The requested item is not acceptable. For example, for an OperationId it might refer to the ID of an operation that is already completed. For a domain name, it might not be a valid domain name or belong to the requester account.

", "refs": { } }, @@ -690,8 +709,14 @@ "refs": { } }, + "Transferable": { + "base": "

Whether the domain name can be transferred to Amazon Route 53.

You can transfer only domains that have a value of TRANSFERABLE for Transferable.

Valid values:

TRANSFERABLE

The domain name can be transferred to Amazon Route 53.

UNTRANSFERRABLE

The domain name can't be transferred to Amazon Route 53.

DONT_KNOW

Reserved for future use.

", + "refs": { + "DomainTransferability$Transferable": null + } + }, "UnsupportedTLD": { - "base": "

Amazon Route 53 does not support this top-level domain.

", + "base": "

Amazon Route 53 does not support this top-level domain (TLD).

", "refs": { } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/api-2.json index d47e4edd..91d42c10 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/api-2.json @@ -56,6 +56,10 @@ }, "shapes":{ "Accept":{"type":"string"}, + "AttributesString":{ + "type":"string", + "sensitive":true + }, "BadGatewayException":{ "type":"structure", "members":{ @@ -215,11 +219,17 @@ "locationName":"userId" }, "sessionAttributes":{ - "shape":"String", + "shape":"AttributesString", "jsonvalue":true, "location":"header", "locationName":"x-amz-lex-session-attributes" }, + "requestAttributes":{ + "shape":"AttributesString", + "jsonvalue":true, + "location":"header", + "locationName":"x-amz-lex-request-attributes" + }, "contentType":{ "shape":"HttpContentType", "location":"header", @@ -308,6 +318,7 @@ "locationName":"userId" }, "sessionAttributes":{"shape":"StringMap"}, + "requestAttributes":{"shape":"StringMap"}, "inputText":{"shape":"Text"} } }, @@ -343,7 +354,8 @@ "StringMap":{ "type":"map", "key":{"shape":"String"}, - "value":{"shape":"String"} + "value":{"shape":"String"}, + "sensitive":true }, "StringUrlWithLength":{ "type":"string", @@ -358,7 +370,8 @@ "Text":{ "type":"string", "max":1024, - "min":1 + "min":1, + "sensitive":true }, "UnsupportedMediaTypeException":{ "type":"structure", diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/docs-2.json index fb52a9b7..00f049c8 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/runtime.lex/2016-11-28/docs-2.json @@ -2,7 +2,7 @@ "version": "2.0", "service": "

Amazon Lex provides both build and runtime endpoints. Each endpoint provides a set of operations (API). Your conversational bot uses the runtime API to understand user utterances (user input text or voice). For example, suppose a user says \"I want pizza\", your bot sends this input to Amazon Lex using the runtime API. Amazon Lex recognizes that the user request is for the OrderPizza intent (one of the intents defined in the bot). Then Amazon Lex engages in user conversation on behalf of the bot to elicit required information (slot values, such as pizza size and crust type), and then performs fulfillment activity (that you configured when you created the bot). You use the build-time API to create and manage your Amazon Lex bot. For a list of build-time operations, see the build-time API, .

", "operations": { - "PostContent": "

Sends user input (text or speech) to Amazon Lex. Clients use this API to send requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot.

In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages:

  • For a user input \"I would like a pizza,\" Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\".

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: \"Order the pizza?\".

  • After the user replies \"Yes\" to the confirmation prompt, Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • x-amz-lex-dialog-state header set to ElicitSlot

    • x-amz-lex-intent-name header set to the intent name in the current context

    • x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information

    • x-amz-lex-slots header set to a map of slots configured for the intent with their current values

  • If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted.

  • If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

", + "PostContent": "

Sends user input (text or speech) to Amazon Lex. Clients use this API to send text and audio requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot.

The PostContent operation supports audio input at 8kHz and 16kHz. You can use 8kHz audio to achieve higher speech recognition accuracy in telephone audio applications.

In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages:

  • For a user input \"I would like a pizza,\" Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\".

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: \"Order the pizza?\".

  • After the user replies \"Yes\" to the confirmation prompt, Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • x-amz-lex-dialog-state header set to ElicitSlot

    • x-amz-lex-intent-name header set to the intent name in the current context

    • x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information

    • x-amz-lex-slots header set to a map of slots configured for the intent with their current values

  • If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted.

  • If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

", "PostText": "

Sends user input (text-only) to Amazon Lex. Client applications can use this API to send requests to Amazon Lex at runtime. Amazon Lex then interprets the user input using the machine learning model it built for the bot.

In response, Amazon Lex returns the next message to convey to the user an optional responseCard to display. Consider the following example messages:

  • For a user input \"I would like a pizza\", Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\"

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to obtain user confirmation \"Proceed with the pizza order?\".

  • After the user replies to a confirmation prompt with a \"yes\", Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a user response. For example, a conclusion statement does not require a response. Some messages require only a \"yes\" or \"no\" user response. In addition to the message, Amazon Lex provides additional context about the message in the response that you might use to enhance client behavior, for example, to display the appropriate client user interface. These are the slotToElicit, dialogState, intentName, and slots fields in the response. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • dialogState set to ElicitSlot

    • intentName set to the intent name in the current context

    • slotToElicit set to the slot name for which the message is eliciting information

    • slots set to a map of slots, configured for the intent, with currently known values

  • If the message is a confirmation prompt, the dialogState is set to ConfirmIntent and SlotToElicit is set to null.

  • If the message is a clarification prompt (configured for the intent) that indicates that user intent is not understood, the dialogState is set to ElicitIntent and slotToElicit is set to null.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

" }, "shapes": { @@ -12,20 +12,27 @@ "PostContentRequest$accept": "

You pass this value as the Accept HTTP header.

The message Amazon Lex returns in the response can be either text or speech based on the Accept HTTP header value in the request.

  • If the value is text/plain; charset=utf-8, Amazon Lex returns text in the response.

  • If the value begins with audio/, Amazon Lex returns speech in the response. Amazon Lex uses Amazon Polly to generate the speech (using the configuration you specified in the Accept header). For example, if you specify audio/mpeg as the value, Amazon Lex returns speech in the MPEG format.

    The following are the accepted values:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • text/plain; charset=utf-8

    • audio/* (defaults to mpeg)

" } }, + "AttributesString": { + "base": null, + "refs": { + "PostContentRequest$sessionAttributes": "

You pass this value as the x-amz-lex-session-attributes HTTP header.

Application-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the sessionAttributes and requestAttributes headers is limited to 12 KB.

For more information, see Setting Session Attributes.

", + "PostContentRequest$requestAttributes": "

You pass this value as the x-amz-lex-request-attributes HTTP header.

Request-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the requestAttributes and sessionAttributes headers is limited to 12 KB.

The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:.

For more information, see Setting Request Attributes.

" + } + }, "BadGatewayException": { "base": "

Either the Amazon Lex bot is still building, or one of the dependent services (Amazon Polly, AWS Lambda) failed with an internal service error.

", "refs": { } }, "BadRequestException": { - "base": "

Request validation failed, there is no usable message in the context, or the bot build failed.

", + "base": "

Request validation failed, there is no usable message in the context, or the bot build failed, is still in progress, or contains unbuilt changes.

", "refs": { } }, "BlobStream": { "base": null, "refs": { - "PostContentRequest$inputStream": "

User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header.

", + "PostContentRequest$inputStream": "

User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header.

You can stream audio data to Amazon Lex or you can create a local buffer that captures all of the audio data before sending. In general, you get better performance if you stream audio data rather than buffering the data locally.

", "PostContentResponse$audioStream": "

The prompt (or statement) to convey to the user. This is based on the bot configuration and context. For example, if Amazon Lex did not understand the user intent, it sends the clarificationPrompt configured for the bot. If the intent requires confirmation before taking the fulfillment action, it sends the confirmationPrompt. Another example: Suppose that the Lambda function successfully fulfilled the intent, and sent a message to convey to the user. Then Amazon Lex sends that message in the response.

" } }, @@ -73,15 +80,15 @@ } }, "DependencyFailedException": { - "base": "

One of the downstream dependencies, such as AWS Lambda or Amazon Polly, threw an exception. For example, if Amazon Lex does not have sufficient permissions to call a Lambda function, it results in Lambda throwing an exception.

", + "base": "

One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. For example,

  • If Amazon Lex does not have sufficient permissions to call a Lambda function.

  • If a Lambda function takes longer than 30 seconds to execute.

  • If a fulfillment Lambda function returns a Delegate dialog action without removing any slot values.

", "refs": { } }, "DialogState": { "base": null, "refs": { - "PostContentResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent – Amazon Lex wants to elicit the user's intent. Consider the following examples:

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state.

  • ConfirmIntent – Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple \"yes\" or \"no\" response, a user might respond with additional information. For example, \"yes, but make it a thick crust pizza\" or \"no, I want to order a drink.\" Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink).

  • ElicitSlot – Amazon Lex is expecting the value of a slot for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled – Conveys that the Lambda function has successfully fulfilled the intent.

  • ReadyForFulfillment – Conveys that the client has to fullfill the request.

  • Failed – Conveys that the conversation with the user failed.

    This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent.

", - "PostTextResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent – Amazon Lex wants to elicit user intent.

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState.

  • ConfirmIntent – Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent.

    Instead of a simple \"yes\" or \"no,\" a user might respond with additional information. For example, \"yes, but make it thick crust pizza\" or \"no, I want to order a drink\". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink).

  • ElicitSlot – Amazon Lex is expecting a slot value for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled – Conveys that the Lambda function configured for the intent has successfully fulfilled the intent.

  • ReadyForFulfillment – Conveys that the client has to fulfill the intent.

  • Failed – Conveys that the conversation with the user failed.

    This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent.

" + "PostContentResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent - Amazon Lex wants to elicit the user's intent. Consider the following examples:

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state.

  • ConfirmIntent - Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple \"yes\" or \"no\" response, a user might respond with additional information. For example, \"yes, but make it a thick crust pizza\" or \"no, I want to order a drink.\" Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink).

  • ElicitSlot - Amazon Lex is expecting the value of a slot for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled - Conveys that the Lambda function has successfully fulfilled the intent.

  • ReadyForFulfillment - Conveys that the client has to fulfill the request.

  • Failed - Conveys that the conversation with the user failed.

    This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent.

", + "PostTextResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent - Amazon Lex wants to elicit user intent.

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState.

  • ConfirmIntent - Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent.

    Instead of a simple \"yes\" or \"no,\" a user might respond with additional information. For example, \"yes, but make it thick crust pizza\" or \"no, I want to order a drink\". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink).

  • ElicitSlot - Amazon Lex is expecting a slot value for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled - Conveys that the Lambda function configured for the intent has successfully fulfilled the intent.

  • ReadyForFulfillment - Conveys that the client has to fulfill the intent.

  • Failed - Conveys that the conversation with the user failed.

    This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent.

" } }, "ErrorMessage": { @@ -101,7 +108,7 @@ "HttpContentType": { "base": null, "refs": { - "PostContentRequest$contentType": "

You pass this values as the Content-Type HTTP header.

Indicates the audio format or text. The header value must start with one of the following prefixes:

  • PCM format

    • audio/l16; rate=16000; channels=1

    • audio/x-l16; sample-rate=16000; channel-count=1

  • Opus format

    • audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=1; frame-size-milliseconds=1.1

  • Text format

    • text/plain; charset=utf-8

", + "PostContentRequest$contentType": "

You pass this value as the Content-Type HTTP header.

Indicates the audio format or text. The header value must start with one of the following prefixes:

  • PCM format, audio data must be in little-endian byte order.

    • audio/l16; rate=16000; channels=1

    • audio/x-l16; sample-rate=16000; channel-count=1

    • audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false

  • Opus format

    • audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=256000; frame-size-milliseconds=4

  • Text format

    • text/plain; charset=utf-8

", "PostContentResponse$contentType": "

Content type as specified in the Accept HTTP header in the request.

" } }, @@ -123,7 +130,7 @@ } }, "LoopDetectedException": { - "base": "

Lambda fulfilment function returned DelegateDialogAction to Amazon Lex without changing any slot values.

", + "base": "

This exception is not used.

", "refs": { } }, @@ -178,11 +185,10 @@ "LimitExceededException$message": null, "NotAcceptableException$message": null, "NotFoundException$message": null, - "PostContentRequest$sessionAttributes": "

You pass this value in the x-amz-lex-session-attributes HTTP header. The value must be map (keys and values must be strings) that is JSON serialized and then base64 encoded.

A session represents dialog between a user and Amazon Lex. At runtime, a client application can pass contextual information, in the request to Amazon Lex. For example,

  • You might use session attributes to track the requestID of user requests.

  • In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of flowers ordered (for example, \"price\":25). The code hook (Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow.

  • In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintains the slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow.

Amazon Lex passes these session attributes to the Lambda functions configured for the intent In the your Lambda function, you can use the session attributes for initialization and customization (prompts). Some examples are:

  • Initialization - In a pizza ordering bot, if you pass user location (for example, \"Location : 111 Maple Street\"), then your Lambda function might use this information to determine the closest pizzeria to place the order (and perhaps set the storeAddress slot value as well).

    Personalized prompts - For example, you can configure prompts to refer to the user by name (for example, \"Hey [firstName], what toppings would you like?\"). You can pass the user's name as a session attribute (\"firstName\": \"Joe\") so that Amazon Lex can substitute the placeholder to provide a personalized prompt to the user (\"Hey Joe, what toppings would you like?\").

Amazon Lex does not persist session attributes.

If you configured a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. The Lambda function must return these session attributes if you want Amazon Lex to return them to the client.

If there is no code hook configured for the intent Amazon Lex simply returns the session attributes to the client application.

", - "PostContentResponse$slots": "

Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation.

", + "PostContentResponse$slots": "

Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE.

", "PostContentResponse$sessionAttributes": "

Map of key/value pairs representing the session-specific context information.

", "PostContentResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", - "PostContentResponse$inputTranscript": "

Transcript of the voice input to the operation.

", + "PostContentResponse$inputTranscript": "

The text used to process the request.

If the input was an audio stream, the inputTranscript field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send.

", "PostTextResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", "RequestTimeoutException$message": null, "ResponseCard$version": "

The version of the response card format.

", @@ -194,8 +200,9 @@ "StringMap": { "base": null, "refs": { - "PostTextRequest$sessionAttributes": "

By using session attributes, a client application can pass contextual information in the request to Amazon Lex For example,

  • In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of the flowers ordered (for example, \"Price\":25). The code hook (the Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow.

  • In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintain slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow.

  • You might use the session attributes (key, value pairs) to track the requestID of user requests.

Amazon Lex simply passes these session attributes to the Lambda functions configured for the intent.

In your Lambda function, you can also use the session attributes for initialization and customization (prompts and response cards). Some examples are:

  • Initialization - In a pizza ordering bot, if you can pass the user location as a session attribute (for example, \"Location\" : \"111 Maple street\"), then your Lambda function might use this information to determine the closest pizzeria to place the order (perhaps to set the storeAddress slot value).

  • Personalize prompts - For example, you can configure prompts to refer to the user name. (For example, \"Hey [FirstName], what toppings would you like?\"). You can pass the user name as a session attribute (\"FirstName\" : \"Joe\") so that Amazon Lex can substitute the placeholder to provide a personalize prompt to the user (\"Hey Joe, what toppings would you like?\").

Amazon Lex does not persist session attributes.

If you configure a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. If you want Amazon Lex to return these session attributes back to the client, the Lambda function must return them.

If there is no code hook configured for the intent, Amazon Lex simply returns the session attributes back to the client application.

", - "PostTextResponse$slots": "

The intent slots (name/value pairs) that Amazon Lex detected so far from the user input in the conversation.

", + "PostTextRequest$sessionAttributes": "

Application-specific information passed between Amazon Lex and a client application.

For more information, see Setting Session Attributes.

", + "PostTextRequest$requestAttributes": "

Request-specific information passed between Amazon Lex and a client application.

The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:.

For more information, see Setting Request Attributes.

", + "PostTextResponse$slots": "

The intent slots that Amazon Lex detected from the user input in the conversation.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE.

", "PostTextResponse$sessionAttributes": "

A map of key-value pairs representing the session-specific context information.

" } }, @@ -229,8 +236,8 @@ "UserId": { "base": null, "refs": { - "PostContentRequest$userId": "

ID of the client application user. Typically, each of your application users should have a unique ID. The application developer decides the user IDs. At runtime, each request must include the user ID. Note the following considerations:

  • If you want a user to start conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as the user's login, or Amazon Cognito user ID (assuming your application is using Amazon Cognito).

  • If you want the same user to be able to have two independent conversations on two different devices, you might choose device-specific identifier, such as device ID, or some globally unique identifier.

", - "PostTextRequest$userId": "

The ID of the client application user. The application developer decides the user IDs. At runtime, each request must include the user ID. Typically, each of your application users should have a unique ID. Note the following considerations:

  • If you want a user to start a conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as a login or Amazon Cognito user ID (assuming your application is using Amazon Cognito).

  • If you want the same user to be able to have two independent conversations on two different devices, you might choose a device-specific identifier, such as device ID, or some globally unique identifier.

" + "PostContentRequest$userId": "

The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field.

To decide the user ID to use for your application, consider the following factors.

  • The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information.

  • If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier.

  • If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier.

  • A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations.

", + "PostTextRequest$userId": "

The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field.

To decide the user ID to use for your application, consider the following factors.

  • The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information.

  • If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier.

  • If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier.

  • A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations.

" } }, "genericAttachmentList": { diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/api-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/api-2.json index dec9f3ed..e629da0b 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/api-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/api-2.json @@ -3064,7 +3064,8 @@ "DocumentType":{"shape":"DocumentType"}, "SchemaVersion":{"shape":"DocumentSchemaVersion"}, "LatestVersion":{"shape":"DocumentVersion"}, - "DefaultVersion":{"shape":"DocumentVersion"} + "DefaultVersion":{"shape":"DocumentVersion"}, + "Tags":{"shape":"TagList"} } }, "DocumentFilter":{ @@ -3118,7 +3119,8 @@ "PlatformTypes":{"shape":"PlatformTypeList"}, "DocumentVersion":{"shape":"DocumentVersion"}, "DocumentType":{"shape":"DocumentType"}, - "SchemaVersion":{"shape":"DocumentSchemaVersion"} + "SchemaVersion":{"shape":"DocumentSchemaVersion"}, + "Tags":{"shape":"TagList"} } }, "DocumentIdentifierList":{ @@ -3128,6 +3130,33 @@ "locationName":"DocumentIdentifier" } }, + "DocumentKeyValuesFilter":{ + "type":"structure", + "members":{ + "Key":{"shape":"DocumentKeyValuesFilterKey"}, + "Values":{"shape":"DocumentKeyValuesFilterValues"} + } + }, + "DocumentKeyValuesFilterKey":{ + "type":"string", + "max":128, + "min":1 + }, + "DocumentKeyValuesFilterList":{ + "type":"list", + "member":{"shape":"DocumentKeyValuesFilter"}, + "max":5, + "min":0 + }, + "DocumentKeyValuesFilterValue":{ + "type":"string", + "max":256, + "min":1 + }, + "DocumentKeyValuesFilterValues":{ + "type":"list", + "member":{"shape":"DocumentKeyValuesFilterValue"} + }, "DocumentLimitExceeded":{ "type":"structure", "members":{ @@ -4631,6 +4660,7 @@ "type":"structure", "members":{ "DocumentFilterList":{"shape":"DocumentFilterList"}, + "Filters":{"shape":"DocumentKeyValuesFilterList"}, "MaxResults":{ "shape":"MaxResults", "box":true @@ -6010,9 +6040,11 @@ "ResourceTypeForTagging":{ "type":"string", "enum":[ + "Document", "ManagedInstance", "MaintenanceWindow", - "Parameter" + "Parameter", + "PatchBaseline" ] }, "ResponseCode":{"type":"integer"}, diff --git a/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/docs-2.json b/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/docs-2.json index c2bda263..688bc93d 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/docs-2.json +++ b/vendor/github.com/aws/aws-sdk-go/models/apis/ssm/2014-11-06/docs-2.json @@ -1,8 +1,8 @@ { "version": "2.0", - "service": "Amazon EC2 Systems Manager

Amazon EC2 Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager.

This reference is intended to be used with the Amazon EC2 Systems Manager User Guide.

To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites.

", + "service": "Amazon EC2 Systems Manager

Amazon EC2 Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager.

This reference is intended to be used with the Amazon EC2 Systems Manager User Guide.

To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites.

For information about other API actions you can perform on Amazon EC2 instances, see the Amazon EC2 API Reference. For information about how to use a Query API, see Making API Requests.

", "operations": { - "AddTagsToResource": "

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you assign to your managed instances, Maintenance Windows, or Parameter Store parameters. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.

Each resource can have a maximum of 10 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters.

For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide.

", + "AddTagsToResource": "

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.

Each resource can have a maximum of 10 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters.

For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide.

", "CancelCommand": "

Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.

", "CreateActivation": "

Registers your on-premises server or virtual machine with Amazon EC2 so that you can manage these resources using Run Command. An on-premises server or virtual machine that has been registered with EC2 is called a managed instance. For more information about activations, see Setting Up Systems Manager in Hybrid Environments.

", "CreateAssociation": "

Associates the specified Systems Manager document with the specified instances or targets.

When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified.

If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception.

", @@ -27,7 +27,7 @@ "DescribeAssociation": "

Describes the associations for the specified Systems Manager document or instance.

", "DescribeAutomationExecutions": "

Provides details about all active and terminated Automation executions.

", "DescribeAvailablePatches": "

Lists all patches that could possibly be included in a patch baseline.

", - "DescribeDocument": "

Describes the specified SSM document.

", + "DescribeDocument": "

Describes the specified Systems Manager document.

", "DescribeDocumentPermission": "

Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (All).

", "DescribeEffectiveInstanceAssociations": "

All associations for the instance(s).

", "DescribeEffectivePatchesForPatchBaseline": "

Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.

", @@ -50,7 +50,7 @@ "GetCommandInvocation": "

Returns detailed information about command execution for an invocation or plugin.

", "GetDefaultPatchBaseline": "

Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.

", "GetDeployablePatchSnapshotForInstance": "

Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document.

", - "GetDocument": "

Gets the contents of the specified SSM document.

", + "GetDocument": "

Gets the contents of the specified Systems Manager document.

", "GetInventory": "

Query inventory information.

", "GetInventorySchema": "

Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type.

", "GetMaintenanceWindow": "

Retrieves a Maintenance Window.

", @@ -71,7 +71,7 @@ "ListComplianceItems": "

For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter.

", "ListComplianceSummaries": "

Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify.

", "ListDocumentVersions": "

List all versions for a document.

", - "ListDocuments": "

Describes one or more of your SSM documents.

", + "ListDocuments": "

Describes one or more of your Systems Manager documents.

", "ListInventoryEntries": "

A list of inventory items returned by the request.

", "ListResourceComplianceSummaries": "

Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.

", "ListResourceDataSync": "

Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed.

The number of sync configurations might be too large to return using a single call to ListResourceDataSync. You can limit the number of sync configurations returned by using the MaxResults parameter. To determine whether there are more sync configurations to list, check the value of NextToken in the output. If there are more sync configurations to list, you can request them by specifying the NextToken returned in the call to the parameter of a subsequent call.

", @@ -1440,11 +1440,11 @@ "DocumentARN": { "base": null, "refs": { - "DescribeDocumentRequest$Name": "

The name of the SSM document.

", - "DocumentDescription$Name": "

The name of the SSM document.

", - "DocumentIdentifier$Name": "

The name of the SSM document.

", - "GetDocumentRequest$Name": "

The name of the SSM document.

", - "GetDocumentResult$Name": "

The name of the SSM document.

", + "DescribeDocumentRequest$Name": "

The name of the Systems Manager document.

", + "DocumentDescription$Name": "

The name of the Systems Manager document.

", + "DocumentIdentifier$Name": "

The name of the Systems Manager document.

", + "GetDocumentRequest$Name": "

The name of the Systems Manager document.

", + "GetDocumentResult$Name": "

The name of the Systems Manager document.

", "SendCommandRequest$DocumentName": "

Required. The name of the Systems Manager document to execute. This can be a public document or a custom document.

", "StartAutomationExecutionRequest$DocumentName": "

The name of the Automation document to use for this execution.

" } @@ -1458,7 +1458,7 @@ "base": null, "refs": { "CreateDocumentRequest$Content": "

A valid JSON string.

", - "GetDocumentResult$Content": "

The contents of the SSM document.

", + "GetDocumentResult$Content": "

The contents of the Systems Manager document.

", "InstanceAssociation$Content": "

The content of the association document for the instance(s).

", "UpdateDocumentRequest$Content": "

The content in a document that you want to update.

" } @@ -1470,10 +1470,10 @@ } }, "DocumentDescription": { - "base": "

Describes an SSM document.

", + "base": "

Describes a Systems Manager document.

", "refs": { "CreateDocumentResult$DocumentDescription": "

Information about the Systems Manager document.

", - "DescribeDocumentResult$Document": "

Information about the SSM document.

", + "DescribeDocumentResult$Document": "

Information about the Systems Manager document.

", "UpdateDocumentResult$DocumentDescription": "

A description of the document that was updated.

" } }, @@ -1518,7 +1518,7 @@ } }, "DocumentIdentifier": { - "base": "

Describes the name of an SSM document.

", + "base": "

Describes the name of a Systems Manager document.

", "refs": { "DocumentIdentifierList$member": null } @@ -1526,19 +1526,49 @@ "DocumentIdentifierList": { "base": null, "refs": { - "ListDocumentsResult$DocumentIdentifiers": "

The names of the SSM documents.

" + "ListDocumentsResult$DocumentIdentifiers": "

The names of the Systems Manager documents.

" + } + }, + "DocumentKeyValuesFilter": { + "base": "

One or more filters. Use a filter to return a more specific list of documents.

For keys, you can specify one or more tags that have been applied to a document.

Other valid values include Owner, Name, PlatformTypes, and DocumentType.

Note that only one Owner can be specified in a request. For example: Key=Owner,Values=Self.

If you use Name as a key, you can use a name prefix to return a list of documents. For example, in the AWS CLI, to return a list of all documents that begin with Te, run the following command:

aws ssm list-documents --filters Key=Name,Values=Te

If you specify more than two keys, only documents that are identified by all the tags are returned in the results. If you specify more than two values for a key, documents that are identified by any of the values are returned in the results.

To specify a custom key and value pair, use the format Key=tag:[tagName],Values=[valueName].

For example, if you created a Key called region and are using the AWS CLI to call the list-documents command:

aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self

", + "refs": { + "DocumentKeyValuesFilterList$member": null + } + }, + "DocumentKeyValuesFilterKey": { + "base": null, + "refs": { + "DocumentKeyValuesFilter$Key": "

The name of the filter key.

" + } + }, + "DocumentKeyValuesFilterList": { + "base": null, + "refs": { + "ListDocumentsRequest$Filters": "

One or more filters. Use a filter to return a more specific list of results.

" + } + }, + "DocumentKeyValuesFilterValue": { + "base": null, + "refs": { + "DocumentKeyValuesFilterValues$member": null + } + }, + "DocumentKeyValuesFilterValues": { + "base": null, + "refs": { + "DocumentKeyValuesFilter$Values": "

The value for the filter key.

" } }, "DocumentLimitExceeded": { - "base": "

You can have at most 200 active SSM documents.

", + "base": "

You can have at most 200 active Systems Manager documents.

", "refs": { } }, "DocumentName": { "base": null, "refs": { - "Association$Name": "

The name of the SSM document.

", - "AssociationDescription$Name": "

The name of the SSM document.

", + "Association$Name": "

The name of the Systems Manager document.

", + "AssociationDescription$Name": "

The name of the Systems Manager document.

", "AssociationVersionInfo$Name": "

The name specified when the association was created.

", "AutomationExecution$DocumentName": "

The name of the Automation document used during the execution.

", "AutomationExecutionMetadata$DocumentName": "

The name of the Automation document used during execution.

", @@ -1549,7 +1579,7 @@ "CreateDocumentRequest$Name": "

A name for the Systems Manager document.

", "DeleteAssociationRequest$Name": "

The name of the Systems Manager document.

", "DeleteDocumentRequest$Name": "

The name of the document.

", - "DescribeAssociationRequest$Name": "

The name of the SSM document.

", + "DescribeAssociationRequest$Name": "

The name of the Systems Manager document.

", "DescribeDocumentPermissionRequest$Name": "

The name of the document for which you are the owner.

", "DocumentDefaultVersionDescription$Name": "

The name of the document.

", "DocumentVersionInfo$Name": "

The document name.

", @@ -1558,7 +1588,7 @@ "ListDocumentVersionsRequest$Name": "

The name of the document about which you want version information.

", "ModifyDocumentPermissionRequest$Name": "

The name of the document that you want to share.

", "UpdateAssociationRequest$Name": "

The name of the association document.

", - "UpdateAssociationStatusRequest$Name": "

The name of the SSM document.

", + "UpdateAssociationStatusRequest$Name": "

The name of the Systems Manager document.

", "UpdateDocumentDefaultVersionRequest$Name": "

The name of a custom document that you want to set as the default version.

", "UpdateDocumentRequest$Name": "

The name of the document that you want to update.

" } @@ -1566,8 +1596,8 @@ "DocumentOwner": { "base": null, "refs": { - "DocumentDescription$Owner": "

The AWS user account of the person who created the document.

", - "DocumentIdentifier$Owner": "

The AWS user account of the person who created the document.

" + "DocumentDescription$Owner": "

The AWS user account that created the document.

", + "DocumentIdentifier$Owner": "

The AWS user account that created the document.

" } }, "DocumentParameter": { @@ -1628,13 +1658,13 @@ "DocumentSha1": { "base": null, "refs": { - "DocumentDescription$Sha1": "

The SHA1 hash of the document, which you can use for verification purposes.

" + "DocumentDescription$Sha1": "

The SHA1 hash of the document, which you can use for verification.

" } }, "DocumentStatus": { "base": null, "refs": { - "DocumentDescription$Status": "

The status of the SSM document.

" + "DocumentDescription$Status": "

The status of the Systems Manager document.

" } }, "DocumentType": { @@ -1651,7 +1681,7 @@ "refs": { "Association$DocumentVersion": "

The version of the document used in the association.

", "AssociationDescription$DocumentVersion": "

The document version.

", - "AssociationVersionInfo$DocumentVersion": "

The version of an SSM document used when the association version was created.

", + "AssociationVersionInfo$DocumentVersion": "

The version of a Systems Manager document used when the association version was created.

", "AutomationExecution$DocumentVersion": "

The version of the document to use during execution.

", "AutomationExecutionMetadata$DocumentVersion": "

The document version used during the execution.

", "CreateAssociationBatchRequestEntry$DocumentVersion": "

The document version.

", @@ -2366,7 +2396,7 @@ } }, "InvalidParameters": { - "base": "

You must specify values for all required parameters in the SSM document. You can only supply values to parameters defined in the SSM document.

", + "base": "

You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.

", "refs": { } }, @@ -2386,7 +2416,7 @@ } }, "InvalidResourceType": { - "base": "

The resource type is not valid. If you are attempting to tag an instance, the instance must be a registered, managed instance.

", + "base": "

The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.

", "refs": { } }, @@ -3170,9 +3200,9 @@ "base": null, "refs": { "GetMaintenanceWindowExecutionTaskResult$TaskArn": "

The ARN of the executed task.

", - "GetMaintenanceWindowTaskResult$TaskArn": "

The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the SSM Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value is the state machine ARN.

", + "GetMaintenanceWindowTaskResult$TaskArn": "

The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value is the state machine ARN.

", "MaintenanceWindowExecutionTaskIdentity$TaskArn": "

The ARN of the executed task.

", - "MaintenanceWindowTask$TaskArn": "

The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, TaskArn is the SSM document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state machine ARN.

", + "MaintenanceWindowTask$TaskArn": "

The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, TaskArn is the Systems Manager document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state machine ARN.

", "RegisterTaskWithMaintenanceWindowRequest$TaskArn": "

The ARN of the task to execute

", "UpdateMaintenanceWindowTaskRequest$TaskArn": "

The task ARN to modify.

", "UpdateMaintenanceWindowTaskResult$TaskArn": "

The updated task ARN value.

" @@ -4067,7 +4097,7 @@ "PlatformTypeList": { "base": null, "refs": { - "DocumentDescription$PlatformTypes": "

The list of OS platforms compatible with this SSM document.

", + "DocumentDescription$PlatformTypes": "

The list of OS platforms compatible with this Systems Manager document.

", "DocumentIdentifier$PlatformTypes": "

The operating system platform.

" } }, @@ -4629,7 +4659,7 @@ } }, "Tag": { - "base": "

Metadata that you assign to your managed instances. Tags enable you to categorize your managed instances in different ways, for example, by purpose, owner, or environment.

", + "base": "

Metadata that you assign to your AWS resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. In Systems Manager, you can apply tags to documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines.

", "refs": { "TagList$member": null } @@ -4645,6 +4675,8 @@ "base": null, "refs": { "AddTagsToResourceRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", + "DocumentDescription$Tags": "

The tags, or metadata, that have been applied to the document.

", + "DocumentIdentifier$Tags": "

The tags, or metadata, that have been applied to the document.

", "ListTagsForResourceResult$TagList": "

A list of tags.

" } }, diff --git a/vendor/github.com/aws/aws-sdk-go/models/endpoints/endpoints.json b/vendor/github.com/aws/aws-sdk-go/models/endpoints/endpoints.json index 37dda7a4..68137a1c 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/endpoints/endpoints.json +++ b/vendor/github.com/aws/aws-sdk-go/models/endpoints/endpoints.json @@ -793,6 +793,7 @@ "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, + "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ca-central-1" : { }, "eu-central-1" : { }, @@ -806,7 +807,9 @@ }, "glue" : { "endpoints" : { - "us-east-1" : { } + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } } }, "greengrass" : { @@ -814,6 +817,7 @@ "protocols" : [ "https" ] }, "endpoints" : { + "ap-northeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, "us-east-1" : { }, @@ -1299,6 +1303,7 @@ }, "snowball" : { "endpoints" : { + "ap-northeast-1" : { }, "ap-south-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, @@ -1569,6 +1574,7 @@ "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-west-1" : { }, + "eu-west-2" : { }, "us-east-1" : { }, "us-west-2" : { } } diff --git a/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/generate.go b/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/generate.go index 49914661..4f9e103f 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/generate.go +++ b/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/generate.go @@ -98,7 +98,6 @@ var extraImports = []string{ "github.com/aws/aws-sdk-go/private/protocol", "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", "github.com/aws/aws-sdk-go/private/util", - "github.com/stretchr/testify/assert", } func addImports(code string) string { @@ -140,18 +139,25 @@ func Test{{ .OpName }}(t *testing.T) { // build request {{ .TestCase.TestSuite.API.ProtocolPackage }}.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } {{ if ne .TestCase.InputTest.Body "" }}// assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } {{ .BodyAssertions }}{{ end }} {{ if ne .TestCase.InputTest.URI "" }}// assert URL awstesting.AssertURL(t, "https://test{{ .TestCase.InputTest.URI }}", r.URL.String()){{ end }} // assert headers -{{ range $k, $v := .TestCase.InputTest.Headers }}assert.Equal(t, "{{ $v }}", r.Header.Get("{{ $k }}")) -{{ end }} + {{ range $k, $v := .TestCase.InputTest.Headers -}} + if e, a := "{{ $v }}", r.Header.Get("{{ $k }}"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + {{ end }} } `)) @@ -184,25 +190,40 @@ func (t tplInputTestCaseData) BodyAssertions() string { fmt.Fprintf(code, "awstesting.AssertXML(t, `%s`, util.Trim(string(body)), %s{})", expectedBody, t.TestCase.Given.InputRef.ShapeName) } else { - fmt.Fprintf(code, "assert.Equal(t, `%s`, util.Trim(string(body)))", - expectedBody) + code.WriteString(fmtAssertEqual(fmt.Sprintf("%q", expectedBody), "util.Trim(string(body))")) } case "json", "jsonrpc", "rest-json": if strings.HasPrefix(expectedBody, "{") { fmt.Fprintf(code, "awstesting.AssertJSON(t, `%s`, util.Trim(string(body)))", expectedBody) } else { - fmt.Fprintf(code, "assert.Equal(t, `%s`, util.Trim(string(body)))", - expectedBody) + code.WriteString(fmtAssertEqual(fmt.Sprintf("%q", expectedBody), "util.Trim(string(body))")) } default: - fmt.Fprintf(code, "assert.Equal(t, `%s`, util.Trim(string(body)))", - expectedBody) + code.WriteString(fmtAssertEqual(expectedBody, "util.Trim(string(body))")) } return code.String() } +func fmtAssertEqual(e, a string) string { + const format = `if e, a := %s, %s; e != a { + t.Errorf("expect %%v, got %%v", e, a) + } + ` + + return fmt.Sprintf(format, e, a) +} + +func fmtAssertNil(v string) string { + const format = `if e := %s; e != nil { + t.Errorf("expect nil, got %%v", e) + } + ` + + return fmt.Sprintf(format, v) +} + var tplOutputTestCase = template.Must(template.New("outputcase").Parse(` func Test{{ .OpName }}(t *testing.T) { svc := New{{ .TestCase.TestSuite.API.StructName }}(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) @@ -218,10 +239,14 @@ func Test{{ .OpName }}(t *testing.T) { // unmarshal response {{ .TestCase.TestSuite.API.ProtocolPackage }}.UnmarshalMeta(req) {{ .TestCase.TestSuite.API.ProtocolPackage }}.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used + if out == nil { + t.Errorf("expect not to be nil") + } {{ .Assertions }} } `)) @@ -454,16 +479,28 @@ func GenerateAssertions(out interface{}, shape *api.Shape, prefix string) string default: switch shape.Type { case "timestamp": - return fmt.Sprintf("assert.Equal(t, time.Unix(%#v, 0).UTC().String(), %s.String())\n", out, prefix) + return fmtAssertEqual( + fmt.Sprintf("time.Unix(%#v, 0).UTC().String()", out), + fmt.Sprintf("%s.String()", prefix), + ) case "blob": - return fmt.Sprintf("assert.Equal(t, %#v, string(%s))\n", out, prefix) + return fmtAssertEqual( + fmt.Sprintf("%#v", out), + fmt.Sprintf("string(%s)", prefix), + ) case "integer", "long": - return fmt.Sprintf("assert.Equal(t, int64(%#v), *%s)\n", out, prefix) + return fmtAssertEqual( + fmt.Sprintf("int64(%#v)", out), + fmt.Sprintf("*%s", prefix), + ) default: if !reflect.ValueOf(out).IsValid() { - return fmt.Sprintf("assert.Nil(t, %s)\n", prefix) + return fmtAssertNil(prefix) } - return fmt.Sprintf("assert.Equal(t, %#v, *%s)\n", out, prefix) + return fmtAssertEqual( + fmt.Sprintf("%#v", out), + fmt.Sprintf("*%s", prefix), + ) } } } diff --git a/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/input/query.json b/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/input/query.json index a79766d9..ce9519ab 100644 --- a/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/input/query.json +++ b/vendor/github.com/aws/aws-sdk-go/models/protocol_tests/input/query.json @@ -553,6 +553,50 @@ } ] }, + { + "description": "Base64 encoded Blobs nested", + "metadata": { + "protocol": "query", + "apiVersion": "2014-01-01" + }, + "shapes": { + "InputShape": { + "type": "structure", + "members": { + "BlobArgs": { + "shape": "BlobsType" + } + } + }, + "BlobsType": { + "type": "list", + "member": { + "shape": "BlobType" + }, + "flattened": true + }, + "BlobType": { + "type": "blob" + } + }, + "cases": [ + { + "given": { + "input": { + "shape": "InputShape" + }, + "name": "OperationName" + }, + "params": { + "BlobArgs": ["foo"] + }, + "serialized": { + "uri": "/", + "body": "Action=OperationName&Version=2014-01-01&BlobArgs.1=Zm9v" + } + } + ] + }, { "description": "Timestamp values", "metadata": { diff --git a/vendor/github.com/aws/aws-sdk-go/private/model/api/customization_passes.go b/vendor/github.com/aws/aws-sdk-go/private/model/api/customization_passes.go index 7b17e950..a17e22b6 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/model/api/customization_passes.go +++ b/vendor/github.com/aws/aws-sdk-go/private/model/api/customization_passes.go @@ -53,12 +53,20 @@ func (a *API) customizationPasses() { func s3Customizations(a *API) { var strExpires *Shape + var keepContentMD5Ref = map[string]struct{}{ + "PutObjectInput": struct{}{}, + "UploadPartInput": struct{}{}, + } + for name, s := range a.Shapes { - // Remove ContentMD5 members - if _, ok := s.MemberRefs["ContentMD5"]; ok { - delete(s.MemberRefs, "ContentMD5") + // Remove ContentMD5 members unless specified otherwise. + if _, keep := keepContentMD5Ref[name]; !keep { + if _, have := s.MemberRefs["ContentMD5"]; have { + delete(s.MemberRefs, "ContentMD5") + } } + // Generate getter methods for API operation fields used by customizations. for _, refName := range []string{"Bucket", "SSECustomerKey", "CopySourceSSECustomerKey"} { if ref, ok := s.MemberRefs[refName]; ok { ref.GenerateGetter = true diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/build_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/build_test.go index 17711164..93fe83fd 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/build_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/build_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/ec2query" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1476,10 +1475,14 @@ func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Bar=val2&Foo=val1&Version=2014-01-01`, util.Trim(string(body))) @@ -1502,10 +1505,14 @@ func TestInputService2ProtocolTestStructureWithLocationNameAndQueryNameAppliedTo // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&BarLocationName=val2&Foo=val1&Version=2014-01-01&yuckQueryName=val3`, util.Trim(string(body))) @@ -1528,10 +1535,14 @@ func TestInputService3ProtocolTestNestedStructureMembersCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Struct.Scalar=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -1556,10 +1567,14 @@ func TestInputService4ProtocolTestListTypesCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArg.1=foo&ListArg.2=bar&ListArg.3=baz&Version=2014-01-01`, util.Trim(string(body))) @@ -1584,10 +1599,14 @@ func TestInputService5ProtocolTestListWithLocationNameAppliedToMemberCase1(t *te // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListMemberName.1=a&ListMemberName.2=b&ListMemberName.3=c&Version=2014-01-01`, util.Trim(string(body))) @@ -1612,10 +1631,14 @@ func TestInputService6ProtocolTestListWithLocationNameAndQueryNameCase1(t *testi // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListQueryName.1=a&ListQueryName.2=b&ListQueryName.3=c&Version=2014-01-01`, util.Trim(string(body))) @@ -1636,10 +1659,14 @@ func TestInputService7ProtocolTestBase64EncodedBlobsCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&BlobArg=Zm9v&Version=2014-01-01`, util.Trim(string(body))) @@ -1660,10 +1687,14 @@ func TestInputService8ProtocolTestTimestampValuesCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&TimeArg=2015-01-25T08%3A00%3A00Z&Version=2014-01-01`, util.Trim(string(body))) @@ -1684,10 +1715,14 @@ func TestInputService9ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Token=abc123&Version=2014-01-01`, util.Trim(string(body))) @@ -1706,10 +1741,14 @@ func TestInputService9ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { // build request ec2query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Token=00000000-0000-4000-8000-000000000000&Version=2014-01-01`, util.Trim(string(body))) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal_test.go index e87d00b1..a63b3298 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/ec2query" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1417,18 +1416,38 @@ func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, "myname", *out.Str) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1444,11 +1463,17 @@ func TestOutputService2ProtocolTestBlobCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "value", string(out.Blob)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "value", string(out.Blob); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1464,12 +1489,20 @@ func TestOutputService3ProtocolTestListsCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1485,12 +1518,20 @@ func TestOutputService4ProtocolTestListWithCustomMemberNameCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1506,12 +1547,20 @@ func TestOutputService5ProtocolTestFlattenedListCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1527,12 +1576,20 @@ func TestOutputService6ProtocolTestNormalMapCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"].Foo) - assert.Equal(t, "bar", *out.Map["qux"].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1548,12 +1605,20 @@ func TestOutputService7ProtocolTestFlattenedMapCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1569,12 +1634,20 @@ func TestOutputService8ProtocolTestNamedMapCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1590,10 +1663,16 @@ func TestOutputService9ProtocolTestEmptyStringCase1(t *testing.T) { // unmarshal response ec2query.UnmarshalMeta(req) ec2query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "", *out.Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "", *out.Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/build_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/build_test.go index 3cd4036b..e1bd3cd7 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/build_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/build_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1654,10 +1653,14 @@ func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Name":"myname"}`, util.Trim(string(body))) @@ -1665,8 +1668,12 @@ func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1680,10 +1687,14 @@ func TestInputService2ProtocolTestTimestampValuesCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"TimeArg":1422172800}`, util.Trim(string(body))) @@ -1691,8 +1702,12 @@ func TestInputService2ProtocolTestTimestampValuesCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1706,10 +1721,14 @@ func TestInputService3ProtocolTestBase64EncodedBlobsCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"BlobArg":"Zm9v"}`, util.Trim(string(body))) @@ -1717,8 +1736,12 @@ func TestInputService3ProtocolTestBase64EncodedBlobsCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1735,10 +1758,14 @@ func TestInputService3ProtocolTestBase64EncodedBlobsCase2(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"BlobMap":{"key1":"Zm9v","key2":"YmFy"}}`, util.Trim(string(body))) @@ -1746,8 +1773,12 @@ func TestInputService3ProtocolTestBase64EncodedBlobsCase2(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1764,10 +1795,14 @@ func TestInputService4ProtocolTestNestedBlobsCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"ListParam":["Zm9v","YmFy"]}`, util.Trim(string(body))) @@ -1775,8 +1810,12 @@ func TestInputService4ProtocolTestNestedBlobsCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1792,10 +1831,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"NoRecurse":"foo"}}`, util.Trim(string(body))) @@ -1803,8 +1846,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1822,10 +1869,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase2(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}`, util.Trim(string(body))) @@ -1833,8 +1884,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase2(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1856,10 +1911,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase3(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}}}`, util.Trim(string(body))) @@ -1867,8 +1926,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase3(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1891,10 +1954,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase4(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"NoRecurse":"bar"}]}}`, util.Trim(string(body))) @@ -1902,8 +1969,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase4(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1928,10 +1999,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase5(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"RecursiveStruct":{"NoRecurse":"bar"}}]}}`, util.Trim(string(body))) @@ -1939,8 +2014,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase5(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1963,10 +2042,14 @@ func TestInputService5ProtocolTestRecursiveShapesCase6(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveMap":{"foo":{"NoRecurse":"foo"},"bar":{"NoRecurse":"bar"}}}}`, util.Trim(string(body))) @@ -1974,8 +2057,12 @@ func TestInputService5ProtocolTestRecursiveShapesCase6(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -1989,10 +2076,14 @@ func TestInputService6ProtocolTestEmptyMapsCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Map":{}}`, util.Trim(string(body))) @@ -2000,8 +2091,12 @@ func TestInputService6ProtocolTestEmptyMapsCase1(t *testing.T) { awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type")) - assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target")) + if e, a := "application/x-amz-json-1.1", r.Header.Get("Content-Type"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -2015,10 +2110,14 @@ func TestInputService7ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Token":"abc123"}`, util.Trim(string(body))) @@ -2037,10 +2136,14 @@ func TestInputService7ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { // build request jsonrpc.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Token":"00000000-0000-4000-8000-000000000000"}`, util.Trim(string(body))) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_test.go index 3190f212..e3eb8e58 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1109,18 +1108,38 @@ func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, "myname", *out.Str) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1136,12 +1155,20 @@ func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "hi!", string(out.BlobMember)) - assert.Equal(t, "there!", string(out.StructMember.Foo)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "hi!", string(out.BlobMember); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "there!", string(out.StructMember.Foo); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1157,12 +1184,20 @@ func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.String()) - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeMember.String()) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeMember.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1178,12 +1213,20 @@ func TestOutputService4ProtocolTestListsCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.ListMember[0]) - assert.Equal(t, "b", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "b", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1199,16 +1242,32 @@ func TestOutputService4ProtocolTestListsCase2(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.ListMember[0]) - assert.Nil(t, out.ListMember[1]) - assert.Nil(t, out.ListMemberMap[1]) - assert.Nil(t, out.ListMemberMap[2]) - assert.Nil(t, out.ListMemberStruct[1]) - assert.Nil(t, out.ListMemberStruct[2]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e := out.ListMember[1]; e != nil { + t.Errorf("expect nil, got %v", e) + } + if e := out.ListMemberMap[1]; e != nil { + t.Errorf("expect nil, got %v", e) + } + if e := out.ListMemberMap[2]; e != nil { + t.Errorf("expect nil, got %v", e) + } + if e := out.ListMemberStruct[1]; e != nil { + t.Errorf("expect nil, got %v", e) + } + if e := out.ListMemberStruct[2]; e != nil { + t.Errorf("expect nil, got %v", e) + } } @@ -1224,14 +1283,26 @@ func TestOutputService5ProtocolTestMapsCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, int64(1), *out.MapMember["a"][0]) - assert.Equal(t, int64(2), *out.MapMember["a"][1]) - assert.Equal(t, int64(3), *out.MapMember["b"][0]) - assert.Equal(t, int64(4), *out.MapMember["b"][1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := int64(1), *out.MapMember["a"][0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(2), *out.MapMember["a"][1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(3), *out.MapMember["b"][0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(4), *out.MapMember["b"][1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1247,9 +1318,13 @@ func TestOutputService6ProtocolTestIgnoresExtraDataCase1(t *testing.T) { // unmarshal response jsonrpc.UnmarshalMeta(req) jsonrpc.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used + if out == nil { + t.Errorf("expect not to be nil") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build_test.go index f66dcc59..f9990923 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/query" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1976,12 +1975,12 @@ func (c *InputService11ProtocolTest) InputService11TestCaseOperation1WithContext type InputService11TestShapeInputService11TestCaseOperation1Input struct { _ struct{} `type:"structure"` - TimeArg *time.Time `type:"timestamp" timestampFormat:"iso8601"` + BlobArgs [][]byte `type:"list" flattened:"true"` } -// SetTimeArg sets the TimeArg field's value. -func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetTimeArg(v time.Time) *InputService11TestShapeInputService11TestCaseOperation1Input { - s.TimeArg = &v +// SetBlobArgs sets the BlobArgs field's value. +func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetBlobArgs(v [][]byte) *InputService11TestShapeInputService11TestCaseOperation1Input { + s.BlobArgs = v return s } @@ -2072,14 +2071,14 @@ const opInputService12TestCaseOperation1 = "OperationName" // if err == nil { // resp is now filled // fmt.Println(resp) // } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation1Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation1Output) { +func (c *InputService12ProtocolTest) InputService12TestCaseOperation1Request(input *InputService12TestShapeInputService12TestCaseOperation1Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation1Output) { op := &request.Operation{ Name: opInputService12TestCaseOperation1, HTTPPath: "/", } if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} + input = &InputService12TestShapeInputService12TestCaseOperation1Input{} } output = &InputService12TestShapeInputService12TestCaseOperation1Output{} @@ -2097,7 +2096,7 @@ func (c *InputService12ProtocolTest) InputService12TestCaseOperation1Request(inp // // See the AWS API reference guide for 's // API operation InputService12TestCaseOperation1 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation1(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) { +func (c *InputService12ProtocolTest) InputService12TestCaseOperation1(input *InputService12TestShapeInputService12TestCaseOperation1Input) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) { req, out := c.InputService12TestCaseOperation1Request(input) return out, req.Send() } @@ -2111,435 +2110,29 @@ func (c *InputService12ProtocolTest) InputService12TestCaseOperation1(input *Inp // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation1WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) { +func (c *InputService12ProtocolTest) InputService12TestCaseOperation1WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation1Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) { req, out := c.InputService12TestCaseOperation1Request(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opInputService12TestCaseOperation2 = "OperationName" +type InputService12TestShapeInputService12TestCaseOperation1Input struct { + _ struct{} `type:"structure"` -// InputService12TestCaseOperation2Request generates a "aws/request.Request" representing the -// client's request for the InputService12TestCaseOperation2 operation. The "output" return -// value will be populated with the request's response once the request complets -// successfuly. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See InputService12TestCaseOperation2 for more information on using the InputService12TestCaseOperation2 -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the InputService12TestCaseOperation2Request method. -// req, resp := client.InputService12TestCaseOperation2Request(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation2Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation2Output) { - op := &request.Operation{ - Name: opInputService12TestCaseOperation2, - HTTPPath: "/", - } - - if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} - } - - output = &InputService12TestShapeInputService12TestCaseOperation2Output{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) - req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - return + TimeArg *time.Time `type:"timestamp" timestampFormat:"iso8601"` } -// InputService12TestCaseOperation2 API operation for . -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for 's -// API operation InputService12TestCaseOperation2 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation2(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation2Output, error) { - req, out := c.InputService12TestCaseOperation2Request(input) - return out, req.Send() -} - -// InputService12TestCaseOperation2WithContext is the same as InputService12TestCaseOperation2 with the addition of -// the ability to pass a context and additional request options. -// -// See InputService12TestCaseOperation2 for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation2WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation2Output, error) { - req, out := c.InputService12TestCaseOperation2Request(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opInputService12TestCaseOperation3 = "OperationName" - -// InputService12TestCaseOperation3Request generates a "aws/request.Request" representing the -// client's request for the InputService12TestCaseOperation3 operation. The "output" return -// value will be populated with the request's response once the request complets -// successfuly. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See InputService12TestCaseOperation3 for more information on using the InputService12TestCaseOperation3 -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the InputService12TestCaseOperation3Request method. -// req, resp := client.InputService12TestCaseOperation3Request(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation3Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation3Output) { - op := &request.Operation{ - Name: opInputService12TestCaseOperation3, - HTTPPath: "/", - } - - if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} - } - - output = &InputService12TestShapeInputService12TestCaseOperation3Output{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) - req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - return -} - -// InputService12TestCaseOperation3 API operation for . -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for 's -// API operation InputService12TestCaseOperation3 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation3(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation3Output, error) { - req, out := c.InputService12TestCaseOperation3Request(input) - return out, req.Send() -} - -// InputService12TestCaseOperation3WithContext is the same as InputService12TestCaseOperation3 with the addition of -// the ability to pass a context and additional request options. -// -// See InputService12TestCaseOperation3 for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation3WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation3Output, error) { - req, out := c.InputService12TestCaseOperation3Request(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opInputService12TestCaseOperation4 = "OperationName" - -// InputService12TestCaseOperation4Request generates a "aws/request.Request" representing the -// client's request for the InputService12TestCaseOperation4 operation. The "output" return -// value will be populated with the request's response once the request complets -// successfuly. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See InputService12TestCaseOperation4 for more information on using the InputService12TestCaseOperation4 -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the InputService12TestCaseOperation4Request method. -// req, resp := client.InputService12TestCaseOperation4Request(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation4Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation4Output) { - op := &request.Operation{ - Name: opInputService12TestCaseOperation4, - HTTPPath: "/", - } - - if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} - } - - output = &InputService12TestShapeInputService12TestCaseOperation4Output{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) - req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - return -} - -// InputService12TestCaseOperation4 API operation for . -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for 's -// API operation InputService12TestCaseOperation4 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation4(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation4Output, error) { - req, out := c.InputService12TestCaseOperation4Request(input) - return out, req.Send() -} - -// InputService12TestCaseOperation4WithContext is the same as InputService12TestCaseOperation4 with the addition of -// the ability to pass a context and additional request options. -// -// See InputService12TestCaseOperation4 for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation4WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation4Output, error) { - req, out := c.InputService12TestCaseOperation4Request(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opInputService12TestCaseOperation5 = "OperationName" - -// InputService12TestCaseOperation5Request generates a "aws/request.Request" representing the -// client's request for the InputService12TestCaseOperation5 operation. The "output" return -// value will be populated with the request's response once the request complets -// successfuly. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See InputService12TestCaseOperation5 for more information on using the InputService12TestCaseOperation5 -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the InputService12TestCaseOperation5Request method. -// req, resp := client.InputService12TestCaseOperation5Request(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation5Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation5Output) { - op := &request.Operation{ - Name: opInputService12TestCaseOperation5, - HTTPPath: "/", - } - - if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} - } - - output = &InputService12TestShapeInputService12TestCaseOperation5Output{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) - req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - return -} - -// InputService12TestCaseOperation5 API operation for . -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for 's -// API operation InputService12TestCaseOperation5 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation5(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation5Output, error) { - req, out := c.InputService12TestCaseOperation5Request(input) - return out, req.Send() -} - -// InputService12TestCaseOperation5WithContext is the same as InputService12TestCaseOperation5 with the addition of -// the ability to pass a context and additional request options. -// -// See InputService12TestCaseOperation5 for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation5WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation5Output, error) { - req, out := c.InputService12TestCaseOperation5Request(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opInputService12TestCaseOperation6 = "OperationName" - -// InputService12TestCaseOperation6Request generates a "aws/request.Request" representing the -// client's request for the InputService12TestCaseOperation6 operation. The "output" return -// value will be populated with the request's response once the request complets -// successfuly. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See InputService12TestCaseOperation6 for more information on using the InputService12TestCaseOperation6 -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the InputService12TestCaseOperation6Request method. -// req, resp := client.InputService12TestCaseOperation6Request(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -func (c *InputService12ProtocolTest) InputService12TestCaseOperation6Request(input *InputService12TestShapeInputService12TestCaseOperation6Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation6Output) { - op := &request.Operation{ - Name: opInputService12TestCaseOperation6, - HTTPPath: "/", - } - - if input == nil { - input = &InputService12TestShapeInputService12TestCaseOperation6Input{} - } - - output = &InputService12TestShapeInputService12TestCaseOperation6Output{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) - req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - return -} - -// InputService12TestCaseOperation6 API operation for . -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for 's -// API operation InputService12TestCaseOperation6 for usage and error information. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation6(input *InputService12TestShapeInputService12TestCaseOperation6Input) (*InputService12TestShapeInputService12TestCaseOperation6Output, error) { - req, out := c.InputService12TestCaseOperation6Request(input) - return out, req.Send() -} - -// InputService12TestCaseOperation6WithContext is the same as InputService12TestCaseOperation6 with the addition of -// the ability to pass a context and additional request options. -// -// See InputService12TestCaseOperation6 for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *InputService12ProtocolTest) InputService12TestCaseOperation6WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation6Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation6Output, error) { - req, out := c.InputService12TestCaseOperation6Request(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() +// SetTimeArg sets the TimeArg field's value. +func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetTimeArg(v time.Time) *InputService12TestShapeInputService12TestCaseOperation1Input { + s.TimeArg = &v + return s } type InputService12TestShapeInputService12TestCaseOperation1Output struct { _ struct{} `type:"structure"` } -type InputService12TestShapeInputService12TestCaseOperation2Output struct { - _ struct{} `type:"structure"` -} - -type InputService12TestShapeInputService12TestCaseOperation3Output struct { - _ struct{} `type:"structure"` -} - -type InputService12TestShapeInputService12TestCaseOperation4Output struct { - _ struct{} `type:"structure"` -} - -type InputService12TestShapeInputService12TestCaseOperation5Output struct { - _ struct{} `type:"structure"` -} - -type InputService12TestShapeInputService12TestCaseOperation6Input struct { - _ struct{} `type:"structure"` - - RecursiveStruct *InputService12TestShapeRecursiveStructType `type:"structure"` -} - -// SetRecursiveStruct sets the RecursiveStruct field's value. -func (s *InputService12TestShapeInputService12TestCaseOperation6Input) SetRecursiveStruct(v *InputService12TestShapeRecursiveStructType) *InputService12TestShapeInputService12TestCaseOperation6Input { - s.RecursiveStruct = v - return s -} - -type InputService12TestShapeInputService12TestCaseOperation6Output struct { - _ struct{} `type:"structure"` -} - -type InputService12TestShapeRecursiveStructType struct { - _ struct{} `type:"structure"` - - NoRecurse *string `type:"string"` - - RecursiveList []*InputService12TestShapeRecursiveStructType `type:"list"` - - RecursiveMap map[string]*InputService12TestShapeRecursiveStructType `type:"map"` - - RecursiveStruct *InputService12TestShapeRecursiveStructType `type:"structure"` -} - -// SetNoRecurse sets the NoRecurse field's value. -func (s *InputService12TestShapeRecursiveStructType) SetNoRecurse(v string) *InputService12TestShapeRecursiveStructType { - s.NoRecurse = &v - return s -} - -// SetRecursiveList sets the RecursiveList field's value. -func (s *InputService12TestShapeRecursiveStructType) SetRecursiveList(v []*InputService12TestShapeRecursiveStructType) *InputService12TestShapeRecursiveStructType { - s.RecursiveList = v - return s -} - -// SetRecursiveMap sets the RecursiveMap field's value. -func (s *InputService12TestShapeRecursiveStructType) SetRecursiveMap(v map[string]*InputService12TestShapeRecursiveStructType) *InputService12TestShapeRecursiveStructType { - s.RecursiveMap = v - return s -} - -// SetRecursiveStruct sets the RecursiveStruct field's value. -func (s *InputService12TestShapeRecursiveStructType) SetRecursiveStruct(v *InputService12TestShapeRecursiveStructType) *InputService12TestShapeRecursiveStructType { - s.RecursiveStruct = v - return s -} - // InputService13ProtocolTest provides the API operation methods for making requests to // . See this package's package overview docs // for details on the service. @@ -2623,15 +2216,14 @@ const opInputService13TestCaseOperation1 = "OperationName" // if err == nil { // resp is now filled // fmt.Println(resp) // } -func (c *InputService13ProtocolTest) InputService13TestCaseOperation1Request(input *InputService13TestShapeInputService13TestCaseOperation2Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation1Output) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation1Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation1Output) { op := &request.Operation{ - Name: opInputService13TestCaseOperation1, - HTTPMethod: "POST", - HTTPPath: "/", + Name: opInputService13TestCaseOperation1, + HTTPPath: "/", } if input == nil { - input = &InputService13TestShapeInputService13TestCaseOperation2Input{} + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} } output = &InputService13TestShapeInputService13TestCaseOperation1Output{} @@ -2649,7 +2241,7 @@ func (c *InputService13ProtocolTest) InputService13TestCaseOperation1Request(inp // // See the AWS API reference guide for 's // API operation InputService13TestCaseOperation1 for usage and error information. -func (c *InputService13ProtocolTest) InputService13TestCaseOperation1(input *InputService13TestShapeInputService13TestCaseOperation2Input) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation1(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) { req, out := c.InputService13TestCaseOperation1Request(input) return out, req.Send() } @@ -2663,7 +2255,7 @@ func (c *InputService13ProtocolTest) InputService13TestCaseOperation1(input *Inp // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *InputService13ProtocolTest) InputService13TestCaseOperation1WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation2Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation1WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) { req, out := c.InputService13TestCaseOperation1Request(input) req.SetContext(ctx) req.ApplyOptions(opts...) @@ -2694,15 +2286,14 @@ const opInputService13TestCaseOperation2 = "OperationName" // if err == nil { // resp is now filled // fmt.Println(resp) // } -func (c *InputService13ProtocolTest) InputService13TestCaseOperation2Request(input *InputService13TestShapeInputService13TestCaseOperation2Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation2Output) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation2Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation2Output) { op := &request.Operation{ - Name: opInputService13TestCaseOperation2, - HTTPMethod: "POST", - HTTPPath: "/", + Name: opInputService13TestCaseOperation2, + HTTPPath: "/", } if input == nil { - input = &InputService13TestShapeInputService13TestCaseOperation2Input{} + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} } output = &InputService13TestShapeInputService13TestCaseOperation2Output{} @@ -2720,7 +2311,7 @@ func (c *InputService13ProtocolTest) InputService13TestCaseOperation2Request(inp // // See the AWS API reference guide for 's // API operation InputService13TestCaseOperation2 for usage and error information. -func (c *InputService13ProtocolTest) InputService13TestCaseOperation2(input *InputService13TestShapeInputService13TestCaseOperation2Input) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation2(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) { req, out := c.InputService13TestCaseOperation2Request(input) return out, req.Send() } @@ -2734,30 +2325,583 @@ func (c *InputService13ProtocolTest) InputService13TestCaseOperation2(input *Inp // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *InputService13ProtocolTest) InputService13TestCaseOperation2WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation2Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) { +func (c *InputService13ProtocolTest) InputService13TestCaseOperation2WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) { req, out := c.InputService13TestCaseOperation2Request(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } +const opInputService13TestCaseOperation3 = "OperationName" + +// InputService13TestCaseOperation3Request generates a "aws/request.Request" representing the +// client's request for the InputService13TestCaseOperation3 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService13TestCaseOperation3 for more information on using the InputService13TestCaseOperation3 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService13TestCaseOperation3Request method. +// req, resp := client.InputService13TestCaseOperation3Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService13ProtocolTest) InputService13TestCaseOperation3Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation3Output) { + op := &request.Operation{ + Name: opInputService13TestCaseOperation3, + HTTPPath: "/", + } + + if input == nil { + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} + } + + output = &InputService13TestShapeInputService13TestCaseOperation3Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService13TestCaseOperation3 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService13TestCaseOperation3 for usage and error information. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation3(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation3Output, error) { + req, out := c.InputService13TestCaseOperation3Request(input) + return out, req.Send() +} + +// InputService13TestCaseOperation3WithContext is the same as InputService13TestCaseOperation3 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService13TestCaseOperation3 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation3WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation3Output, error) { + req, out := c.InputService13TestCaseOperation3Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opInputService13TestCaseOperation4 = "OperationName" + +// InputService13TestCaseOperation4Request generates a "aws/request.Request" representing the +// client's request for the InputService13TestCaseOperation4 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService13TestCaseOperation4 for more information on using the InputService13TestCaseOperation4 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService13TestCaseOperation4Request method. +// req, resp := client.InputService13TestCaseOperation4Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService13ProtocolTest) InputService13TestCaseOperation4Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation4Output) { + op := &request.Operation{ + Name: opInputService13TestCaseOperation4, + HTTPPath: "/", + } + + if input == nil { + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} + } + + output = &InputService13TestShapeInputService13TestCaseOperation4Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService13TestCaseOperation4 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService13TestCaseOperation4 for usage and error information. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation4(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation4Output, error) { + req, out := c.InputService13TestCaseOperation4Request(input) + return out, req.Send() +} + +// InputService13TestCaseOperation4WithContext is the same as InputService13TestCaseOperation4 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService13TestCaseOperation4 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation4WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation4Output, error) { + req, out := c.InputService13TestCaseOperation4Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opInputService13TestCaseOperation5 = "OperationName" + +// InputService13TestCaseOperation5Request generates a "aws/request.Request" representing the +// client's request for the InputService13TestCaseOperation5 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService13TestCaseOperation5 for more information on using the InputService13TestCaseOperation5 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService13TestCaseOperation5Request method. +// req, resp := client.InputService13TestCaseOperation5Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService13ProtocolTest) InputService13TestCaseOperation5Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation5Output) { + op := &request.Operation{ + Name: opInputService13TestCaseOperation5, + HTTPPath: "/", + } + + if input == nil { + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} + } + + output = &InputService13TestShapeInputService13TestCaseOperation5Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService13TestCaseOperation5 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService13TestCaseOperation5 for usage and error information. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation5(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation5Output, error) { + req, out := c.InputService13TestCaseOperation5Request(input) + return out, req.Send() +} + +// InputService13TestCaseOperation5WithContext is the same as InputService13TestCaseOperation5 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService13TestCaseOperation5 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation5WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation5Output, error) { + req, out := c.InputService13TestCaseOperation5Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opInputService13TestCaseOperation6 = "OperationName" + +// InputService13TestCaseOperation6Request generates a "aws/request.Request" representing the +// client's request for the InputService13TestCaseOperation6 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService13TestCaseOperation6 for more information on using the InputService13TestCaseOperation6 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService13TestCaseOperation6Request method. +// req, resp := client.InputService13TestCaseOperation6Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService13ProtocolTest) InputService13TestCaseOperation6Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation6Output) { + op := &request.Operation{ + Name: opInputService13TestCaseOperation6, + HTTPPath: "/", + } + + if input == nil { + input = &InputService13TestShapeInputService13TestCaseOperation6Input{} + } + + output = &InputService13TestShapeInputService13TestCaseOperation6Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService13TestCaseOperation6 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService13TestCaseOperation6 for usage and error information. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation6(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation6Output, error) { + req, out := c.InputService13TestCaseOperation6Request(input) + return out, req.Send() +} + +// InputService13TestCaseOperation6WithContext is the same as InputService13TestCaseOperation6 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService13TestCaseOperation6 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService13ProtocolTest) InputService13TestCaseOperation6WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation6Output, error) { + req, out := c.InputService13TestCaseOperation6Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + type InputService13TestShapeInputService13TestCaseOperation1Output struct { _ struct{} `type:"structure"` } -type InputService13TestShapeInputService13TestCaseOperation2Input struct { +type InputService13TestShapeInputService13TestCaseOperation2Output struct { + _ struct{} `type:"structure"` +} + +type InputService13TestShapeInputService13TestCaseOperation3Output struct { + _ struct{} `type:"structure"` +} + +type InputService13TestShapeInputService13TestCaseOperation4Output struct { + _ struct{} `type:"structure"` +} + +type InputService13TestShapeInputService13TestCaseOperation5Output struct { + _ struct{} `type:"structure"` +} + +type InputService13TestShapeInputService13TestCaseOperation6Input struct { + _ struct{} `type:"structure"` + + RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"` +} + +// SetRecursiveStruct sets the RecursiveStruct field's value. +func (s *InputService13TestShapeInputService13TestCaseOperation6Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation6Input { + s.RecursiveStruct = v + return s +} + +type InputService13TestShapeInputService13TestCaseOperation6Output struct { + _ struct{} `type:"structure"` +} + +type InputService13TestShapeRecursiveStructType struct { + _ struct{} `type:"structure"` + + NoRecurse *string `type:"string"` + + RecursiveList []*InputService13TestShapeRecursiveStructType `type:"list"` + + RecursiveMap map[string]*InputService13TestShapeRecursiveStructType `type:"map"` + + RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"` +} + +// SetNoRecurse sets the NoRecurse field's value. +func (s *InputService13TestShapeRecursiveStructType) SetNoRecurse(v string) *InputService13TestShapeRecursiveStructType { + s.NoRecurse = &v + return s +} + +// SetRecursiveList sets the RecursiveList field's value. +func (s *InputService13TestShapeRecursiveStructType) SetRecursiveList(v []*InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType { + s.RecursiveList = v + return s +} + +// SetRecursiveMap sets the RecursiveMap field's value. +func (s *InputService13TestShapeRecursiveStructType) SetRecursiveMap(v map[string]*InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType { + s.RecursiveMap = v + return s +} + +// SetRecursiveStruct sets the RecursiveStruct field's value. +func (s *InputService13TestShapeRecursiveStructType) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType { + s.RecursiveStruct = v + return s +} + +// InputService14ProtocolTest provides the API operation methods for making requests to +// . See this package's package overview docs +// for details on the service. +// +// InputService14ProtocolTest methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type InputService14ProtocolTest struct { + *client.Client +} + +// New creates a new instance of the InputService14ProtocolTest client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a InputService14ProtocolTest client from just a session. +// svc := inputservice14protocoltest.New(mySession) +// +// // Create a InputService14ProtocolTest client with additional configuration +// svc := inputservice14protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func NewInputService14ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService14ProtocolTest { + c := p.ClientConfig("inputservice14protocoltest", cfgs...) + return newInputService14ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newInputService14ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *InputService14ProtocolTest { + svc := &InputService14ProtocolTest{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: "inputservice14protocoltest", + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2014-01-01", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(query.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler) + + return svc +} + +// newRequest creates a new request for a InputService14ProtocolTest operation and runs any +// custom request initialization. +func (c *InputService14ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + return req +} + +const opInputService14TestCaseOperation1 = "OperationName" + +// InputService14TestCaseOperation1Request generates a "aws/request.Request" representing the +// client's request for the InputService14TestCaseOperation1 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService14TestCaseOperation1 for more information on using the InputService14TestCaseOperation1 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService14TestCaseOperation1Request method. +// req, resp := client.InputService14TestCaseOperation1Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService14ProtocolTest) InputService14TestCaseOperation1Request(input *InputService14TestShapeInputService14TestCaseOperation2Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation1Output) { + op := &request.Operation{ + Name: opInputService14TestCaseOperation1, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &InputService14TestShapeInputService14TestCaseOperation2Input{} + } + + output = &InputService14TestShapeInputService14TestCaseOperation1Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService14TestCaseOperation1 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService14TestCaseOperation1 for usage and error information. +func (c *InputService14ProtocolTest) InputService14TestCaseOperation1(input *InputService14TestShapeInputService14TestCaseOperation2Input) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) { + req, out := c.InputService14TestCaseOperation1Request(input) + return out, req.Send() +} + +// InputService14TestCaseOperation1WithContext is the same as InputService14TestCaseOperation1 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService14TestCaseOperation1 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService14ProtocolTest) InputService14TestCaseOperation1WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation2Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) { + req, out := c.InputService14TestCaseOperation1Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opInputService14TestCaseOperation2 = "OperationName" + +// InputService14TestCaseOperation2Request generates a "aws/request.Request" representing the +// client's request for the InputService14TestCaseOperation2 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See InputService14TestCaseOperation2 for more information on using the InputService14TestCaseOperation2 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the InputService14TestCaseOperation2Request method. +// req, resp := client.InputService14TestCaseOperation2Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *InputService14ProtocolTest) InputService14TestCaseOperation2Request(input *InputService14TestShapeInputService14TestCaseOperation2Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation2Output) { + op := &request.Operation{ + Name: opInputService14TestCaseOperation2, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &InputService14TestShapeInputService14TestCaseOperation2Input{} + } + + output = &InputService14TestShapeInputService14TestCaseOperation2Output{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// InputService14TestCaseOperation2 API operation for . +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for 's +// API operation InputService14TestCaseOperation2 for usage and error information. +func (c *InputService14ProtocolTest) InputService14TestCaseOperation2(input *InputService14TestShapeInputService14TestCaseOperation2Input) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) { + req, out := c.InputService14TestCaseOperation2Request(input) + return out, req.Send() +} + +// InputService14TestCaseOperation2WithContext is the same as InputService14TestCaseOperation2 with the addition of +// the ability to pass a context and additional request options. +// +// See InputService14TestCaseOperation2 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *InputService14ProtocolTest) InputService14TestCaseOperation2WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation2Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) { + req, out := c.InputService14TestCaseOperation2Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +type InputService14TestShapeInputService14TestCaseOperation1Output struct { + _ struct{} `type:"structure"` +} + +type InputService14TestShapeInputService14TestCaseOperation2Input struct { _ struct{} `type:"structure"` Token *string `type:"string" idempotencyToken:"true"` } // SetToken sets the Token field's value. -func (s *InputService13TestShapeInputService13TestCaseOperation2Input) SetToken(v string) *InputService13TestShapeInputService13TestCaseOperation2Input { +func (s *InputService14TestShapeInputService14TestCaseOperation2Input) SetToken(v string) *InputService14TestShapeInputService14TestCaseOperation2Input { s.Token = &v return s } -type InputService13TestShapeInputService13TestCaseOperation2Output struct { +type InputService14TestShapeInputService14TestCaseOperation2Output struct { _ struct{} `type:"structure"` } @@ -2776,10 +2920,14 @@ func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Bar=val2&Foo=val1&Version=2014-01-01`, util.Trim(string(body))) @@ -2800,10 +2948,14 @@ func TestInputService1ProtocolTestScalarMembersCase2(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Baz=true&Version=2014-01-01`, util.Trim(string(body))) @@ -2824,10 +2976,14 @@ func TestInputService1ProtocolTestScalarMembersCase3(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Baz=false&Version=2014-01-01`, util.Trim(string(body))) @@ -2850,10 +3006,14 @@ func TestInputService2ProtocolTestNestedStructureMembersCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&StructArg.ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -2878,10 +3038,14 @@ func TestInputService3ProtocolTestListTypesCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArg.member.1=foo&ListArg.member.2=bar&ListArg.member.3=baz&Version=2014-01-01`, util.Trim(string(body))) @@ -2902,10 +3066,14 @@ func TestInputService3ProtocolTestListTypesCase2(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArg=&Version=2014-01-01`, util.Trim(string(body))) @@ -2931,10 +3099,14 @@ func TestInputService4ProtocolTestFlattenedListCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArg.1=a&ListArg.2=b&ListArg.3=c&ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -2957,10 +3129,14 @@ func TestInputService4ProtocolTestFlattenedListCase2(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Foo.1=a&Version=2014-01-01`, util.Trim(string(body))) @@ -2984,10 +3160,14 @@ func TestInputService5ProtocolTestSerializeFlattenedMapTypeCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&MapArg.1.key=key1&MapArg.1.value=val1&MapArg.2.key=key2&MapArg.2.value=val2&Version=2014-01-01`, util.Trim(string(body))) @@ -3012,10 +3192,14 @@ func TestInputService6ProtocolTestNonFlattenedListWithLocationNameCase1(t *testi // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArg.item.1=a&ListArg.item.2=b&ListArg.item.3=c&Version=2014-01-01`, util.Trim(string(body))) @@ -3041,10 +3225,14 @@ func TestInputService7ProtocolTestFlattenedListWithLocationNameCase1(t *testing. // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&ListArgLocation.1=a&ListArgLocation.2=b&ListArgLocation.3=c&ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -3068,10 +3256,14 @@ func TestInputService8ProtocolTestSerializeMapTypeCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&MapArg.entry.1.key=key1&MapArg.entry.1.value=val1&MapArg.entry.2.key=key2&MapArg.entry.2.value=val2&Version=2014-01-01`, util.Trim(string(body))) @@ -3095,10 +3287,14 @@ func TestInputService9ProtocolTestSerializeMapTypeWithLocationNameCase1(t *testi // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&MapArg.entry.1.TheKey=key1&MapArg.entry.1.TheValue=val1&MapArg.entry.2.TheKey=key2&MapArg.entry.2.TheValue=val2&Version=2014-01-01`, util.Trim(string(body))) @@ -3119,10 +3315,14 @@ func TestInputService10ProtocolTestBase64EncodedBlobsCase1(t *testing.T) { // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&BlobArg=Zm9v&Version=2014-01-01`, util.Trim(string(body))) @@ -3133,20 +3333,54 @@ func TestInputService10ProtocolTestBase64EncodedBlobsCase1(t *testing.T) { } -func TestInputService11ProtocolTestTimestampValuesCase1(t *testing.T) { +func TestInputService11ProtocolTestBase64EncodedBlobsNestedCase1(t *testing.T) { svc := NewInputService11ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) input := &InputService11TestShapeInputService11TestCaseOperation1Input{ - TimeArg: aws.Time(time.Unix(1422172800, 0)), + BlobArgs: [][]byte{ + []byte("foo"), + }, } req, _ := svc.InputService11TestCaseOperation1Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } + body, _ := ioutil.ReadAll(r.Body) + awstesting.AssertQuery(t, `Action=OperationName&BlobArgs.1=Zm9v&Version=2014-01-01`, util.Trim(string(body))) + + // assert URL + awstesting.AssertURL(t, "https://test/", r.URL.String()) + + // assert headers + +} + +func TestInputService12ProtocolTestTimestampValuesCase1(t *testing.T) { + svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService12TestShapeInputService12TestCaseOperation1Input{ + TimeArg: aws.Time(time.Unix(1422172800, 0)), + } + req, _ := svc.InputService12TestCaseOperation1Request(input) + r := req.HTTPRequest + + // build request + query.Build(req) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } + + // assert body + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&TimeArg=2015-01-25T08%3A00%3A00Z&Version=2014-01-01`, util.Trim(string(body))) @@ -3157,22 +3391,26 @@ func TestInputService11ProtocolTestTimestampValuesCase1(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase1(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase1(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ NoRecurse: aws.String("foo"), }, } - req, _ := svc.InputService12TestCaseOperation1Request(input) + req, _ := svc.InputService13TestCaseOperation1Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -3183,24 +3421,28 @@ func TestInputService12ProtocolTestRecursiveShapesCase1(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase2(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase2(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ NoRecurse: aws.String("foo"), }, }, } - req, _ := svc.InputService12TestCaseOperation2Request(input) + req, _ := svc.InputService13TestCaseOperation2Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -3211,28 +3453,32 @@ func TestInputService12ProtocolTestRecursiveShapesCase2(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase3(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase3(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ NoRecurse: aws.String("foo"), }, }, }, }, } - req, _ := svc.InputService12TestCaseOperation3Request(input) + req, _ := svc.InputService13TestCaseOperation3Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveStruct.RecursiveStruct.RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body))) @@ -3243,11 +3489,11 @@ func TestInputService12ProtocolTestRecursiveShapesCase3(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase4(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveList: []*InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase4(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveList: []*InputService13TestShapeRecursiveStructType{ { NoRecurse: aws.String("foo"), }, @@ -3257,15 +3503,19 @@ func TestInputService12ProtocolTestRecursiveShapesCase4(t *testing.T) { }, }, } - req, _ := svc.InputService12TestCaseOperation4Request(input) + req, _ := svc.InputService13TestCaseOperation4Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body))) @@ -3276,31 +3526,35 @@ func TestInputService12ProtocolTestRecursiveShapesCase4(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase5(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveList: []*InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase5(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveList: []*InputService13TestShapeRecursiveStructType{ { NoRecurse: aws.String("foo"), }, { - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ NoRecurse: aws.String("bar"), }, }, }, }, } - req, _ := svc.InputService12TestCaseOperation5Request(input) + req, _ := svc.InputService13TestCaseOperation5Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.RecursiveStruct.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body))) @@ -3311,11 +3565,11 @@ func TestInputService12ProtocolTestRecursiveShapesCase5(t *testing.T) { } -func TestInputService12ProtocolTestRecursiveShapesCase6(t *testing.T) { - svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService12TestShapeInputService12TestCaseOperation6Input{ - RecursiveStruct: &InputService12TestShapeRecursiveStructType{ - RecursiveMap: map[string]*InputService12TestShapeRecursiveStructType{ +func TestInputService13ProtocolTestRecursiveShapesCase6(t *testing.T) { + svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService13TestShapeInputService13TestCaseOperation6Input{ + RecursiveStruct: &InputService13TestShapeRecursiveStructType{ + RecursiveMap: map[string]*InputService13TestShapeRecursiveStructType{ "bar": { NoRecurse: aws.String("bar"), }, @@ -3325,15 +3579,19 @@ func TestInputService12ProtocolTestRecursiveShapesCase6(t *testing.T) { }, }, } - req, _ := svc.InputService12TestCaseOperation6Request(input) + req, _ := svc.InputService13TestCaseOperation6Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveMap.entry.1.key=foo&RecursiveStruct.RecursiveMap.entry.1.value.NoRecurse=foo&RecursiveStruct.RecursiveMap.entry.2.key=bar&RecursiveStruct.RecursiveMap.entry.2.value.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body))) @@ -3344,20 +3602,24 @@ func TestInputService12ProtocolTestRecursiveShapesCase6(t *testing.T) { } -func TestInputService13ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { - svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService13TestShapeInputService13TestCaseOperation2Input{ +func TestInputService14ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { + svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService14TestShapeInputService14TestCaseOperation2Input{ Token: aws.String("abc123"), } - req, _ := svc.InputService13TestCaseOperation1Request(input) + req, _ := svc.InputService14TestCaseOperation1Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Token=abc123&Version=2014-01-01`, util.Trim(string(body))) @@ -3368,18 +3630,22 @@ func TestInputService13ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { } -func TestInputService13ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { - svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) - input := &InputService13TestShapeInputService13TestCaseOperation2Input{} - req, _ := svc.InputService13TestCaseOperation2Request(input) +func TestInputService14ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { + svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")}) + input := &InputService14TestShapeInputService14TestCaseOperation2Input{} + req, _ := svc.InputService14TestCaseOperation2Request(input) r := req.HTTPRequest // build request query.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertQuery(t, `Action=OperationName&Token=00000000-0000-4000-8000-000000000000&Version=2014-01-01`, util.Trim(string(body))) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go index 524ca952..5ce9cba3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go @@ -121,6 +121,10 @@ func (q *queryParser) parseList(v url.Values, value reflect.Value, prefix string return nil } + if _, ok := value.Interface().([]byte); ok { + return q.parseScalar(v, value, prefix, tag) + } + // check for unflattened list member if !q.isEC2 && tag.Get("flattened") == "" { if listName := tag.Get("locationNameList"); listName == "" { diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_test.go index 4f6ff3ee..c13bc06e 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/query" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -2347,19 +2346,41 @@ func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, "myname", *out.Str) - assert.Equal(t, time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String()) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2375,11 +2396,17 @@ func TestOutputService2ProtocolTestNotAllMembersInResponseCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "myname", *out.Str) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2395,11 +2422,17 @@ func TestOutputService3ProtocolTestBlobCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "value", string(out.Blob)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "value", string(out.Blob); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2415,12 +2448,20 @@ func TestOutputService4ProtocolTestListsCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2436,12 +2477,20 @@ func TestOutputService5ProtocolTestListWithCustomMemberNameCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2457,12 +2506,20 @@ func TestOutputService6ProtocolTestFlattenedListCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2478,11 +2535,17 @@ func TestOutputService7ProtocolTestFlattenedSingleElementListCase1(t *testing.T) // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2498,16 +2561,32 @@ func TestOutputService8ProtocolTestListOfStructuresCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "firstbar", *out.List[0].Bar) - assert.Equal(t, "firstbaz", *out.List[0].Baz) - assert.Equal(t, "firstfoo", *out.List[0].Foo) - assert.Equal(t, "secondbar", *out.List[1].Bar) - assert.Equal(t, "secondbaz", *out.List[1].Baz) - assert.Equal(t, "secondfoo", *out.List[1].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "firstbar", *out.List[0].Bar; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "firstbaz", *out.List[0].Baz; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "firstfoo", *out.List[0].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondbar", *out.List[1].Bar; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondbaz", *out.List[1].Baz; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondfoo", *out.List[1].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2523,16 +2602,32 @@ func TestOutputService9ProtocolTestFlattenedListOfStructuresCase1(t *testing.T) // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "firstbar", *out.List[0].Bar) - assert.Equal(t, "firstbaz", *out.List[0].Baz) - assert.Equal(t, "firstfoo", *out.List[0].Foo) - assert.Equal(t, "secondbar", *out.List[1].Bar) - assert.Equal(t, "secondbaz", *out.List[1].Baz) - assert.Equal(t, "secondfoo", *out.List[1].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "firstbar", *out.List[0].Bar; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "firstbaz", *out.List[0].Baz; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "firstfoo", *out.List[0].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondbar", *out.List[1].Bar; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondbaz", *out.List[1].Baz; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "secondfoo", *out.List[1].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2548,12 +2643,20 @@ func TestOutputService10ProtocolTestFlattenedListWithLocationNameCase1(t *testin // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.List[0]) - assert.Equal(t, "b", *out.List[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.List[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "b", *out.List[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2569,12 +2672,20 @@ func TestOutputService11ProtocolTestNormalMapCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"].Foo) - assert.Equal(t, "bar", *out.Map["qux"].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2590,12 +2701,20 @@ func TestOutputService12ProtocolTestFlattenedMapCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2611,11 +2730,17 @@ func TestOutputService13ProtocolTestFlattenedMapInShapeDefinitionCase1(t *testin // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2631,12 +2756,20 @@ func TestOutputService14ProtocolTestNamedMapCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2652,10 +2785,16 @@ func TestOutputService15ProtocolTestEmptyStringCase1(t *testing.T) { // unmarshal response query.UnmarshalMeta(req) query.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "", *out.Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "", *out.Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_bench_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_bench_test.go index 31e1d6c0..7a8a8c2c 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_bench_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_bench_test.go @@ -3,232 +3,131 @@ package restjson_test import ( - "bytes" - "encoding/json" + "net/http" + "net/http/httptest" + "os" "testing" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/awstesting" - "github.com/aws/aws-sdk-go/private/protocol/rest" + "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/private/protocol/restjson" "github.com/aws/aws-sdk-go/service/elastictranscoder" ) -func BenchmarkRESTJSONBuild_Complex_elastictranscoderCreateJobInput(b *testing.B) { - svc := awstesting.NewClient() - svc.ServiceName = "elastictranscoder" - svc.APIVersion = "2012-09-25" +var ( + elastictranscoderSvc *elastictranscoder.ElasticTranscoder +) + +func TestMain(m *testing.M) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + })) + + sess := session.Must(session.NewSession(&aws.Config{ + Credentials: credentials.NewStaticCredentials("Key", "Secret", "Token"), + Endpoint: aws.String(server.URL), + S3ForcePathStyle: aws.Bool(true), + DisableSSL: aws.Bool(true), + Region: aws.String(endpoints.UsWest2RegionID), + })) + elastictranscoderSvc = elastictranscoder.New(sess) + + c := m.Run() + server.Close() + os.Exit(c) +} + +func BenchmarkRESTJSONBuild_Complex_ETCCreateJob(b *testing.B) { + params := elastictranscoderCreateJobInput() + + benchRESTJSONBuild(b, func() *request.Request { + req, _ := elastictranscoderSvc.CreateJobRequest(params) + return req + }) +} + +func BenchmarkRESTJSONBuild_Simple_ETCListJobsByPipeline(b *testing.B) { + params := elastictranscoderListJobsByPipeline() + + benchRESTJSONBuild(b, func() *request.Request { + req, _ := elastictranscoderSvc.ListJobsByPipelineRequest(params) + return req + }) +} + +func BenchmarkRESTJSONRequest_Complex_CFCreateJob(b *testing.B) { + benchRESTJSONRequest(b, func() *request.Request { + req, _ := elastictranscoderSvc.CreateJobRequest(elastictranscoderCreateJobInput()) + return req + }) +} + +func BenchmarkRESTJSONRequest_Simple_ETCListJobsByPipeline(b *testing.B) { + benchRESTJSONRequest(b, func() *request.Request { + req, _ := elastictranscoderSvc.ListJobsByPipelineRequest(elastictranscoderListJobsByPipeline()) + return req + }) +} + +func benchRESTJSONBuild(b *testing.B, reqFn func() *request.Request) { + b.ResetTimer() for i := 0; i < b.N; i++ { - r := svc.NewRequest(&request.Operation{Name: "CreateJobInput"}, restjsonBuildParms, nil) - restjson.Build(r) - if r.Error != nil { - b.Fatal("Unexpected error", r.Error) + req := reqFn() + restjson.Build(req) + if req.Error != nil { + b.Fatal("Unexpected error", req.Error) } } } -func BenchmarkRESTBuild_Complex_elastictranscoderCreateJobInput(b *testing.B) { - svc := awstesting.NewClient() - svc.ServiceName = "elastictranscoder" - svc.APIVersion = "2012-09-25" +func benchRESTJSONRequest(b *testing.B, reqFn func() *request.Request) { + b.ResetTimer() for i := 0; i < b.N; i++ { - r := svc.NewRequest(&request.Operation{Name: "CreateJobInput"}, restjsonBuildParms, nil) - rest.Build(r) - if r.Error != nil { - b.Fatal("Unexpected error", r.Error) - } - } -} - -func BenchmarkEncodingJSONMarshal_Complex_elastictranscoderCreateJobInput(b *testing.B) { - params := restjsonBuildParms - - for i := 0; i < b.N; i++ { - buf := &bytes.Buffer{} - encoder := json.NewEncoder(buf) - if err := encoder.Encode(params); err != nil { + err := reqFn().Send() + if err != nil { b.Fatal("Unexpected error", err) } } } -func BenchmarkRESTJSONBuild_Simple_elastictranscoderListJobsByPipeline(b *testing.B) { - svc := awstesting.NewClient() - svc.ServiceName = "elastictranscoder" - svc.APIVersion = "2012-09-25" - - params := &elastictranscoder.ListJobsByPipelineInput{ +func elastictranscoderListJobsByPipeline() *elastictranscoder.ListJobsByPipelineInput { + return &elastictranscoder.ListJobsByPipelineInput{ PipelineId: aws.String("Id"), // Required Ascending: aws.String("Ascending"), PageToken: aws.String("Id"), } - - for i := 0; i < b.N; i++ { - r := svc.NewRequest(&request.Operation{Name: "ListJobsByPipeline"}, params, nil) - restjson.Build(r) - if r.Error != nil { - b.Fatal("Unexpected error", r.Error) - } - } } -func BenchmarkRESTBuild_Simple_elastictranscoderListJobsByPipeline(b *testing.B) { - svc := awstesting.NewClient() - svc.ServiceName = "elastictranscoder" - svc.APIVersion = "2012-09-25" - - params := &elastictranscoder.ListJobsByPipelineInput{ +func elastictranscoderCreateJobInput() *elastictranscoder.CreateJobInput { + return &elastictranscoder.CreateJobInput{ + Input: &elastictranscoder.JobInput{ // Required + AspectRatio: aws.String("AspectRatio"), + Container: aws.String("JobContainer"), + DetectedProperties: &elastictranscoder.DetectedProperties{ + DurationMillis: aws.Int64(1), + FileSize: aws.Int64(1), + FrameRate: aws.String("FloatString"), + Height: aws.Int64(1), + Width: aws.Int64(1), + }, + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + FrameRate: aws.String("FrameRate"), + Interlaced: aws.String("Interlaced"), + Key: aws.String("Key"), + Resolution: aws.String("Resolution"), + }, PipelineId: aws.String("Id"), // Required - Ascending: aws.String("Ascending"), - PageToken: aws.String("Id"), - } - - for i := 0; i < b.N; i++ { - r := svc.NewRequest(&request.Operation{Name: "ListJobsByPipeline"}, params, nil) - rest.Build(r) - if r.Error != nil { - b.Fatal("Unexpected error", r.Error) - } - } -} - -func BenchmarkEncodingJSONMarshal_Simple_elastictranscoderListJobsByPipeline(b *testing.B) { - params := &elastictranscoder.ListJobsByPipelineInput{ - PipelineId: aws.String("Id"), // Required - Ascending: aws.String("Ascending"), - PageToken: aws.String("Id"), - } - - for i := 0; i < b.N; i++ { - buf := &bytes.Buffer{} - encoder := json.NewEncoder(buf) - if err := encoder.Encode(params); err != nil { - b.Fatal("Unexpected error", err) - } - } -} - -var restjsonBuildParms = &elastictranscoder.CreateJobInput{ - Input: &elastictranscoder.JobInput{ // Required - AspectRatio: aws.String("AspectRatio"), - Container: aws.String("JobContainer"), - DetectedProperties: &elastictranscoder.DetectedProperties{ - DurationMillis: aws.Int64(1), - FileSize: aws.Int64(1), - FrameRate: aws.String("FloatString"), - Height: aws.Int64(1), - Width: aws.Int64(1), - }, - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - FrameRate: aws.String("FrameRate"), - Interlaced: aws.String("Interlaced"), - Key: aws.String("Key"), - Resolution: aws.String("Resolution"), - }, - PipelineId: aws.String("Id"), // Required - Output: &elastictranscoder.CreateJobOutput{ - AlbumArt: &elastictranscoder.JobAlbumArt{ - Artwork: []*elastictranscoder.Artwork{ - { // Required - AlbumArtFormat: aws.String("JpgOrPng"), - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - InputKey: aws.String("WatermarkKey"), - MaxHeight: aws.String("DigitsOrAuto"), - MaxWidth: aws.String("DigitsOrAuto"), - PaddingPolicy: aws.String("PaddingPolicy"), - SizingPolicy: aws.String("SizingPolicy"), - }, - // More values... - }, - MergePolicy: aws.String("MergePolicy"), - }, - Captions: &elastictranscoder.Captions{ - CaptionFormats: []*elastictranscoder.CaptionFormat{ - { // Required - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - Format: aws.String("CaptionFormatFormat"), - Pattern: aws.String("CaptionFormatPattern"), - }, - // More values... - }, - CaptionSources: []*elastictranscoder.CaptionSource{ - { // Required - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - Key: aws.String("Key"), - Label: aws.String("Name"), - Language: aws.String("Key"), - TimeOffset: aws.String("TimeOffset"), - }, - // More values... - }, - MergePolicy: aws.String("CaptionMergePolicy"), - }, - Composition: []*elastictranscoder.Clip{ - { // Required - TimeSpan: &elastictranscoder.TimeSpan{ - Duration: aws.String("Time"), - StartTime: aws.String("Time"), - }, - }, - // More values... - }, - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - Key: aws.String("Key"), - PresetId: aws.String("Id"), - Rotate: aws.String("Rotate"), - SegmentDuration: aws.String("FloatString"), - ThumbnailEncryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - ThumbnailPattern: aws.String("ThumbnailPattern"), - Watermarks: []*elastictranscoder.JobWatermark{ - { // Required - Encryption: &elastictranscoder.Encryption{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - Mode: aws.String("EncryptionMode"), - }, - InputKey: aws.String("WatermarkKey"), - PresetWatermarkId: aws.String("PresetWatermarkId"), - }, - // More values... - }, - }, - OutputKeyPrefix: aws.String("Key"), - Outputs: []*elastictranscoder.CreateJobOutput{ - { // Required + Output: &elastictranscoder.CreateJobOutput{ AlbumArt: &elastictranscoder.JobAlbumArt{ Artwork: []*elastictranscoder.Artwork{ { // Required @@ -320,37 +219,132 @@ var restjsonBuildParms = &elastictranscoder.CreateJobInput{ // More values... }, }, - // More values... - }, - Playlists: []*elastictranscoder.CreateJobPlaylist{ - { // Required - Format: aws.String("PlaylistFormat"), - HlsContentProtection: &elastictranscoder.HlsContentProtection{ - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("Base64EncodedString"), - KeyMd5: aws.String("Base64EncodedString"), - KeyStoragePolicy: aws.String("KeyStoragePolicy"), - LicenseAcquisitionUrl: aws.String("ZeroTo512String"), - Method: aws.String("HlsContentProtectionMethod"), - }, - Name: aws.String("Filename"), - OutputKeys: []*string{ - aws.String("Key"), // Required - // More values... - }, - PlayReadyDrm: &elastictranscoder.PlayReadyDrm{ - Format: aws.String("PlayReadyDrmFormatString"), - InitializationVector: aws.String("ZeroTo255String"), - Key: aws.String("NonEmptyBase64EncodedString"), - KeyId: aws.String("KeyIdGuid"), - KeyMd5: aws.String("NonEmptyBase64EncodedString"), - LicenseAcquisitionUrl: aws.String("OneTo512String"), + OutputKeyPrefix: aws.String("Key"), + Outputs: []*elastictranscoder.CreateJobOutput{ + { // Required + AlbumArt: &elastictranscoder.JobAlbumArt{ + Artwork: []*elastictranscoder.Artwork{ + { // Required + AlbumArtFormat: aws.String("JpgOrPng"), + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + InputKey: aws.String("WatermarkKey"), + MaxHeight: aws.String("DigitsOrAuto"), + MaxWidth: aws.String("DigitsOrAuto"), + PaddingPolicy: aws.String("PaddingPolicy"), + SizingPolicy: aws.String("SizingPolicy"), + }, + // More values... + }, + MergePolicy: aws.String("MergePolicy"), + }, + Captions: &elastictranscoder.Captions{ + CaptionFormats: []*elastictranscoder.CaptionFormat{ + { // Required + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + Format: aws.String("CaptionFormatFormat"), + Pattern: aws.String("CaptionFormatPattern"), + }, + // More values... + }, + CaptionSources: []*elastictranscoder.CaptionSource{ + { // Required + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + Key: aws.String("Key"), + Label: aws.String("Name"), + Language: aws.String("Key"), + TimeOffset: aws.String("TimeOffset"), + }, + // More values... + }, + MergePolicy: aws.String("CaptionMergePolicy"), + }, + Composition: []*elastictranscoder.Clip{ + { // Required + TimeSpan: &elastictranscoder.TimeSpan{ + Duration: aws.String("Time"), + StartTime: aws.String("Time"), + }, + }, + // More values... + }, + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + Key: aws.String("Key"), + PresetId: aws.String("Id"), + Rotate: aws.String("Rotate"), + SegmentDuration: aws.String("FloatString"), + ThumbnailEncryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + ThumbnailPattern: aws.String("ThumbnailPattern"), + Watermarks: []*elastictranscoder.JobWatermark{ + { // Required + Encryption: &elastictranscoder.Encryption{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + Mode: aws.String("EncryptionMode"), + }, + InputKey: aws.String("WatermarkKey"), + PresetWatermarkId: aws.String("PresetWatermarkId"), + }, + // More values... + }, }, + // More values... }, - // More values... - }, - UserMetadata: map[string]*string{ - "Key": aws.String("String"), // Required - // More values... - }, + Playlists: []*elastictranscoder.CreateJobPlaylist{ + { // Required + Format: aws.String("PlaylistFormat"), + HlsContentProtection: &elastictranscoder.HlsContentProtection{ + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("Base64EncodedString"), + KeyMd5: aws.String("Base64EncodedString"), + KeyStoragePolicy: aws.String("KeyStoragePolicy"), + LicenseAcquisitionUrl: aws.String("ZeroTo512String"), + Method: aws.String("HlsContentProtectionMethod"), + }, + Name: aws.String("Filename"), + OutputKeys: []*string{ + aws.String("Key"), // Required + // More values... + }, + PlayReadyDrm: &elastictranscoder.PlayReadyDrm{ + Format: aws.String("PlayReadyDrmFormatString"), + InitializationVector: aws.String("ZeroTo255String"), + Key: aws.String("NonEmptyBase64EncodedString"), + KeyId: aws.String("KeyIdGuid"), + KeyMd5: aws.String("NonEmptyBase64EncodedString"), + LicenseAcquisitionUrl: aws.String("OneTo512String"), + }, + }, + // More values... + }, + UserMetadata: map[string]*string{ + "Key": aws.String("String"), // Required + // More values... + }, + } } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_test.go index 2e682dc6..ac4e4d18 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/build_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -4251,7 +4250,9 @@ func TestInputService1ProtocolTestNoParametersCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobs", r.URL.String()) @@ -4270,7 +4271,9 @@ func TestInputService2ProtocolTestURIParameterOnlyWithNoLocationNameCase1(t *tes // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo", r.URL.String()) @@ -4289,7 +4292,9 @@ func TestInputService3ProtocolTestURIParameterOnlyWithLocationNameCase1(t *testi // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/bar", r.URL.String()) @@ -4311,7 +4316,9 @@ func TestInputService4ProtocolTestQuerystringListOfStringsCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?item=value1&item=value2", r.URL.String()) @@ -4334,7 +4341,9 @@ func TestInputService5ProtocolTestStringToStringMapsInQuerystringCase1(t *testin // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?bar=baz&fizz=buzz", r.URL.String()) @@ -4363,7 +4372,9 @@ func TestInputService6ProtocolTestStringToStringListMapsInQuerystringCase1(t *te // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/id?foo=bar&foo=baz&fizz=buzz&fizz=pop", r.URL.String()) @@ -4382,7 +4393,9 @@ func TestInputService7ProtocolTestBooleanInQuerystringCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?bool-query=true", r.URL.String()) @@ -4401,7 +4414,9 @@ func TestInputService7ProtocolTestBooleanInQuerystringCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?bool-query=false", r.URL.String()) @@ -4422,7 +4437,9 @@ func TestInputService8ProtocolTestURIParameterAndQuerystringParamsCase1(t *testi // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?Ascending=true&PageToken=bar", r.URL.String()) @@ -4447,10 +4464,14 @@ func TestInputService9ProtocolTestURIParameterQuerystringParamsAndJSONBodyCase1( // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Config":{"A":"one","B":"two"}}`, util.Trim(string(body))) @@ -4478,10 +4499,14 @@ func TestInputService10ProtocolTestURIParameterQuerystringParamsHeadersAndJSONBo // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Config":{"A":"one","B":"two"}}`, util.Trim(string(body))) @@ -4489,7 +4514,9 @@ func TestInputService10ProtocolTestURIParameterQuerystringParamsHeadersAndJSONBo awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?Ascending=true&PageToken=bar", r.URL.String()) // assert headers - assert.Equal(t, "12345", r.Header.Get("x-amz-checksum")) + if e, a := "12345", r.Header.Get("x-amz-checksum"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -4505,18 +4532,26 @@ func TestInputService11ProtocolTestStreamingPayloadCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) - assert.Equal(t, `contents`, util.Trim(string(body))) + if e, a := "contents", util.Trim(string(body)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/vaults/name/archives", r.URL.String()) // assert headers - assert.Equal(t, "foo", r.Header.Get("x-amz-sha256-tree-hash")) + if e, a := "foo", r.Header.Get("x-amz-sha256-tree-hash"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -4531,10 +4566,14 @@ func TestInputService12ProtocolTestSerializeBlobsInBodyCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Bar":"QmxvYiBwYXJhbQ=="}`, util.Trim(string(body))) @@ -4555,12 +4594,18 @@ func TestInputService13ProtocolTestBlobPayloadCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) - assert.Equal(t, `bar`, util.Trim(string(body))) + if e, a := "bar", util.Trim(string(body)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -4577,7 +4622,9 @@ func TestInputService13ProtocolTestBlobPayloadCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -4598,10 +4645,14 @@ func TestInputService14ProtocolTestStructurePayloadCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"baz":"bar"}`, util.Trim(string(body))) @@ -4620,7 +4671,9 @@ func TestInputService14ProtocolTestStructurePayloadCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -4637,7 +4690,9 @@ func TestInputService15ProtocolTestOmitsNullQueryParamsButSerializesEmptyStrings // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path", r.URL.String()) @@ -4656,7 +4711,9 @@ func TestInputService15ProtocolTestOmitsNullQueryParamsButSerializesEmptyStrings // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?abc=mno¶m-name=", r.URL.String()) @@ -4677,10 +4734,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"NoRecurse":"foo"}}`, util.Trim(string(body))) @@ -4705,10 +4766,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}`, util.Trim(string(body))) @@ -4737,10 +4802,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase3(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}}}`, util.Trim(string(body))) @@ -4770,10 +4839,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase4(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"NoRecurse":"bar"}]}}`, util.Trim(string(body))) @@ -4805,10 +4878,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase5(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"RecursiveStruct":{"NoRecurse":"bar"}}]}}`, util.Trim(string(body))) @@ -4838,10 +4915,14 @@ func TestInputService16ProtocolTestRecursiveShapesCase6(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveMap":{"foo":{"NoRecurse":"foo"},"bar":{"NoRecurse":"bar"}}}}`, util.Trim(string(body))) @@ -4862,10 +4943,14 @@ func TestInputService17ProtocolTestTimestampValuesCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"TimeArg":1422172800}`, util.Trim(string(body))) @@ -4886,13 +4971,17 @@ func TestInputService17ProtocolTestTimestampValuesCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path", r.URL.String()) // assert headers - assert.Equal(t, "Sun, 25 Jan 2015 08:00:00 GMT", r.Header.Get("x-amz-timearg")) + if e, a := "Sun, 25 Jan 2015 08:00:00 GMT", r.Header.Get("x-amz-timearg"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -4906,10 +4995,14 @@ func TestInputService18ProtocolTestNamedLocationsInJSONBodyCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"timestamp_location":1422172800}`, util.Trim(string(body))) @@ -4930,12 +5023,18 @@ func TestInputService19ProtocolTestStringPayloadCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) - assert.Equal(t, `bar`, util.Trim(string(body))) + if e, a := "bar", util.Trim(string(body)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -4954,10 +5053,14 @@ func TestInputService20ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Token":"abc123"}`, util.Trim(string(body))) @@ -4976,10 +5079,14 @@ func TestInputService20ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body, _ := ioutil.ReadAll(r.Body) awstesting.AssertJSON(t, `{"Token":"00000000-0000-4000-8000-000000000000"}`, util.Trim(string(body))) @@ -4999,13 +5106,17 @@ func TestInputService21ProtocolTestJSONValueTraitCase1(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "eyJGb28iOiJCYXIifQ==", r.Header.Get("X-Amz-Foo")) + if e, a := "eyJGb28iOiJCYXIifQ==", r.Header.Get("X-Amz-Foo"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -5017,7 +5128,9 @@ func TestInputService21ProtocolTestJSONValueTraitCase2(t *testing.T) { // build request restjson.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_test.go index 341f3cda..134a1ae3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -1941,21 +1940,47 @@ func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, "test", *out.ImaHeader) - assert.Equal(t, "abc", *out.ImaHeaderLocation) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, int64(200), *out.Status) - assert.Equal(t, "myname", *out.Str) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "test", *out.ImaHeader; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "abc", *out.ImaHeaderLocation; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Status; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1971,12 +1996,20 @@ func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "hi!", string(out.BlobMember)) - assert.Equal(t, "there!", string(out.StructMember.Foo)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "hi!", string(out.BlobMember); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "there!", string(out.StructMember.Foo); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -1992,12 +2025,20 @@ func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.String()) - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeMember.String()) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeMember.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2013,12 +2054,20 @@ func TestOutputService4ProtocolTestListsCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.ListMember[0]) - assert.Equal(t, "b", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "b", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2034,12 +2083,20 @@ func TestOutputService5ProtocolTestListsWithStructureMemberCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.ListMember[0].Foo) - assert.Equal(t, "b", *out.ListMember[1].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.ListMember[0].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "b", *out.ListMember[1].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2055,14 +2112,26 @@ func TestOutputService6ProtocolTestMapsCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, int64(1), *out.MapMember["a"][0]) - assert.Equal(t, int64(2), *out.MapMember["a"][1]) - assert.Equal(t, int64(3), *out.MapMember["b"][0]) - assert.Equal(t, int64(4), *out.MapMember["b"][1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := int64(1), *out.MapMember["a"][0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(2), *out.MapMember["a"][1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(3), *out.MapMember["b"][0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(4), *out.MapMember["b"][1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2078,12 +2147,20 @@ func TestOutputService7ProtocolTestComplexMapValuesCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["a"].String()) - assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["b"].String()) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["a"].String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["b"].String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2099,10 +2176,14 @@ func TestOutputService8ProtocolTestIgnoresExtraDataCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used + if out == nil { + t.Errorf("expect not to be nil") + } } @@ -2121,15 +2202,29 @@ func TestOutputService9ProtocolTestSupportsHeaderMapsCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "10", *out.AllHeaders["Content-Length"]) - assert.Equal(t, "boo", *out.AllHeaders["X-Bam"]) - assert.Equal(t, "bar", *out.AllHeaders["X-Foo"]) - assert.Equal(t, "boo", *out.PrefixedHeaders["Bam"]) - assert.Equal(t, "bar", *out.PrefixedHeaders["Foo"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "10", *out.AllHeaders["Content-Length"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "boo", *out.AllHeaders["X-Bam"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.AllHeaders["X-Foo"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "boo", *out.PrefixedHeaders["Bam"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.PrefixedHeaders["Foo"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2146,12 +2241,20 @@ func TestOutputService10ProtocolTestJSONPayloadCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.Data.Foo) - assert.Equal(t, "baz", *out.Header) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.Data.Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "baz", *out.Header; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2167,11 +2270,17 @@ func TestOutputService11ProtocolTestStreamingPayloadCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", string(out.Stream)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", string(out.Stream); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2188,9 +2297,13 @@ func TestOutputService12ProtocolTestJSONValueTraitCase1(t *testing.T) { // unmarshal response restjson.UnmarshalMeta(req) restjson.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used + if out == nil { + t.Errorf("expect not to be nil") + } reflect.DeepEqual(out.Attr, map[string]interface{}{"Foo": "Bar"}) } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_bench_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_bench_test.go index 2736446a..13106ee4 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_bench_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_bench_test.go @@ -55,13 +55,6 @@ func BenchmarkRESTXMLBuild_Complex_CFCreateDistro(b *testing.B) { }) } -func BenchmarkRESTXMLRequest_Complex_CFCreateDistro(b *testing.B) { - benchRESTXMLRequest(b, func() *request.Request { - req, _ := cloudfrontSvc.CreateDistributionRequest(cloudfrontCreateDistributionInput()) - return req - }) -} - func BenchmarkRESTXMLBuild_Simple_CFDeleteDistro(b *testing.B) { params := cloudfrontDeleteDistributionInput() @@ -71,13 +64,6 @@ func BenchmarkRESTXMLBuild_Simple_CFDeleteDistro(b *testing.B) { }) } -func BenchmarkRESTXMLRequest_Simple_CFDeleteDistro(b *testing.B) { - benchRESTXMLRequest(b, func() *request.Request { - req, _ := cloudfrontSvc.DeleteDistributionRequest(cloudfrontDeleteDistributionInput()) - return req - }) -} - func BenchmarkRESTXMLBuild_REST_S3HeadObject(b *testing.B) { params := s3HeadObjectInput() @@ -87,13 +73,6 @@ func BenchmarkRESTXMLBuild_REST_S3HeadObject(b *testing.B) { }) } -func BenchmarkRESTXMLRequest_REST_S3HeadObject(b *testing.B) { - benchRESTXMLRequest(b, func() *request.Request { - req, _ := s3Svc.HeadObjectRequest(s3HeadObjectInput()) - return req - }) -} - func BenchmarkRESTXMLBuild_XML_S3PutObjectAcl(b *testing.B) { params := s3PutObjectAclInput() @@ -103,6 +82,27 @@ func BenchmarkRESTXMLBuild_XML_S3PutObjectAcl(b *testing.B) { }) } +func BenchmarkRESTXMLRequest_Complex_CFCreateDistro(b *testing.B) { + benchRESTXMLRequest(b, func() *request.Request { + req, _ := cloudfrontSvc.CreateDistributionRequest(cloudfrontCreateDistributionInput()) + return req + }) +} + +func BenchmarkRESTXMLRequest_Simple_CFDeleteDistro(b *testing.B) { + benchRESTXMLRequest(b, func() *request.Request { + req, _ := cloudfrontSvc.DeleteDistributionRequest(cloudfrontDeleteDistributionInput()) + return req + }) +} + +func BenchmarkRESTXMLRequest_REST_S3HeadObject(b *testing.B) { + benchRESTXMLRequest(b, func() *request.Request { + req, _ := s3Svc.HeadObjectRequest(s3HeadObjectInput()) + return req + }) +} + func BenchmarkRESTXMLRequest_XML_S3PutObjectAcl(b *testing.B) { benchRESTXMLRequest(b, func() *request.Request { req, _ := s3Svc.PutObjectAclRequest(s3PutObjectAclInput()) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_test.go index 881dc764..4342cbc2 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/build_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restxml" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -4918,10 +4917,14 @@ func TestInputService1ProtocolTestBasicXMLSerializationCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `barfoo`, util.Trim(string(body)), InputService1TestShapeInputService1TestCaseOperation2Input{}) @@ -4943,10 +4946,14 @@ func TestInputService1ProtocolTestBasicXMLSerializationCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `barfoo`, util.Trim(string(body)), InputService1TestShapeInputService1TestCaseOperation2Input{}) @@ -4965,7 +4972,9 @@ func TestInputService1ProtocolTestBasicXMLSerializationCase3(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/hostedzone", r.URL.String()) @@ -4987,10 +4996,14 @@ func TestInputService2ProtocolTestSerializeOtherScalarTypesCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `true3false1.2`, util.Trim(string(body)), InputService2TestShapeInputService2TestCaseOperation1Input{}) @@ -5015,10 +5028,14 @@ func TestInputService3ProtocolTestNestedStructuresCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `bazba`, util.Trim(string(body)), InputService3TestShapeInputService3TestCaseOperation2Input{}) @@ -5042,10 +5059,14 @@ func TestInputService3ProtocolTestNestedStructuresCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `baza`, util.Trim(string(body)), InputService3TestShapeInputService3TestCaseOperation2Input{}) @@ -5067,10 +5088,14 @@ func TestInputService4ProtocolTestNestedStructuresCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `baz`, util.Trim(string(body)), InputService4TestShapeInputService4TestCaseOperation1Input{}) @@ -5095,10 +5120,14 @@ func TestInputService5ProtocolTestNonFlattenedListsCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `onetwothree`, util.Trim(string(body)), InputService5TestShapeInputService5TestCaseOperation1Input{}) @@ -5123,10 +5152,14 @@ func TestInputService6ProtocolTestNonFlattenedListsWithLocationNameCase1(t *test // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `onetwothree`, util.Trim(string(body)), InputService6TestShapeInputService6TestCaseOperation1Input{}) @@ -5151,10 +5184,14 @@ func TestInputService7ProtocolTestFlattenedListsCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `onetwothree`, util.Trim(string(body)), InputService7TestShapeInputService7TestCaseOperation1Input{}) @@ -5179,10 +5216,14 @@ func TestInputService8ProtocolTestFlattenedListsWithLocationNameCase1(t *testing // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `onetwothree`, util.Trim(string(body)), InputService8TestShapeInputService8TestCaseOperation1Input{}) @@ -5213,10 +5254,14 @@ func TestInputService9ProtocolTestListOfStructuresCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `onetwothree`, util.Trim(string(body)), InputService9TestShapeInputService9TestCaseOperation1Input{}) @@ -5240,10 +5285,14 @@ func TestInputService10ProtocolTestBlobAndTimestampShapesCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `Zm9v2015-01-25T08:00:00Z`, util.Trim(string(body)), InputService10TestShapeInputService10TestCaseOperation1Input{}) @@ -5267,14 +5316,20 @@ func TestInputService11ProtocolTestHeaderMapsCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) // assert headers - assert.Equal(t, "b", r.Header.Get("x-foo-a")) - assert.Equal(t, "d", r.Header.Get("x-foo-c")) + if e, a := "b", r.Header.Get("x-foo-a"); e != a { + t.Errorf("expect %v to be %v", e, a) + } + if e, a := "d", r.Header.Get("x-foo-c"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -5291,7 +5346,9 @@ func TestInputService12ProtocolTestQuerystringListOfStringsCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?item=value1&item=value2", r.URL.String()) @@ -5314,7 +5371,9 @@ func TestInputService13ProtocolTestStringToStringMapsInQuerystringCase1(t *testi // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?bar=baz&fizz=buzz", r.URL.String()) @@ -5343,7 +5402,9 @@ func TestInputService14ProtocolTestStringToStringListMapsInQuerystringCase1(t *t // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/id?foo=bar&foo=baz&fizz=buzz&fizz=pop", r.URL.String()) @@ -5362,7 +5423,9 @@ func TestInputService15ProtocolTestBooleanInQuerystringCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?bool-query=true", r.URL.String()) @@ -5381,7 +5444,9 @@ func TestInputService15ProtocolTestBooleanInQuerystringCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?bool-query=false", r.URL.String()) @@ -5400,12 +5465,18 @@ func TestInputService16ProtocolTestStringPayloadCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) - assert.Equal(t, `bar`, util.Trim(string(body))) + if e, a := "bar", util.Trim(string(body)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -5424,12 +5495,18 @@ func TestInputService17ProtocolTestBlobPayloadCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) - assert.Equal(t, `bar`, util.Trim(string(body))) + if e, a := "bar", util.Trim(string(body)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -5446,7 +5523,9 @@ func TestInputService17ProtocolTestBlobPayloadCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -5467,10 +5546,14 @@ func TestInputService18ProtocolTestStructurePayloadCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `bar`, util.Trim(string(body)), InputService18TestShapeInputService18TestCaseOperation4Input{}) @@ -5489,7 +5572,9 @@ func TestInputService18ProtocolTestStructurePayloadCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -5508,10 +5593,14 @@ func TestInputService18ProtocolTestStructurePayloadCase3(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, ``, util.Trim(string(body)), InputService18TestShapeInputService18TestCaseOperation4Input{}) @@ -5530,7 +5619,9 @@ func TestInputService18ProtocolTestStructurePayloadCase4(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/", r.URL.String()) @@ -5554,10 +5645,14 @@ func TestInputService19ProtocolTestXMLAttributeCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foo@example.com`, util.Trim(string(body)), InputService19TestShapeInputService19TestCaseOperation1Input{}) @@ -5579,7 +5674,9 @@ func TestInputService20ProtocolTestGreedyKeysCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/my%2Fbucket/testing%20/123", r.URL.String()) @@ -5596,7 +5693,9 @@ func TestInputService21ProtocolTestOmitsNullQueryParamsButSerializesEmptyStrings // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path", r.URL.String()) @@ -5615,7 +5714,9 @@ func TestInputService21ProtocolTestOmitsNullQueryParamsButSerializesEmptyStrings // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path?abc=mno¶m-name=", r.URL.String()) @@ -5636,10 +5737,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foo`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5664,10 +5769,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foo`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5696,10 +5805,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase3(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foo`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5729,10 +5842,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase4(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foobar`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5764,10 +5881,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase5(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foobar`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5797,10 +5918,14 @@ func TestInputService22ProtocolTestRecursiveShapesCase6(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `foofoobarbar`, util.Trim(string(body)), InputService22TestShapeInputService22TestCaseOperation6Input{}) @@ -5821,13 +5946,17 @@ func TestInputService23ProtocolTestTimestampInHeaderCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert URL awstesting.AssertURL(t, "https://test/path", r.URL.String()) // assert headers - assert.Equal(t, "Sun, 25 Jan 2015 08:00:00 GMT", r.Header.Get("x-amz-timearg")) + if e, a := "Sun, 25 Jan 2015 08:00:00 GMT", r.Header.Get("x-amz-timearg"); e != a { + t.Errorf("expect %v to be %v", e, a) + } } @@ -5841,10 +5970,14 @@ func TestInputService24ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `abc123`, util.Trim(string(body)), InputService24TestShapeInputService24TestCaseOperation2Input{}) @@ -5863,10 +5996,14 @@ func TestInputService24ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) { // build request restxml.Build(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect no error, got %v", req.Error) + } // assert body - assert.NotNil(t, r.Body) + if r.Body == nil { + t.Errorf("expect body not to be nil") + } body := util.SortXML(r.Body) awstesting.AssertXML(t, `00000000-0000-4000-8000-000000000000`, util.Trim(string(body)), InputService24TestShapeInputService24TestCaseOperation2Input{}) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/unmarshal_test.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/unmarshal_test.go index bf0198da..b835dcea 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/unmarshal_test.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/unmarshal_test.go @@ -24,7 +24,6 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restxml" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" "github.com/aws/aws-sdk-go/private/util" - "github.com/stretchr/testify/assert" ) var _ bytes.Buffer // always import bytes @@ -2028,21 +2027,47 @@ func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, "test", *out.ImaHeader) - assert.Equal(t, "abc", *out.ImaHeaderLocation) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, "myname", *out.Str) - assert.Equal(t, time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String()) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "test", *out.ImaHeader; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "abc", *out.ImaHeaderLocation; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "myname", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2060,21 +2085,47 @@ func TestOutputService1ProtocolTestScalarMembersCase2(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.3, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.2, *out.Float) - assert.Equal(t, "test", *out.ImaHeader) - assert.Equal(t, "abc", *out.ImaHeaderLocation) - assert.Equal(t, int64(200), *out.Long) - assert.Equal(t, int64(123), *out.Num) - assert.Equal(t, "", *out.Str) - assert.Equal(t, time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String()) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.3, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.2, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "test", *out.ImaHeader; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "abc", *out.ImaHeaderLocation; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(200), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(123), *out.Num; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2090,11 +2141,17 @@ func TestOutputService2ProtocolTestBlobCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "value", string(out.Blob)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "value", string(out.Blob); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2110,12 +2167,20 @@ func TestOutputService3ProtocolTestListsCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2131,12 +2196,20 @@ func TestOutputService4ProtocolTestListWithCustomMemberNameCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2152,12 +2225,20 @@ func TestOutputService5ProtocolTestFlattenedListCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.ListMember[0]) - assert.Equal(t, "123", *out.ListMember[1]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.ListMember[0]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "123", *out.ListMember[1]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2173,12 +2254,20 @@ func TestOutputService6ProtocolTestNormalMapCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"].Foo) - assert.Equal(t, "bar", *out.Map["qux"].Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"].Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2194,12 +2283,20 @@ func TestOutputService7ProtocolTestFlattenedMapCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2215,12 +2312,20 @@ func TestOutputService8ProtocolTestNamedMapCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "bam", *out.Map["baz"]) - assert.Equal(t, "bar", *out.Map["qux"]) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "bam", *out.Map["baz"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "bar", *out.Map["qux"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2237,12 +2342,20 @@ func TestOutputService9ProtocolTestXMLPayloadCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", *out.Data.Foo) - assert.Equal(t, "baz", *out.Header) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", *out.Data.Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "baz", *out.Header; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2258,11 +2371,17 @@ func TestOutputService10ProtocolTestStreamingPayloadCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "abc", string(out.Stream)) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "abc", string(out.Stream); e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2287,19 +2406,41 @@ func TestOutputService11ProtocolTestScalarMembersInHeadersCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "a", *out.Char) - assert.Equal(t, 1.5, *out.Double) - assert.Equal(t, false, *out.FalseBool) - assert.Equal(t, 1.5, *out.Float) - assert.Equal(t, int64(1), *out.Integer) - assert.Equal(t, int64(100), *out.Long) - assert.Equal(t, "string", *out.Str) - assert.Equal(t, time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String()) - assert.Equal(t, true, *out.TrueBool) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "a", *out.Char; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.5, *out.Double; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := false, *out.FalseBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 1.5, *out.Float; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(1), *out.Integer; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := int64(100), *out.Long; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "string", *out.Str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, *out.TrueBool; e != a { + t.Errorf("expect %v, got %v", e, a) + } } @@ -2315,10 +2456,16 @@ func TestOutputService12ProtocolTestEmptyStringCase1(t *testing.T) { // unmarshal response restxml.UnmarshalMeta(req) restxml.Unmarshal(req) - assert.NoError(t, req.Error) + if req.Error != nil { + t.Errorf("expect not error, got %v", req.Error) + } // assert response - assert.NotNil(t, out) // ensure out variable is used - assert.Equal(t, "", *out.Foo) + if out == nil { + t.Errorf("expect not to be nil") + } + if e, a := "", *out.Foo; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/appstream/api.go b/vendor/github.com/aws/aws-sdk-go/service/appstream/api.go index 30d646dd..2e0d29f3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/appstream/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/appstream/api.go @@ -55,7 +55,7 @@ func (c *AppStream) AssociateFleetRequest(input *AssociateFleetInput) (req *requ // AssociateFleet API operation for Amazon AppStream. // -// Associate a fleet to a stack. +// Associates the specified fleet with the specified stack. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -146,7 +146,7 @@ func (c *AppStream) CreateDirectoryConfigRequest(input *CreateDirectoryConfigInp // CreateDirectoryConfig API operation for Amazon AppStream. // -// Creates a directory configuration with the given parameters. +// Creates a directory configuration. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -228,7 +228,7 @@ func (c *AppStream) CreateFleetRequest(input *CreateFleetInput) (req *request.Re // CreateFleet API operation for Amazon AppStream. // -// Creates a new fleet. +// Creates a fleet. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -284,6 +284,184 @@ func (c *AppStream) CreateFleetWithContext(ctx aws.Context, input *CreateFleetIn return out, req.Send() } +const opCreateImageBuilder = "CreateImageBuilder" + +// CreateImageBuilderRequest generates a "aws/request.Request" representing the +// client's request for the CreateImageBuilder operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateImageBuilder for more information on using the CreateImageBuilder +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateImageBuilderRequest method. +// req, resp := client.CreateImageBuilderRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilder +func (c *AppStream) CreateImageBuilderRequest(input *CreateImageBuilderInput) (req *request.Request, output *CreateImageBuilderOutput) { + op := &request.Operation{ + Name: opCreateImageBuilder, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateImageBuilderInput{} + } + + output = &CreateImageBuilderOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateImageBuilder API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation CreateImageBuilder for usage and error information. +// +// Returned Error Codes: +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested limit exceeds the permitted limit for an account. +// +// * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException" +// The specified resource already exists. +// +// * ErrCodeResourceNotAvailableException "ResourceNotAvailableException" +// The specified resource exists and is not in use, but isn't available. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeInvalidRoleException "InvalidRoleException" +// The specified role is invalid. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// An API error occurred. Wait a few minutes and try again. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Indicates an incorrect combination of parameters, or a missing parameter. +// +// * ErrCodeIncompatibleImageException "IncompatibleImageException" +// The image does not support storage connectors. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilder +func (c *AppStream) CreateImageBuilder(input *CreateImageBuilderInput) (*CreateImageBuilderOutput, error) { + req, out := c.CreateImageBuilderRequest(input) + return out, req.Send() +} + +// CreateImageBuilderWithContext is the same as CreateImageBuilder with the addition of +// the ability to pass a context and additional request options. +// +// See CreateImageBuilder for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) CreateImageBuilderWithContext(ctx aws.Context, input *CreateImageBuilderInput, opts ...request.Option) (*CreateImageBuilderOutput, error) { + req, out := c.CreateImageBuilderRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateImageBuilderStreamingURL = "CreateImageBuilderStreamingURL" + +// CreateImageBuilderStreamingURLRequest generates a "aws/request.Request" representing the +// client's request for the CreateImageBuilderStreamingURL operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateImageBuilderStreamingURL for more information on using the CreateImageBuilderStreamingURL +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateImageBuilderStreamingURLRequest method. +// req, resp := client.CreateImageBuilderStreamingURLRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURL +func (c *AppStream) CreateImageBuilderStreamingURLRequest(input *CreateImageBuilderStreamingURLInput) (req *request.Request, output *CreateImageBuilderStreamingURLOutput) { + op := &request.Operation{ + Name: opCreateImageBuilderStreamingURL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateImageBuilderStreamingURLInput{} + } + + output = &CreateImageBuilderStreamingURLOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateImageBuilderStreamingURL API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation CreateImageBuilderStreamingURL for usage and error information. +// +// Returned Error Codes: +// * ErrCodeOperationNotPermittedException "OperationNotPermittedException" +// The attempted operation is not permitted. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURL +func (c *AppStream) CreateImageBuilderStreamingURL(input *CreateImageBuilderStreamingURLInput) (*CreateImageBuilderStreamingURLOutput, error) { + req, out := c.CreateImageBuilderStreamingURLRequest(input) + return out, req.Send() +} + +// CreateImageBuilderStreamingURLWithContext is the same as CreateImageBuilderStreamingURL with the addition of +// the ability to pass a context and additional request options. +// +// See CreateImageBuilderStreamingURL for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) CreateImageBuilderStreamingURLWithContext(ctx aws.Context, input *CreateImageBuilderStreamingURLInput, opts ...request.Option) (*CreateImageBuilderStreamingURLOutput, error) { + req, out := c.CreateImageBuilderStreamingURLRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateStack = "CreateStack" // CreateStackRequest generates a "aws/request.Request" representing the @@ -328,7 +506,7 @@ func (c *AppStream) CreateStackRequest(input *CreateStackInput) (req *request.Re // CreateStack API operation for Amazon AppStream. // -// Create a new stack. +// Creates a stack. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -422,8 +600,10 @@ func (c *AppStream) CreateStreamingURLRequest(input *CreateStreamingURLInput) (r // CreateStreamingURL API operation for Amazon AppStream. // -// Creates a URL to start an AppStream 2.0 streaming session for a user. By -// default, the URL is valid only for 1 minute from the time that it is generated. +// Creates a URL to start a streaming session for the specified user. +// +// By default, the URL is valid only for one minute from the time that it is +// generated. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -511,7 +691,7 @@ func (c *AppStream) DeleteDirectoryConfigRequest(input *DeleteDirectoryConfigInp // DeleteDirectoryConfig API operation for Amazon AppStream. // -// Deletes the directory configuration with the given parameters. +// Deletes the specified directory configuration. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -593,7 +773,7 @@ func (c *AppStream) DeleteFleetRequest(input *DeleteFleetInput) (req *request.Re // DeleteFleet API operation for Amazon AppStream. // -// Deletes a fleet. +// Deletes the specified fleet. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -634,6 +814,175 @@ func (c *AppStream) DeleteFleetWithContext(ctx aws.Context, input *DeleteFleetIn return out, req.Send() } +const opDeleteImage = "DeleteImage" + +// DeleteImageRequest generates a "aws/request.Request" representing the +// client's request for the DeleteImage operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteImage for more information on using the DeleteImage +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteImageRequest method. +// req, resp := client.DeleteImageRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImage +func (c *AppStream) DeleteImageRequest(input *DeleteImageInput) (req *request.Request, output *DeleteImageOutput) { + op := &request.Operation{ + Name: opDeleteImage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteImageInput{} + } + + output = &DeleteImageOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteImage API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation DeleteImage for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceInUseException "ResourceInUseException" +// The specified resource is in use. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeOperationNotPermittedException "OperationNotPermittedException" +// The attempted operation is not permitted. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// An API error occurred. Wait a few minutes and try again. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImage +func (c *AppStream) DeleteImage(input *DeleteImageInput) (*DeleteImageOutput, error) { + req, out := c.DeleteImageRequest(input) + return out, req.Send() +} + +// DeleteImageWithContext is the same as DeleteImage with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteImage for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) DeleteImageWithContext(ctx aws.Context, input *DeleteImageInput, opts ...request.Option) (*DeleteImageOutput, error) { + req, out := c.DeleteImageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteImageBuilder = "DeleteImageBuilder" + +// DeleteImageBuilderRequest generates a "aws/request.Request" representing the +// client's request for the DeleteImageBuilder operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteImageBuilder for more information on using the DeleteImageBuilder +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteImageBuilderRequest method. +// req, resp := client.DeleteImageBuilderRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilder +func (c *AppStream) DeleteImageBuilderRequest(input *DeleteImageBuilderInput) (req *request.Request, output *DeleteImageBuilderOutput) { + op := &request.Operation{ + Name: opDeleteImageBuilder, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteImageBuilderInput{} + } + + output = &DeleteImageBuilderOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteImageBuilder API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation DeleteImageBuilder for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeOperationNotPermittedException "OperationNotPermittedException" +// The attempted operation is not permitted. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// An API error occurred. Wait a few minutes and try again. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilder +func (c *AppStream) DeleteImageBuilder(input *DeleteImageBuilderInput) (*DeleteImageBuilderOutput, error) { + req, out := c.DeleteImageBuilderRequest(input) + return out, req.Send() +} + +// DeleteImageBuilderWithContext is the same as DeleteImageBuilder with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteImageBuilder for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) DeleteImageBuilderWithContext(ctx aws.Context, input *DeleteImageBuilderInput, opts ...request.Option) (*DeleteImageBuilderOutput, error) { + req, out := c.DeleteImageBuilderRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteStack = "DeleteStack" // DeleteStackRequest generates a "aws/request.Request" representing the @@ -678,8 +1027,8 @@ func (c *AppStream) DeleteStackRequest(input *DeleteStackInput) (req *request.Re // DeleteStack API operation for Amazon AppStream. // -// Deletes the stack. After this operation completes, the environment can no -// longer be activated, and any reservations made for the stack are released. +// Deletes the specified stack. After this operation completes, the environment +// can no longer be activated and any reservations made for the stack are released. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -764,7 +1113,7 @@ func (c *AppStream) DescribeDirectoryConfigsRequest(input *DescribeDirectoryConf // DescribeDirectoryConfigs API operation for Amazon AppStream. // -// Returns a list describing the specified directory configurations. +// Describes the specified directory configurations. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -843,8 +1192,7 @@ func (c *AppStream) DescribeFleetsRequest(input *DescribeFleetsInput) (req *requ // DescribeFleets API operation for Amazon AppStream. // -// If fleet names are provided, this operation describes the specified fleets; -// otherwise, all the fleets in the account are described. +// Describes the specified fleets or all fleets in the account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -879,6 +1227,83 @@ func (c *AppStream) DescribeFleetsWithContext(ctx aws.Context, input *DescribeFl return out, req.Send() } +const opDescribeImageBuilders = "DescribeImageBuilders" + +// DescribeImageBuildersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeImageBuilders operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeImageBuilders for more information on using the DescribeImageBuilders +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DescribeImageBuildersRequest method. +// req, resp := client.DescribeImageBuildersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuilders +func (c *AppStream) DescribeImageBuildersRequest(input *DescribeImageBuildersInput) (req *request.Request, output *DescribeImageBuildersOutput) { + op := &request.Operation{ + Name: opDescribeImageBuilders, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeImageBuildersInput{} + } + + output = &DescribeImageBuildersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeImageBuilders API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation DescribeImageBuilders for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuilders +func (c *AppStream) DescribeImageBuilders(input *DescribeImageBuildersInput) (*DescribeImageBuildersOutput, error) { + req, out := c.DescribeImageBuildersRequest(input) + return out, req.Send() +} + +// DescribeImageBuildersWithContext is the same as DescribeImageBuilders with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeImageBuilders for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) DescribeImageBuildersWithContext(ctx aws.Context, input *DescribeImageBuildersInput, opts ...request.Option) (*DescribeImageBuildersOutput, error) { + req, out := c.DescribeImageBuildersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeImages = "DescribeImages" // DescribeImagesRequest generates a "aws/request.Request" representing the @@ -923,8 +1348,7 @@ func (c *AppStream) DescribeImagesRequest(input *DescribeImagesInput) (req *requ // DescribeImages API operation for Amazon AppStream. // -// Describes the images. If a list of names is not provided, all images in your -// account are returned. This operation does not return a paginated result. +// Describes the specified images or all images in the account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1003,12 +1427,10 @@ func (c *AppStream) DescribeSessionsRequest(input *DescribeSessionsInput) (req * // DescribeSessions API operation for Amazon AppStream. // -// Describes the streaming sessions for a stack and a fleet. If a user ID is -// provided, this operation returns streaming sessions for only that user. To -// retrieve the next set of items, pass this value for the nextToken parameter -// in a subsequent call to this operation. If an authentication type is not -// provided, the operation defaults to users authenticated using a streaming -// URL. +// Describes the streaming sessions for the specified stack and fleet. If a +// user ID is provided, only the streaming sessions for only that user are returned. +// If an authentication type is not provided, the default is to authenticate +// users using a streaming URL. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1087,9 +1509,7 @@ func (c *AppStream) DescribeStacksRequest(input *DescribeStacksInput) (req *requ // DescribeStacks API operation for Amazon AppStream. // -// If stack names are not provided, this operation describes the specified stacks; -// otherwise, all stacks in the account are described. To retrieve the next -// set of items, pass the nextToken value in a subsequent call to this operation. +// Describes the specified stacks or all stacks in the account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1168,7 +1588,7 @@ func (c *AppStream) DisassociateFleetRequest(input *DisassociateFleetInput) (req // DisassociateFleet API operation for Amazon AppStream. // -// Disassociates a fleet from a stack. +// Disassociates the specified fleet from the specified stack. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1253,7 +1673,7 @@ func (c *AppStream) ExpireSessionRequest(input *ExpireSessionInput) (req *reques // ExpireSession API operation for Amazon AppStream. // -// This operation immediately stops a streaming session. +// Stops the specified streaming session. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1327,7 +1747,7 @@ func (c *AppStream) ListAssociatedFleetsRequest(input *ListAssociatedFleetsInput // ListAssociatedFleets API operation for Amazon AppStream. // -// Lists all fleets associated with the stack. +// Lists the fleets associated with the specified stack. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1401,7 +1821,7 @@ func (c *AppStream) ListAssociatedStacksRequest(input *ListAssociatedStacksInput // ListAssociatedStacks API operation for Amazon AppStream. // -// Lists all stacks to which the specified fleet is associated. +// Lists the stacks associated with the specified fleet. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1475,7 +1895,7 @@ func (c *AppStream) StartFleetRequest(input *StartFleetInput) (req *request.Requ // StartFleet API operation for Amazon AppStream. // -// Starts a fleet. +// Starts the specified fleet. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1519,6 +1939,89 @@ func (c *AppStream) StartFleetWithContext(ctx aws.Context, input *StartFleetInpu return out, req.Send() } +const opStartImageBuilder = "StartImageBuilder" + +// StartImageBuilderRequest generates a "aws/request.Request" representing the +// client's request for the StartImageBuilder operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See StartImageBuilder for more information on using the StartImageBuilder +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the StartImageBuilderRequest method. +// req, resp := client.StartImageBuilderRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilder +func (c *AppStream) StartImageBuilderRequest(input *StartImageBuilderInput) (req *request.Request, output *StartImageBuilderOutput) { + op := &request.Operation{ + Name: opStartImageBuilder, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartImageBuilderInput{} + } + + output = &StartImageBuilderOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartImageBuilder API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation StartImageBuilder for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotAvailableException "ResourceNotAvailableException" +// The specified resource exists and is not in use, but isn't available. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// An API error occurred. Wait a few minutes and try again. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilder +func (c *AppStream) StartImageBuilder(input *StartImageBuilderInput) (*StartImageBuilderOutput, error) { + req, out := c.StartImageBuilderRequest(input) + return out, req.Send() +} + +// StartImageBuilderWithContext is the same as StartImageBuilder with the addition of +// the ability to pass a context and additional request options. +// +// See StartImageBuilder for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) StartImageBuilderWithContext(ctx aws.Context, input *StartImageBuilderInput, opts ...request.Option) (*StartImageBuilderOutput, error) { + req, out := c.StartImageBuilderRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opStopFleet = "StopFleet" // StopFleetRequest generates a "aws/request.Request" representing the @@ -1563,7 +2066,7 @@ func (c *AppStream) StopFleetRequest(input *StopFleetInput) (req *request.Reques // StopFleet API operation for Amazon AppStream. // -// Stops a fleet. +// Stops the specified fleet. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1601,6 +2104,89 @@ func (c *AppStream) StopFleetWithContext(ctx aws.Context, input *StopFleetInput, return out, req.Send() } +const opStopImageBuilder = "StopImageBuilder" + +// StopImageBuilderRequest generates a "aws/request.Request" representing the +// client's request for the StopImageBuilder operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See StopImageBuilder for more information on using the StopImageBuilder +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the StopImageBuilderRequest method. +// req, resp := client.StopImageBuilderRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilder +func (c *AppStream) StopImageBuilderRequest(input *StopImageBuilderInput) (req *request.Request, output *StopImageBuilderOutput) { + op := &request.Operation{ + Name: opStopImageBuilder, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopImageBuilderInput{} + } + + output = &StopImageBuilderOutput{} + req = c.newRequest(op, input, output) + return +} + +// StopImageBuilder API operation for Amazon AppStream. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon AppStream's +// API operation StopImageBuilder for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeOperationNotPermittedException "OperationNotPermittedException" +// The attempted operation is not permitted. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// An API error occurred. Wait a few minutes and try again. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilder +func (c *AppStream) StopImageBuilder(input *StopImageBuilderInput) (*StopImageBuilderOutput, error) { + req, out := c.StopImageBuilderRequest(input) + return out, req.Send() +} + +// StopImageBuilderWithContext is the same as StopImageBuilder with the addition of +// the ability to pass a context and additional request options. +// +// See StopImageBuilder for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppStream) StopImageBuilderWithContext(ctx aws.Context, input *StopImageBuilderInput, opts ...request.Option) (*StopImageBuilderOutput, error) { + req, out := c.StopImageBuilderRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateDirectoryConfig = "UpdateDirectoryConfig" // UpdateDirectoryConfigRequest generates a "aws/request.Request" representing the @@ -1645,7 +2231,7 @@ func (c *AppStream) UpdateDirectoryConfigRequest(input *UpdateDirectoryConfigInp // UpdateDirectoryConfig API operation for Amazon AppStream. // -// Updates the directory configuration with the given parameters. +// Updates the specified directory configuration. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1730,10 +2316,12 @@ func (c *AppStream) UpdateFleetRequest(input *UpdateFleetInput) (req *request.Re // UpdateFleet API operation for Amazon AppStream. // -// Updates an existing fleet. All the attributes except the fleet name can be -// updated in the STOPPED state. When a fleet is in the RUNNING state, only -// DisplayName and ComputeCapacity can be updated. A fleet cannot be updated -// in a status of STARTING or STOPPING. +// Updates the specified fleet. +// +// If the fleet is in the STOPPED state, you can update any attribute except +// the fleet name. If the fleet is in the RUNNING state, you can update the +// DisplayName and ComputeCapacity attributes. If the fleet is in the STARTING +// or STOPPING state, you can't update it. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1836,7 +2424,7 @@ func (c *AppStream) UpdateStackRequest(input *UpdateStackInput) (req *request.Re // UpdateStack API operation for Amazon AppStream. // -// Updates the specified fields in the stack with the specified name. +// Updates the specified stack. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1886,21 +2474,21 @@ func (c *AppStream) UpdateStackWithContext(ctx aws.Context, input *UpdateStackIn return out, req.Send() } -// An entry for a single application in the application catalog. +// Describes an application in the application catalog. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/Application type Application struct { _ struct{} `type:"structure"` - // The name of the application shown to the end users. + // The application name displayed to end users. DisplayName *string `min:"1" type:"string"` - // If there is a problem, an application can be disabled after image creation. + // If there is a problem, the application can be disabled after image creation. Enabled *bool `type:"boolean"` - // The URL for the application icon. This URL may be time-limited. + // The URL for the application icon. This URL might be time-limited. IconURL *string `min:"1" type:"string"` - // A list of arguments that are passed to the application at launch. + // The arguments that are passed to the application at launch. LaunchParameters *string `min:"1" type:"string"` // The path to the application executable in the instance. @@ -1909,7 +2497,7 @@ type Application struct { // Additional attributes that describe the application. Metadata map[string]*string `type:"map"` - // The unique identifier for the application. + // The name of the application. Name *string `min:"1" type:"string"` } @@ -1969,12 +2557,12 @@ func (s *Application) SetName(v string) *Application { type AssociateFleetInput struct { _ struct{} `type:"structure"` - // The name of the fleet to associate. + // The name of the fleet. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` - // The name of the stack to which the fleet is associated. + // The name of the stack. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` @@ -2039,7 +2627,7 @@ func (s AssociateFleetOutput) GoString() string { return s.String() } -// The capacity configuration for the fleet. +// Describes the capacity for a fleet. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ComputeCapacity type ComputeCapacity struct { _ struct{} `type:"structure"` @@ -2079,7 +2667,7 @@ func (s *ComputeCapacity) SetDesiredInstances(v int64) *ComputeCapacity { return s } -// The capacity information for the fleet. +// Describes the capacity status for a fleet. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ComputeCapacityStatus type ComputeCapacityStatus struct { _ struct{} `type:"structure"` @@ -2092,7 +2680,7 @@ type ComputeCapacityStatus struct { // Desired is a required field Desired *int64 `type:"integer" required:"true"` - // The number of instances that are being used for streaming. + // The number of instances in use for streaming. InUse *int64 `type:"integer"` // The total number of simultaneous streaming instances that are running. @@ -2137,19 +2725,18 @@ func (s *ComputeCapacityStatus) SetRunning(v int64) *ComputeCapacityStatus { type CreateDirectoryConfigInput struct { _ struct{} `type:"structure"` - // The fully qualified name of the directory, such as corp.example.com + // The fully qualified name of the directory (for example, corp.example.com). // // DirectoryName is a required field DirectoryName *string `type:"string" required:"true"` - // The list of the distinguished names of organizational units to place computer - // accounts in. + // The distinguished names of the organizational units for computer accounts. // // OrganizationalUnitDistinguishedNames is a required field OrganizationalUnitDistinguishedNames []*string `type:"list" required:"true"` - // The AccountName and AccountPassword values for the service account, which - // are used by the streaming instance to connect to the directory. + // The credentials for the service account used by the streaming instance to + // connect to the directory. // // ServiceAccountCredentials is a required field ServiceAccountCredentials *ServiceAccountCredentials `type:"structure" required:"true"` @@ -2211,7 +2798,7 @@ func (s *CreateDirectoryConfigInput) SetServiceAccountCredentials(v *ServiceAcco type CreateDirectoryConfigOutput struct { _ struct{} `type:"structure"` - // Directory configuration details. + // Information about the directory configuration. DirectoryConfig *DirectoryConfig `type:"structure"` } @@ -2231,42 +2818,42 @@ func (s *CreateDirectoryConfigOutput) SetDirectoryConfig(v *DirectoryConfig) *Cr return s } -// Contains the parameters for the new fleet to create. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleetRequest type CreateFleetInput struct { _ struct{} `type:"structure"` - // The parameters for the capacity allocated to the fleet. + // The desired capacity for the fleet. // // ComputeCapacity is a required field ComputeCapacity *ComputeCapacity `type:"structure" required:"true"` - // The description of the fleet. + // The description displayed to end users. Description *string `type:"string"` - // The time after disconnection when a session is considered to have ended. - // If a user who got disconnected reconnects within this timeout interval, the - // user is connected back to their previous session. The input can be any numeric - // value in seconds between 60 and 57600. + // The time after disconnection when a session is considered to have ended, + // in seconds. If a user who was disconnected reconnects within this time interval, + // the user is connected to their previous session. Specify a value between + // 60 and 57600. DisconnectTimeoutInSeconds *int64 `type:"integer"` - // The display name of the fleet. + // The fleet name displayed to end users. DisplayName *string `type:"string"` - // The DirectoryName and OrganizationalUnitDistinguishedName values, which are - // used to join domains for the AppStream 2.0 streaming instances. + // The information needed for streaming instances to join a domain. DomainJoinInfo *DomainJoinInfo `type:"structure"` // Enables or disables default internet access for the fleet. EnableDefaultInternetAccess *bool `type:"boolean"` - // Unique name of the image used by the fleet. + FleetType *string `type:"string" enum:"FleetType"` + + // The name of the image used by the fleet. // // ImageName is a required field ImageName *string `min:"1" type:"string" required:"true"` - // The instance type of compute resources for the fleet. Fleet instances are - // launched from this instance type. Available instance types are: + // The instance type to use when launching fleet instances. The following instance + // types are available: // // * stream.standard.medium // @@ -2292,22 +2879,30 @@ type CreateFleetInput struct { // // * stream.memory.8xlarge // + // * stream.graphics-design.large + // + // * stream.graphics-design.xlarge + // + // * stream.graphics-design.2xlarge + // + // * stream.graphics-design.4xlarge + // + // * stream.graphics-desktop.2xlarge + // // * stream.graphics-pro.4xlarge // // * stream.graphics-pro.8xlarge // // * stream.graphics-pro.16xlarge // - // * stream.graphics-desktop.2xlarge - // // InstanceType is a required field InstanceType *string `min:"1" type:"string" required:"true"` - // The maximum time for which a streaming session can run. The input can be - // any numeric value in seconds between 600 and 57600. + // The maximum time that a streaming session can run, in seconds. Specify a + // value between 600 and 57600. MaxUserDurationInSeconds *int64 `type:"integer"` - // A unique identifier for the fleet. + // A unique name for the fleet. // // Name is a required field Name *string `type:"string" required:"true"` @@ -2395,6 +2990,12 @@ func (s *CreateFleetInput) SetEnableDefaultInternetAccess(v bool) *CreateFleetIn return s } +// SetFleetType sets the FleetType field's value. +func (s *CreateFleetInput) SetFleetType(v string) *CreateFleetInput { + s.FleetType = &v + return s +} + // SetImageName sets the ImageName field's value. func (s *CreateFleetInput) SetImageName(v string) *CreateFleetInput { s.ImageName = &v @@ -2429,7 +3030,7 @@ func (s *CreateFleetInput) SetVpcConfig(v *VpcConfig) *CreateFleetInput { type CreateFleetOutput struct { _ struct{} `type:"structure"` - // The details for the created fleet. + // Information about the fleet. Fleet *Fleet `type:"structure"` } @@ -2449,22 +3050,233 @@ func (s *CreateFleetOutput) SetFleet(v *Fleet) *CreateFleetOutput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderRequest +type CreateImageBuilderInput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + DisplayName *string `type:"string"` + + // Contains the information needed for streaming instances to join a domain. + DomainJoinInfo *DomainJoinInfo `type:"structure"` + + EnableDefaultInternetAccess *bool `type:"boolean"` + + // ImageName is a required field + ImageName *string `min:"1" type:"string" required:"true"` + + // InstanceType is a required field + InstanceType *string `min:"1" type:"string" required:"true"` + + // Name is a required field + Name *string `type:"string" required:"true"` + + // Describes VPC configuration information. + VpcConfig *VpcConfig `type:"structure"` +} + +// String returns the string representation +func (s CreateImageBuilderInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateImageBuilderInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateImageBuilderInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateImageBuilderInput"} + if s.ImageName == nil { + invalidParams.Add(request.NewErrParamRequired("ImageName")) + } + if s.ImageName != nil && len(*s.ImageName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ImageName", 1)) + } + if s.InstanceType == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceType")) + } + if s.InstanceType != nil && len(*s.InstanceType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateImageBuilderInput) SetDescription(v string) *CreateImageBuilderInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *CreateImageBuilderInput) SetDisplayName(v string) *CreateImageBuilderInput { + s.DisplayName = &v + return s +} + +// SetDomainJoinInfo sets the DomainJoinInfo field's value. +func (s *CreateImageBuilderInput) SetDomainJoinInfo(v *DomainJoinInfo) *CreateImageBuilderInput { + s.DomainJoinInfo = v + return s +} + +// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value. +func (s *CreateImageBuilderInput) SetEnableDefaultInternetAccess(v bool) *CreateImageBuilderInput { + s.EnableDefaultInternetAccess = &v + return s +} + +// SetImageName sets the ImageName field's value. +func (s *CreateImageBuilderInput) SetImageName(v string) *CreateImageBuilderInput { + s.ImageName = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *CreateImageBuilderInput) SetInstanceType(v string) *CreateImageBuilderInput { + s.InstanceType = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateImageBuilderInput) SetName(v string) *CreateImageBuilderInput { + s.Name = &v + return s +} + +// SetVpcConfig sets the VpcConfig field's value. +func (s *CreateImageBuilderInput) SetVpcConfig(v *VpcConfig) *CreateImageBuilderInput { + s.VpcConfig = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderResult +type CreateImageBuilderOutput struct { + _ struct{} `type:"structure"` + + ImageBuilder *ImageBuilder `type:"structure"` +} + +// String returns the string representation +func (s CreateImageBuilderOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateImageBuilderOutput) GoString() string { + return s.String() +} + +// SetImageBuilder sets the ImageBuilder field's value. +func (s *CreateImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *CreateImageBuilderOutput { + s.ImageBuilder = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURLRequest +type CreateImageBuilderStreamingURLInput struct { + _ struct{} `type:"structure"` + + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + Validity *int64 `type:"long"` +} + +// String returns the string representation +func (s CreateImageBuilderStreamingURLInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateImageBuilderStreamingURLInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateImageBuilderStreamingURLInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateImageBuilderStreamingURLInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateImageBuilderStreamingURLInput) SetName(v string) *CreateImageBuilderStreamingURLInput { + s.Name = &v + return s +} + +// SetValidity sets the Validity field's value. +func (s *CreateImageBuilderStreamingURLInput) SetValidity(v int64) *CreateImageBuilderStreamingURLInput { + s.Validity = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURLResult +type CreateImageBuilderStreamingURLOutput struct { + _ struct{} `type:"structure"` + + Expires *time.Time `type:"timestamp" timestampFormat:"unix"` + + StreamingURL *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateImageBuilderStreamingURLOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateImageBuilderStreamingURLOutput) GoString() string { + return s.String() +} + +// SetExpires sets the Expires field's value. +func (s *CreateImageBuilderStreamingURLOutput) SetExpires(v time.Time) *CreateImageBuilderStreamingURLOutput { + s.Expires = &v + return s +} + +// SetStreamingURL sets the StreamingURL field's value. +func (s *CreateImageBuilderStreamingURLOutput) SetStreamingURL(v string) *CreateImageBuilderStreamingURLOutput { + s.StreamingURL = &v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStackRequest type CreateStackInput struct { _ struct{} `type:"structure"` - // The description displayed to end users on the AppStream 2.0 portal. + // The description displayed to end users. Description *string `type:"string"` - // The name displayed to end users on the AppStream 2.0 portal. + // The stack name displayed to end users. DisplayName *string `type:"string"` - // The unique identifier for this stack. + // The name of the stack. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The storage connectors to be enabled for the stack. + // The storage connectors to enable. StorageConnectors []*StorageConnector `type:"list"` } @@ -2532,7 +3344,7 @@ func (s *CreateStackInput) SetStorageConnectors(v []*StorageConnector) *CreateSt type CreateStackOutput struct { _ struct{} `type:"structure"` - // The details for the created stack. + // Information about the stack. Stack *Stack `type:"structure"` } @@ -2559,26 +3371,26 @@ type CreateStreamingURLInput struct { // The ID of the application that must be launched after the session starts. ApplicationId *string `min:"1" type:"string"` - // The fleet for which the URL is generated. + // The name of the fleet. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` - // The sessionContext of the streaming URL. + // The session context of the streaming URL. SessionContext *string `min:"1" type:"string"` - // The stack for which the URL is generated. + // The name of the stack. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` - // A unique user ID for whom the URL is generated. + // The ID of the user. // // UserId is a required field UserId *string `min:"2" type:"string" required:"true"` - // The duration up to which the URL returned by this action is valid. The input - // can be any numeric value in seconds between 1 and 604800 seconds. + // The time that the streaming URL will be valid, in seconds. Specify a value + // between 1 and 604800 seconds. Validity *int64 `type:"long"` } @@ -2666,7 +3478,7 @@ func (s *CreateStreamingURLInput) SetValidity(v int64) *CreateStreamingURLInput type CreateStreamingURLOutput struct { _ struct{} `type:"structure"` - // Elapsed seconds after the Unix epoch, when this URL expires. + // The elapsed time, in seconds after the Unix epoch, when this URL expires. Expires *time.Time `type:"timestamp" timestampFormat:"unix"` // The URL to start the AppStream 2.0 streaming session. @@ -2699,7 +3511,7 @@ func (s *CreateStreamingURLOutput) SetStreamingURL(v string) *CreateStreamingURL type DeleteDirectoryConfigInput struct { _ struct{} `type:"structure"` - // The name of the directory configuration to be deleted. + // The name of the directory configuration. // // DirectoryName is a required field DirectoryName *string `type:"string" required:"true"` @@ -2753,7 +3565,7 @@ func (s DeleteDirectoryConfigOutput) GoString() string { type DeleteFleetInput struct { _ struct{} `type:"structure"` - // The name of the fleet to be deleted. + // The name of the fleet. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -2806,11 +3618,132 @@ func (s DeleteFleetOutput) GoString() string { return s.String() } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilderRequest +type DeleteImageBuilderInput struct { + _ struct{} `type:"structure"` + + // Name is a required field + Name *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteImageBuilderInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteImageBuilderInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteImageBuilderInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteImageBuilderInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *DeleteImageBuilderInput) SetName(v string) *DeleteImageBuilderInput { + s.Name = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilderResult +type DeleteImageBuilderOutput struct { + _ struct{} `type:"structure"` + + ImageBuilder *ImageBuilder `type:"structure"` +} + +// String returns the string representation +func (s DeleteImageBuilderOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteImageBuilderOutput) GoString() string { + return s.String() +} + +// SetImageBuilder sets the ImageBuilder field's value. +func (s *DeleteImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *DeleteImageBuilderOutput { + s.ImageBuilder = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageRequest +type DeleteImageInput struct { + _ struct{} `type:"structure"` + + // Name is a required field + Name *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteImageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteImageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteImageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteImageInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *DeleteImageInput) SetName(v string) *DeleteImageInput { + s.Name = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageResult +type DeleteImageOutput struct { + _ struct{} `type:"structure"` + + // Describes an image. + Image *Image `type:"structure"` +} + +// String returns the string representation +func (s DeleteImageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteImageOutput) GoString() string { + return s.String() +} + +// SetImage sets the Image field's value. +func (s *DeleteImageOutput) SetImage(v *Image) *DeleteImageOutput { + s.Image = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteStackRequest type DeleteStackInput struct { _ struct{} `type:"structure"` - // The name of the stack to delete. + // The name of the stack. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -2867,14 +3800,14 @@ func (s DeleteStackOutput) GoString() string { type DescribeDirectoryConfigsInput struct { _ struct{} `type:"structure"` - // A specific list of directory names. + // The directory names. DirectoryNames []*string `type:"list"` - // The size of each page of results. + // The maximum size of each page of results. MaxResults *int64 `type:"integer"` - // The DescribeDirectoryConfigsResult.NextToken from a previous call to DescribeDirectoryConfigs. - // If this is the first call, pass null. + // The pagination token to use to retrieve the next page of results for this + // operation. If this value is null, it retrieves the first page. NextToken *string `min:"1" type:"string"` } @@ -2923,11 +3856,11 @@ func (s *DescribeDirectoryConfigsInput) SetNextToken(v string) *DescribeDirector type DescribeDirectoryConfigsOutput struct { _ struct{} `type:"structure"` - // The list of directory configurations. + // Information about the directory configurations. DirectoryConfigs []*DirectoryConfig `type:"list"` - // If not null, more results are available. To retrieve the next set of items, - // pass this value for the NextToken parameter in a subsequent call to DescribeDirectoryConfigs. + // The pagination token to use to retrieve the next page of results for this + // operation. If there are no more pages, this value is null. NextToken *string `min:"1" type:"string"` } @@ -2957,8 +3890,7 @@ func (s *DescribeDirectoryConfigsOutput) SetNextToken(v string) *DescribeDirecto type DescribeFleetsInput struct { _ struct{} `type:"structure"` - // The fleet names to describe. Use null to describe all the fleets for the - // AWS account. + // The names of the fleets to describe. Names []*string `type:"list"` // The pagination token to use to retrieve the next page of results for this @@ -3005,7 +3937,7 @@ func (s *DescribeFleetsInput) SetNextToken(v string) *DescribeFleetsInput { type DescribeFleetsOutput struct { _ struct{} `type:"structure"` - // The list of fleet details. + // Information about the fleets. Fleets []*Fleet `type:"list"` // The pagination token to use to retrieve the next page of results for this @@ -3035,11 +3967,94 @@ func (s *DescribeFleetsOutput) SetNextToken(v string) *DescribeFleetsOutput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuildersRequest +type DescribeImageBuildersInput struct { + _ struct{} `type:"structure"` + + MaxResults *int64 `type:"integer"` + + Names []*string `type:"list"` + + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeImageBuildersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeImageBuildersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeImageBuildersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeImageBuildersInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeImageBuildersInput) SetMaxResults(v int64) *DescribeImageBuildersInput { + s.MaxResults = &v + return s +} + +// SetNames sets the Names field's value. +func (s *DescribeImageBuildersInput) SetNames(v []*string) *DescribeImageBuildersInput { + s.Names = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeImageBuildersInput) SetNextToken(v string) *DescribeImageBuildersInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuildersResult +type DescribeImageBuildersOutput struct { + _ struct{} `type:"structure"` + + ImageBuilders []*ImageBuilder `type:"list"` + + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeImageBuildersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeImageBuildersOutput) GoString() string { + return s.String() +} + +// SetImageBuilders sets the ImageBuilders field's value. +func (s *DescribeImageBuildersOutput) SetImageBuilders(v []*ImageBuilder) *DescribeImageBuildersOutput { + s.ImageBuilders = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeImageBuildersOutput) SetNextToken(v string) *DescribeImageBuildersOutput { + s.NextToken = &v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImagesRequest type DescribeImagesInput struct { _ struct{} `type:"structure"` - // A specific list of images to describe. + // The names of the images to describe. Names []*string `type:"list"` } @@ -3063,7 +4078,7 @@ func (s *DescribeImagesInput) SetNames(v []*string) *DescribeImagesInput { type DescribeImagesOutput struct { _ struct{} `type:"structure"` - // The list of images. + // Information about the images. Images []*Image `type:"list"` } @@ -3087,32 +4102,30 @@ func (s *DescribeImagesOutput) SetImages(v []*Image) *DescribeImagesOutput { type DescribeSessionsInput struct { _ struct{} `type:"structure"` - // The authentication method of the user. It can be API for a user authenticated - // using a streaming URL, or SAML for a SAML federated user. If an authentication - // type is not provided, the operation defaults to users authenticated using - // a streaming URL. + // The authentication method. Specify API for a user authenticated using a streaming + // URL or SAML for a SAML federated user. The default is to authenticate users + // using a streaming URL. AuthenticationType *string `type:"string" enum:"AuthenticationType"` - // The name of the fleet for which to list sessions. + // The name of the fleet. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` // The size of each page of results. The default value is 20 and the maximum - // supported value is 50. + // value is 50. Limit *int64 `type:"integer"` // The pagination token to use to retrieve the next page of results for this // operation. If this value is null, it retrieves the first page. NextToken *string `min:"1" type:"string"` - // The name of the stack for which to list sessions. + // The name of the stack. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` - // The user for whom to list sessions. Use null to describe all the sessions - // for the stack and fleet. + // The user ID. UserId *string `min:"2" type:"string"` } @@ -3198,7 +4211,7 @@ type DescribeSessionsOutput struct { // operation. If there are no more pages, this value is null. NextToken *string `min:"1" type:"string"` - // The list of streaming sessions. + // Information about the streaming sessions. Sessions []*Session `type:"list"` } @@ -3228,8 +4241,7 @@ func (s *DescribeSessionsOutput) SetSessions(v []*Session) *DescribeSessionsOutp type DescribeStacksInput struct { _ struct{} `type:"structure"` - // The stack names to describe. Use null to describe all the stacks for the - // AWS account. + // The names of the stacks to describe. Names []*string `type:"list"` // The pagination token to use to retrieve the next page of results for this @@ -3280,7 +4292,7 @@ type DescribeStacksOutput struct { // operation. If there are no more pages, this value is null. NextToken *string `min:"1" type:"string"` - // The list of stack details. + // Information about the stacks. Stacks []*Stack `type:"list"` } @@ -3306,27 +4318,24 @@ func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput { return s } -// Full directory configuration details, which are used to join domains for -// the AppStream 2.0 streaming instances. +// Configuration information for the directory used to join domains. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DirectoryConfig type DirectoryConfig struct { _ struct{} `type:"structure"` - // The time stamp when the directory configuration was created within AppStream - // 2.0. + // The time the directory configuration was created. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // The fully qualified name of the directory, such as corp.example.com + // The fully qualified name of the directory (for example, corp.example.com). // // DirectoryName is a required field DirectoryName *string `type:"string" required:"true"` - // The list of the distinguished names of organizational units in which to place - // computer accounts. + // The distinguished names of the organizational units for computer accounts. OrganizationalUnitDistinguishedNames []*string `type:"list"` - // The AccountName and AccountPassword of the service account, to be used by - // the streaming instance to connect to the directory. + // The credentials for the service account used by the streaming instance to + // connect to the directory. ServiceAccountCredentials *ServiceAccountCredentials `type:"structure"` } @@ -3368,12 +4377,12 @@ func (s *DirectoryConfig) SetServiceAccountCredentials(v *ServiceAccountCredenti type DisassociateFleetInput struct { _ struct{} `type:"structure"` - // The name of the fleet to disassociate. + // The name of the fleet. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` - // The name of the stack with which the fleet is associated. + // The name of the stack. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` @@ -3438,17 +4447,15 @@ func (s DisassociateFleetOutput) GoString() string { return s.String() } -// The DirectoryName and OrganizationalUnitDistinguishedName values, which are -// used to join domains for the AppStream 2.0 streaming instances. +// Contains the information needed for streaming instances to join a domain. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DomainJoinInfo type DomainJoinInfo struct { _ struct{} `type:"structure"` - // The fully qualified name of the directory, such as corp.example.com + // The fully qualified name of the directory (for example, corp.example.com). DirectoryName *string `type:"string"` - // The distinguished name of the organizational unit to place the computer account - // in. + // The distinguished name of the organizational unit for computer accounts. OrganizationalUnitDistinguishedName *string `type:"string"` } @@ -3478,7 +4485,7 @@ func (s *DomainJoinInfo) SetOrganizationalUnitDistinguishedName(v string) *Domai type ExpireSessionInput struct { _ struct{} `type:"structure"` - // The unique identifier of the streaming session to be stopped. + // The ID of the streaming session. // // SessionId is a required field SessionId *string `min:"1" type:"string" required:"true"` @@ -3541,49 +4548,49 @@ type Fleet struct { // Arn is a required field Arn *string `type:"string" required:"true"` - // The capacity information for the fleet. + // The capacity status for the fleet. // // ComputeCapacityStatus is a required field ComputeCapacityStatus *ComputeCapacityStatus `type:"structure" required:"true"` - // The time at which the fleet was created. + // The time the fleet was created. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // The description displayed to end users on the AppStream 2.0 portal. + // The description displayed to end users. Description *string `min:"1" type:"string"` - // The time after disconnection when a session is considered to have ended. - // If a user who got disconnected reconnects within this timeout interval, the - // user is connected back to their previous session. The input can be any numeric - // value in seconds between 60 and 57600. + // The time after disconnection when a session is considered to have ended, + // in seconds. If a user who was disconnected reconnects within this time interval, + // the user is connected to their previous session. Specify a value between + // 60 and 57600. DisconnectTimeoutInSeconds *int64 `type:"integer"` - // The name displayed to end users on the AppStream 2.0 portal. + // The fleet name displayed to end users. DisplayName *string `min:"1" type:"string"` - // The DirectoryName and OrganizationalUnitDistinguishedName values, which are - // used to join domains for the AppStream 2.0 streaming instances. + // The information needed for streaming instances to join a domain. DomainJoinInfo *DomainJoinInfo `type:"structure"` - // Whether default internet access is enabled for the fleet. + // Indicates whether default internet access is enabled for the fleet. EnableDefaultInternetAccess *bool `type:"boolean"` - // The list of fleet errors is appended to this list. + // The fleet errors. FleetErrors []*FleetError `type:"list"` + FleetType *string `type:"string" enum:"FleetType"` + // The image used by the fleet. // // ImageName is a required field ImageName *string `min:"1" type:"string" required:"true"` - // The instance type of compute resources for the fleet. The fleet instances - // are launched from this instance type. + // The instance type to use when launching fleet instances. // // InstanceType is a required field InstanceType *string `min:"1" type:"string" required:"true"` - // The maximum time for which a streaming session can run. The value can be - // any numeric value in seconds between 600 and 57600. + // The maximum time that a streaming session can run, in seconds. Specify a + // value between 600 and 57600. MaxUserDurationInSeconds *int64 `type:"integer"` // The name of the fleet. @@ -3664,6 +4671,12 @@ func (s *Fleet) SetFleetErrors(v []*FleetError) *Fleet { return s } +// SetFleetType sets the FleetType field's value. +func (s *Fleet) SetFleetType(v string) *Fleet { + s.FleetType = &v + return s +} + // SetImageName sets the ImageName field's value. func (s *Fleet) SetImageName(v string) *Fleet { s.ImageName = &v @@ -3700,15 +4713,15 @@ func (s *Fleet) SetVpcConfig(v *VpcConfig) *Fleet { return s } -// The details of the fleet error. +// Describes a fleet error. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/FleetError type FleetError struct { _ struct{} `type:"structure"` - // The error code for the fleet error. + // The error code. ErrorCode *string `type:"string" enum:"FleetErrorCode"` - // The error message generated when the fleet has errors. + // The error message. ErrorMessage *string `min:"1" type:"string"` } @@ -3734,34 +4747,33 @@ func (s *FleetError) SetErrorMessage(v string) *FleetError { return s } -// New streaming instances are booted from images. The image stores the application -// catalog and is connected to fleets. +// Describes an image. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/Image type Image struct { _ struct{} `type:"structure"` - // The applications associated with an image. + // The applications associated with the image. Applications []*Application `type:"list"` - // The ARN for the image. + // The ARN of the image. Arn *string `type:"string"` - // The source image ARN from which this image was created. + // The ARN of the image from which this image was created. BaseImageArn *string `type:"string"` - // The time stamp when the image was created. + // The time the image was created. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // A meaningful description for the image. + // The description displayed to end users. Description *string `min:"1" type:"string"` - // The display name for the image. + // The image name displayed to end users. DisplayName *string `min:"1" type:"string"` - // Whether an image builder can be launched from this image. + // Indicates whether an image builder can be launched from this image. ImageBuilderSupported *bool `type:"boolean"` - // The unique identifier for the image. + // The name of the image. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -3769,18 +4781,18 @@ type Image struct { // The operating system platform of the image. Platform *string `type:"string" enum:"PlatformType"` - // The AWS release date of the public base image. For private images, this date + // The release date of the public base image. For private images, this date // is the release date of the base image from which the image was created. PublicBaseImageReleasedDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // The image starts in the PENDING state. If image creation succeeds, it moves - // to AVAILABLE. If image creation fails, it moves to FAILED. + // The image starts in the PENDING state. If image creation succeeds, the state + // is AVAILABLE. If image creation fails, the state is FAILED. State *string `type:"string" enum:"ImageState"` // The reason why the last state change occurred. StateChangeReason *ImageStateChangeReason `type:"structure"` - // The visibility of an image to the user; images can be public or private. + // Indicates whether the image is public or private. Visibility *string `type:"string" enum:"VisibilityType"` } @@ -3872,15 +4884,176 @@ func (s *Image) SetVisibility(v string) *Image { return s } -// The reason why the last state change occurred. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ImageBuilder +type ImageBuilder struct { + _ struct{} `type:"structure"` + + Arn *string `type:"string"` + + CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + Description *string `min:"1" type:"string"` + + DisplayName *string `min:"1" type:"string"` + + // Contains the information needed for streaming instances to join a domain. + DomainJoinInfo *DomainJoinInfo `type:"structure"` + + EnableDefaultInternetAccess *bool `type:"boolean"` + + ImageArn *string `type:"string"` + + ImageBuilderErrors []*ResourceError `type:"list"` + + InstanceType *string `min:"1" type:"string"` + + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + Platform *string `type:"string" enum:"PlatformType"` + + State *string `type:"string" enum:"ImageBuilderState"` + + StateChangeReason *ImageBuilderStateChangeReason `type:"structure"` + + // Describes VPC configuration information. + VpcConfig *VpcConfig `type:"structure"` +} + +// String returns the string representation +func (s ImageBuilder) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ImageBuilder) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ImageBuilder) SetArn(v string) *ImageBuilder { + s.Arn = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *ImageBuilder) SetCreatedTime(v time.Time) *ImageBuilder { + s.CreatedTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ImageBuilder) SetDescription(v string) *ImageBuilder { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *ImageBuilder) SetDisplayName(v string) *ImageBuilder { + s.DisplayName = &v + return s +} + +// SetDomainJoinInfo sets the DomainJoinInfo field's value. +func (s *ImageBuilder) SetDomainJoinInfo(v *DomainJoinInfo) *ImageBuilder { + s.DomainJoinInfo = v + return s +} + +// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value. +func (s *ImageBuilder) SetEnableDefaultInternetAccess(v bool) *ImageBuilder { + s.EnableDefaultInternetAccess = &v + return s +} + +// SetImageArn sets the ImageArn field's value. +func (s *ImageBuilder) SetImageArn(v string) *ImageBuilder { + s.ImageArn = &v + return s +} + +// SetImageBuilderErrors sets the ImageBuilderErrors field's value. +func (s *ImageBuilder) SetImageBuilderErrors(v []*ResourceError) *ImageBuilder { + s.ImageBuilderErrors = v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *ImageBuilder) SetInstanceType(v string) *ImageBuilder { + s.InstanceType = &v + return s +} + +// SetName sets the Name field's value. +func (s *ImageBuilder) SetName(v string) *ImageBuilder { + s.Name = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *ImageBuilder) SetPlatform(v string) *ImageBuilder { + s.Platform = &v + return s +} + +// SetState sets the State field's value. +func (s *ImageBuilder) SetState(v string) *ImageBuilder { + s.State = &v + return s +} + +// SetStateChangeReason sets the StateChangeReason field's value. +func (s *ImageBuilder) SetStateChangeReason(v *ImageBuilderStateChangeReason) *ImageBuilder { + s.StateChangeReason = v + return s +} + +// SetVpcConfig sets the VpcConfig field's value. +func (s *ImageBuilder) SetVpcConfig(v *VpcConfig) *ImageBuilder { + s.VpcConfig = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ImageBuilderStateChangeReason +type ImageBuilderStateChangeReason struct { + _ struct{} `type:"structure"` + + Code *string `type:"string" enum:"ImageBuilderStateChangeReasonCode"` + + Message *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ImageBuilderStateChangeReason) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ImageBuilderStateChangeReason) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *ImageBuilderStateChangeReason) SetCode(v string) *ImageBuilderStateChangeReason { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *ImageBuilderStateChangeReason) SetMessage(v string) *ImageBuilderStateChangeReason { + s.Message = &v + return s +} + +// Describes the reason why the last state change occurred. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ImageStateChangeReason type ImageStateChangeReason struct { _ struct{} `type:"structure"` - // The state change reason code of the image. + // The state change reason code. Code *string `type:"string" enum:"ImageStateChangeReasonCode"` - // The state change reason message to the end user. + // The state change reason message. Message *string `min:"1" type:"string"` } @@ -3914,7 +5087,7 @@ type ListAssociatedFleetsInput struct { // operation. If this value is null, it retrieves the first page. NextToken *string `min:"1" type:"string"` - // The name of the stack whose associated fleets are listed. + // The name of the stack. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` @@ -3961,12 +5134,11 @@ func (s *ListAssociatedFleetsInput) SetStackName(v string) *ListAssociatedFleets return s } -// The response from a successful operation. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedFleetsResult type ListAssociatedFleetsOutput struct { _ struct{} `type:"structure"` - // The names of associated fleets. + // The names of the fleets. Names []*string `type:"list"` // The pagination token to use to retrieve the next page of results for this @@ -4000,7 +5172,7 @@ func (s *ListAssociatedFleetsOutput) SetNextToken(v string) *ListAssociatedFleet type ListAssociatedStacksInput struct { _ struct{} `type:"structure"` - // The name of the fleet whose associated stacks are listed. + // The name of the fleet. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` @@ -4051,12 +5223,11 @@ func (s *ListAssociatedStacksInput) SetNextToken(v string) *ListAssociatedStacks return s } -// The response from a successful operation. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedStacksResult type ListAssociatedStacksOutput struct { _ struct{} `type:"structure"` - // The names of associated stacks. + // The names of the stacks. Names []*string `type:"list"` // The pagination token to use to retrieve the next page of results for this @@ -4086,22 +5257,59 @@ func (s *ListAssociatedStacksOutput) SetNextToken(v string) *ListAssociatedStack return s } -// The AccountName and AccountPassword of the service account, to be used by -// the streaming instance to connect to the directory. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ResourceError +type ResourceError struct { + _ struct{} `type:"structure"` + + ErrorCode *string `type:"string" enum:"FleetErrorCode"` + + ErrorMessage *string `min:"1" type:"string"` + + ErrorTimestamp *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s ResourceError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceError) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *ResourceError) SetErrorCode(v string) *ResourceError { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *ResourceError) SetErrorMessage(v string) *ResourceError { + s.ErrorMessage = &v + return s +} + +// SetErrorTimestamp sets the ErrorTimestamp field's value. +func (s *ResourceError) SetErrorTimestamp(v time.Time) *ResourceError { + s.ErrorTimestamp = &v + return s +} + +// Describes the credentials for the service account used by the streaming instance +// to connect to the directory. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ServiceAccountCredentials type ServiceAccountCredentials struct { _ struct{} `type:"structure"` - // The user name of an account in the directory that is used by AppStream 2.0 - // streaming instances to connect to the directory. This account must have the - // following privileges: create computer objects, join computers to the domain, - // change/reset the password on descendant computer objects for the organizational - // units specified. + // The user name of the account. This account must have the following privileges: + // create computer objects, join computers to the domain, and change/reset the + // password on descendant computer objects for the organizational units specified. // // AccountName is a required field AccountName *string `min:"1" type:"string" required:"true"` - // The password for the user account for directory actions. + // The password for the account. // // AccountPassword is a required field AccountPassword *string `min:"1" type:"string" required:"true"` @@ -4151,27 +5359,26 @@ func (s *ServiceAccountCredentials) SetAccountPassword(v string) *ServiceAccount return s } -// Contains the parameters for a streaming session. +// Describes a streaming session. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/Session type Session struct { _ struct{} `type:"structure"` - // The authentication method of the user for whom the session was created. It - // can be API for a user authenticated using a streaming URL or SAML for a SAML - // federated user. + // The authentication method. The user is authenticated using a streaming URL + // (API) or SAML federation (SAML). AuthenticationType *string `type:"string" enum:"AuthenticationType"` - // The name of the fleet for which the streaming session was created. + // The name of the fleet for the streaming session. // // FleetName is a required field FleetName *string `min:"1" type:"string" required:"true"` - // The unique ID for a streaming session. + // The ID of the streaming session. // // Id is a required field Id *string `min:"1" type:"string" required:"true"` - // The name of the stack for which the streaming session was created. + // The name of the stack for the streaming session. // // StackName is a required field StackName *string `min:"1" type:"string" required:"true"` @@ -4233,7 +5440,7 @@ func (s *Session) SetUserId(v string) *Session { return s } -// Details about a stack. +// Describes a stack. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/Stack type Stack struct { _ struct{} `type:"structure"` @@ -4241,24 +5448,24 @@ type Stack struct { // The ARN of the stack. Arn *string `type:"string"` - // The time stamp when the stack was created. + // The time the stack was created. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // A meaningful description for the stack. + // The description displayed to end users. Description *string `min:"1" type:"string"` - // A display name for the stack. + // The stack name displayed to end users. DisplayName *string `min:"1" type:"string"` - // The unique identifier of the stack. + // The name of the stack. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The list of errors associated with the stack. + // The errors for the stack. StackErrors []*StackError `type:"list"` - // The storage connectors to be enabled for the stack. + // The storage connectors to enable. StorageConnectors []*StorageConnector `type:"list"` } @@ -4314,15 +5521,15 @@ func (s *Stack) SetStorageConnectors(v []*StorageConnector) *Stack { return s } -// Contains the parameters for a stack error. +// Describes a stack error. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StackError type StackError struct { _ struct{} `type:"structure"` - // The error code of a stack error. + // The error code. ErrorCode *string `type:"string" enum:"StackErrorCode"` - // The error message of a stack error. + // The error message. ErrorMessage *string `min:"1" type:"string"` } @@ -4352,7 +5559,7 @@ func (s *StackError) SetErrorMessage(v string) *StackError { type StartFleetInput struct { _ struct{} `type:"structure"` - // The name of the fleet to start. + // The name of the fleet. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -4405,11 +5612,74 @@ func (s StartFleetOutput) GoString() string { return s.String() } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilderRequest +type StartImageBuilderInput struct { + _ struct{} `type:"structure"` + + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartImageBuilderInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartImageBuilderInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartImageBuilderInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartImageBuilderInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *StartImageBuilderInput) SetName(v string) *StartImageBuilderInput { + s.Name = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilderResult +type StartImageBuilderOutput struct { + _ struct{} `type:"structure"` + + ImageBuilder *ImageBuilder `type:"structure"` +} + +// String returns the string representation +func (s StartImageBuilderOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartImageBuilderOutput) GoString() string { + return s.String() +} + +// SetImageBuilder sets the ImageBuilder field's value. +func (s *StartImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *StartImageBuilderOutput { + s.ImageBuilder = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopFleetRequest type StopFleetInput struct { _ struct{} `type:"structure"` - // The name of the fleet to stop. + // The name of the fleet. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -4462,17 +5732,80 @@ func (s StopFleetOutput) GoString() string { return s.String() } -// Contains the parameters for a storage connector. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilderRequest +type StopImageBuilderInput struct { + _ struct{} `type:"structure"` + + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopImageBuilderInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopImageBuilderInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopImageBuilderInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopImageBuilderInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *StopImageBuilderInput) SetName(v string) *StopImageBuilderInput { + s.Name = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilderResult +type StopImageBuilderOutput struct { + _ struct{} `type:"structure"` + + ImageBuilder *ImageBuilder `type:"structure"` +} + +// String returns the string representation +func (s StopImageBuilderOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopImageBuilderOutput) GoString() string { + return s.String() +} + +// SetImageBuilder sets the ImageBuilder field's value. +func (s *StopImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *StopImageBuilderOutput { + s.ImageBuilder = v + return s +} + +// Describes a storage connector. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StorageConnector type StorageConnector struct { _ struct{} `type:"structure"` - // The type of storage connector. The possible values include: HOMEFOLDERS. + // The type of storage connector. // // ConnectorType is a required field ConnectorType *string `type:"string" required:"true" enum:"StorageConnectorType"` - // The ARN associated with the storage connector. + // The ARN of the storage connector. ResourceIdentifier *string `min:"1" type:"string"` } @@ -4518,17 +5851,16 @@ func (s *StorageConnector) SetResourceIdentifier(v string) *StorageConnector { type UpdateDirectoryConfigInput struct { _ struct{} `type:"structure"` - // The name of the existing directory configuration to be updated. + // The name of the directory configuration. // // DirectoryName is a required field DirectoryName *string `type:"string" required:"true"` - // The list of the distinguished names of organizational units to place computer - // accounts in. + // The distinguished names of the organizational units for computer accounts. OrganizationalUnitDistinguishedNames []*string `type:"list"` - // The AccountName and AccountPassword values for the service account, which - // are used by the streaming instance to connect to the directory + // The credentials for the service account used by the streaming instance to + // connect to the directory. ServiceAccountCredentials *ServiceAccountCredentials `type:"structure"` } @@ -4582,7 +5914,7 @@ func (s *UpdateDirectoryConfigInput) SetServiceAccountCredentials(v *ServiceAcco type UpdateDirectoryConfigOutput struct { _ struct{} `type:"structure"` - // The updated directory configuration details. + // Information about the directory configuration. DirectoryConfig *DirectoryConfig `type:"structure"` } @@ -4606,39 +5938,38 @@ func (s *UpdateDirectoryConfigOutput) SetDirectoryConfig(v *DirectoryConfig) *Up type UpdateFleetInput struct { _ struct{} `type:"structure"` - // Fleet attributes to be deleted. + // The fleet attributes to delete. AttributesToDelete []*string `type:"list"` - // The parameters for the capacity allocated to the fleet. + // The desired capacity for the fleet. ComputeCapacity *ComputeCapacity `type:"structure"` - // Delete the VPC association for the specified fleet. + // Deletes the VPC association for the specified fleet. DeleteVpcConfig *bool `deprecated:"true" type:"boolean"` - // The description displayed to end users on the AppStream 2.0 portal. + // The description displayed to end users. Description *string `type:"string"` - // The time after disconnection when a session is considered to have ended. - // If a user who got disconnected reconnects within this timeout interval, the - // user is connected back to their previous session. The input can be any numeric - // value in seconds between 60 and 57600. + // The time after disconnection when a session is considered to have ended, + // in seconds. If a user who was disconnected reconnects within this time interval, + // the user is connected to their previous session. Specify a value between + // 60 and 57600. DisconnectTimeoutInSeconds *int64 `type:"integer"` - // The name displayed to end users on the AppStream 2.0 portal. + // The fleet name displayed to end users. DisplayName *string `type:"string"` - // The DirectoryName and OrganizationalUnitDistinguishedName values, which are - // used to join domains for the AppStream 2.0 streaming instances. + // The information needed for streaming instances to join a domain. DomainJoinInfo *DomainJoinInfo `type:"structure"` // Enables or disables default internet access for the fleet. EnableDefaultInternetAccess *bool `type:"boolean"` - // The image name from which a fleet is created. + // The name of the image used by the fleet. ImageName *string `min:"1" type:"string"` - // The instance type of compute resources for the fleet. Fleet instances are - // launched from this instance type. Available instance types are: + // The instance type to use when launching fleet instances. The following instance + // types are available: // // * stream.standard.medium // @@ -4664,20 +5995,28 @@ type UpdateFleetInput struct { // // * stream.memory.8xlarge // + // * stream.graphics-design.large + // + // * stream.graphics-design.xlarge + // + // * stream.graphics-design.2xlarge + // + // * stream.graphics-design.4xlarge + // + // * stream.graphics-desktop.2xlarge + // // * stream.graphics-pro.4xlarge // // * stream.graphics-pro.8xlarge // // * stream.graphics-pro.16xlarge - // - // * stream.graphics-desktop.2xlarge InstanceType *string `min:"1" type:"string"` - // The maximum time for which a streaming session can run. The input can be - // any numeric value in seconds between 600 and 57600. + // The maximum time that a streaming session can run, in seconds. Specify a + // value between 600 and 57600. MaxUserDurationInSeconds *int64 `type:"integer"` - // The name of the fleet. + // A unique name for the fleet. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -4805,7 +6144,7 @@ func (s *UpdateFleetInput) SetVpcConfig(v *VpcConfig) *UpdateFleetInput { type UpdateFleetOutput struct { _ struct{} `type:"structure"` - // A list of fleet details. + // Information about the fleet. Fleet *Fleet `type:"structure"` } @@ -4829,21 +6168,21 @@ func (s *UpdateFleetOutput) SetFleet(v *Fleet) *UpdateFleetOutput { type UpdateStackInput struct { _ struct{} `type:"structure"` - // Remove all the storage connectors currently enabled for the stack. + // Deletes the storage connectors currently enabled for the stack. DeleteStorageConnectors *bool `type:"boolean"` - // The description displayed to end users on the AppStream 2.0 portal. + // The description displayed to end users. Description *string `type:"string"` - // The name displayed to end users on the AppStream 2.0 portal. + // The stack name displayed to end users. DisplayName *string `type:"string"` - // The name of the stack to update. + // The name of the stack. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The storage connectors to be enabled for the stack. + // The storage connectors to enable. StorageConnectors []*StorageConnector `type:"list"` } @@ -4917,7 +6256,7 @@ func (s *UpdateStackInput) SetStorageConnectors(v []*StorageConnector) *UpdateSt type UpdateStackOutput struct { _ struct{} `type:"structure"` - // A list of stack details. + // Information about the stack. Stack *Stack `type:"structure"` } @@ -4937,16 +6276,15 @@ func (s *UpdateStackOutput) SetStack(v *Stack) *UpdateStackOutput { return s } -// VPC configuration information. +// Describes VPC configuration information. // Please also see https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/VpcConfig type VpcConfig struct { _ struct{} `type:"structure"` - // Security groups associated with the fleet. + // The security groups for the fleet. SecurityGroupIds []*string `type:"list"` - // The list of subnets to which a network interface is established from the - // fleet instance. + // The subnets to which a network interface is established from the fleet instance. SubnetIds []*string `type:"list"` } @@ -4983,7 +6321,7 @@ const ( AuthenticationTypeUserpool = "USERPOOL" ) -// Fleet attribute. +// The fleet attribute. const ( // FleetAttributeVpcConfiguration is a FleetAttribute enum value FleetAttributeVpcConfiguration = "VPC_CONFIGURATION" @@ -5032,6 +6370,9 @@ const ( // FleetErrorCodeSecurityGroupsNotFound is a FleetErrorCode enum value FleetErrorCodeSecurityGroupsNotFound = "SECURITY_GROUPS_NOT_FOUND" + // FleetErrorCodeIgwNotAttached is a FleetErrorCode enum value + FleetErrorCodeIgwNotAttached = "IGW_NOT_ATTACHED" + // FleetErrorCodeIamServiceRoleMissingDescribeSecurityGroupsAction is a FleetErrorCode enum value FleetErrorCodeIamServiceRoleMissingDescribeSecurityGroupsAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION" @@ -5086,6 +6427,48 @@ const ( FleetStateStopped = "STOPPED" ) +const ( + // FleetTypeAlwaysOn is a FleetType enum value + FleetTypeAlwaysOn = "ALWAYS_ON" + + // FleetTypeOnDemand is a FleetType enum value + FleetTypeOnDemand = "ON_DEMAND" +) + +const ( + // ImageBuilderStatePending is a ImageBuilderState enum value + ImageBuilderStatePending = "PENDING" + + // ImageBuilderStateRunning is a ImageBuilderState enum value + ImageBuilderStateRunning = "RUNNING" + + // ImageBuilderStateStopping is a ImageBuilderState enum value + ImageBuilderStateStopping = "STOPPING" + + // ImageBuilderStateStopped is a ImageBuilderState enum value + ImageBuilderStateStopped = "STOPPED" + + // ImageBuilderStateRebooting is a ImageBuilderState enum value + ImageBuilderStateRebooting = "REBOOTING" + + // ImageBuilderStateSnapshotting is a ImageBuilderState enum value + ImageBuilderStateSnapshotting = "SNAPSHOTTING" + + // ImageBuilderStateDeleting is a ImageBuilderState enum value + ImageBuilderStateDeleting = "DELETING" + + // ImageBuilderStateFailed is a ImageBuilderState enum value + ImageBuilderStateFailed = "FAILED" +) + +const ( + // ImageBuilderStateChangeReasonCodeInternalError is a ImageBuilderStateChangeReasonCode enum value + ImageBuilderStateChangeReasonCodeInternalError = "INTERNAL_ERROR" + + // ImageBuilderStateChangeReasonCodeImageUnavailable is a ImageBuilderStateChangeReasonCode enum value + ImageBuilderStateChangeReasonCodeImageUnavailable = "IMAGE_UNAVAILABLE" +) + const ( // ImageStatePending is a ImageState enum value ImageStatePending = "PENDING" @@ -5133,7 +6516,7 @@ const ( StackErrorCodeInternalServiceError = "INTERNAL_SERVICE_ERROR" ) -// The type of storage connector. The possible values include: HOMEFOLDERS. +// The type of storage connector. const ( // StorageConnectorTypeHomefolders is a StorageConnectorType enum value StorageConnectorTypeHomefolders = "HOMEFOLDERS" diff --git a/vendor/github.com/aws/aws-sdk-go/service/appstream/appstreamiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/appstream/appstreamiface/interface.go index f4406180..e9cd6c20 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/appstream/appstreamiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/appstream/appstreamiface/interface.go @@ -72,6 +72,14 @@ type AppStreamAPI interface { CreateFleetWithContext(aws.Context, *appstream.CreateFleetInput, ...request.Option) (*appstream.CreateFleetOutput, error) CreateFleetRequest(*appstream.CreateFleetInput) (*request.Request, *appstream.CreateFleetOutput) + CreateImageBuilder(*appstream.CreateImageBuilderInput) (*appstream.CreateImageBuilderOutput, error) + CreateImageBuilderWithContext(aws.Context, *appstream.CreateImageBuilderInput, ...request.Option) (*appstream.CreateImageBuilderOutput, error) + CreateImageBuilderRequest(*appstream.CreateImageBuilderInput) (*request.Request, *appstream.CreateImageBuilderOutput) + + CreateImageBuilderStreamingURL(*appstream.CreateImageBuilderStreamingURLInput) (*appstream.CreateImageBuilderStreamingURLOutput, error) + CreateImageBuilderStreamingURLWithContext(aws.Context, *appstream.CreateImageBuilderStreamingURLInput, ...request.Option) (*appstream.CreateImageBuilderStreamingURLOutput, error) + CreateImageBuilderStreamingURLRequest(*appstream.CreateImageBuilderStreamingURLInput) (*request.Request, *appstream.CreateImageBuilderStreamingURLOutput) + CreateStack(*appstream.CreateStackInput) (*appstream.CreateStackOutput, error) CreateStackWithContext(aws.Context, *appstream.CreateStackInput, ...request.Option) (*appstream.CreateStackOutput, error) CreateStackRequest(*appstream.CreateStackInput) (*request.Request, *appstream.CreateStackOutput) @@ -88,6 +96,14 @@ type AppStreamAPI interface { DeleteFleetWithContext(aws.Context, *appstream.DeleteFleetInput, ...request.Option) (*appstream.DeleteFleetOutput, error) DeleteFleetRequest(*appstream.DeleteFleetInput) (*request.Request, *appstream.DeleteFleetOutput) + DeleteImage(*appstream.DeleteImageInput) (*appstream.DeleteImageOutput, error) + DeleteImageWithContext(aws.Context, *appstream.DeleteImageInput, ...request.Option) (*appstream.DeleteImageOutput, error) + DeleteImageRequest(*appstream.DeleteImageInput) (*request.Request, *appstream.DeleteImageOutput) + + DeleteImageBuilder(*appstream.DeleteImageBuilderInput) (*appstream.DeleteImageBuilderOutput, error) + DeleteImageBuilderWithContext(aws.Context, *appstream.DeleteImageBuilderInput, ...request.Option) (*appstream.DeleteImageBuilderOutput, error) + DeleteImageBuilderRequest(*appstream.DeleteImageBuilderInput) (*request.Request, *appstream.DeleteImageBuilderOutput) + DeleteStack(*appstream.DeleteStackInput) (*appstream.DeleteStackOutput, error) DeleteStackWithContext(aws.Context, *appstream.DeleteStackInput, ...request.Option) (*appstream.DeleteStackOutput, error) DeleteStackRequest(*appstream.DeleteStackInput) (*request.Request, *appstream.DeleteStackOutput) @@ -100,6 +116,10 @@ type AppStreamAPI interface { DescribeFleetsWithContext(aws.Context, *appstream.DescribeFleetsInput, ...request.Option) (*appstream.DescribeFleetsOutput, error) DescribeFleetsRequest(*appstream.DescribeFleetsInput) (*request.Request, *appstream.DescribeFleetsOutput) + DescribeImageBuilders(*appstream.DescribeImageBuildersInput) (*appstream.DescribeImageBuildersOutput, error) + DescribeImageBuildersWithContext(aws.Context, *appstream.DescribeImageBuildersInput, ...request.Option) (*appstream.DescribeImageBuildersOutput, error) + DescribeImageBuildersRequest(*appstream.DescribeImageBuildersInput) (*request.Request, *appstream.DescribeImageBuildersOutput) + DescribeImages(*appstream.DescribeImagesInput) (*appstream.DescribeImagesOutput, error) DescribeImagesWithContext(aws.Context, *appstream.DescribeImagesInput, ...request.Option) (*appstream.DescribeImagesOutput, error) DescribeImagesRequest(*appstream.DescribeImagesInput) (*request.Request, *appstream.DescribeImagesOutput) @@ -132,10 +152,18 @@ type AppStreamAPI interface { StartFleetWithContext(aws.Context, *appstream.StartFleetInput, ...request.Option) (*appstream.StartFleetOutput, error) StartFleetRequest(*appstream.StartFleetInput) (*request.Request, *appstream.StartFleetOutput) + StartImageBuilder(*appstream.StartImageBuilderInput) (*appstream.StartImageBuilderOutput, error) + StartImageBuilderWithContext(aws.Context, *appstream.StartImageBuilderInput, ...request.Option) (*appstream.StartImageBuilderOutput, error) + StartImageBuilderRequest(*appstream.StartImageBuilderInput) (*request.Request, *appstream.StartImageBuilderOutput) + StopFleet(*appstream.StopFleetInput) (*appstream.StopFleetOutput, error) StopFleetWithContext(aws.Context, *appstream.StopFleetInput, ...request.Option) (*appstream.StopFleetOutput, error) StopFleetRequest(*appstream.StopFleetInput) (*request.Request, *appstream.StopFleetOutput) + StopImageBuilder(*appstream.StopImageBuilderInput) (*appstream.StopImageBuilderOutput, error) + StopImageBuilderWithContext(aws.Context, *appstream.StopImageBuilderInput, ...request.Option) (*appstream.StopImageBuilderOutput, error) + StopImageBuilderRequest(*appstream.StopImageBuilderInput) (*request.Request, *appstream.StopImageBuilderOutput) + UpdateDirectoryConfig(*appstream.UpdateDirectoryConfigInput) (*appstream.UpdateDirectoryConfigOutput, error) UpdateDirectoryConfigWithContext(aws.Context, *appstream.UpdateDirectoryConfigInput, ...request.Option) (*appstream.UpdateDirectoryConfigOutput, error) UpdateDirectoryConfigRequest(*appstream.UpdateDirectoryConfigInput) (*request.Request, *appstream.UpdateDirectoryConfigOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/appstream/doc.go b/vendor/github.com/aws/aws-sdk-go/service/appstream/doc.go index 68418052..9f50cfea 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/appstream/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/appstream/doc.go @@ -3,7 +3,8 @@ // Package appstream provides the client and types for making API // requests to Amazon AppStream. // -// API documentation for Amazon AppStream 2.0. +// You can use Amazon AppStream 2.0 to stream desktop applications to any device +// running a web browser, without rewriting them. // // See https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01 for more information on this service. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/budgets/api.go b/vendor/github.com/aws/aws-sdk-go/service/budgets/api.go index da5c5137..8fcf9381 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/budgets/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/budgets/api.go @@ -1039,6 +1039,10 @@ func (c *Budgets) UpdateNotificationRequest(input *UpdateNotificationInput) (req // This exception is thrown if a requested entity is not found. E.g., if a budget // id doesn't exist for an account ID. // +// * ErrCodeDuplicateRecordException "DuplicateRecordException" +// The exception is thrown when customer tries to create a record (e.g. budget) +// that already exists. +// func (c *Budgets) UpdateNotification(input *UpdateNotificationInput) (*UpdateNotificationOutput, error) { req, out := c.UpdateNotificationRequest(input) return out, req.Send() @@ -1123,6 +1127,10 @@ func (c *Budgets) UpdateSubscriberRequest(input *UpdateSubscriberInput) (req *re // This exception is thrown if a requested entity is not found. E.g., if a budget // id doesn't exist for an account ID. // +// * ErrCodeDuplicateRecordException "DuplicateRecordException" +// The exception is thrown when customer tries to create a record (e.g. budget) +// that already exists. +// func (c *Budgets) UpdateSubscriber(input *UpdateSubscriberInput) (*UpdateSubscriberOutput, error) { req, out := c.UpdateSubscriberRequest(input) return out, req.Send() diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go index 3a466574..86c60b3b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go @@ -3559,6 +3559,88 @@ func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *Updat return out, req.Send() } +const opUpdateTerminationProtection = "UpdateTerminationProtection" + +// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateTerminationProtection operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateTerminationProtectionRequest method. +// req, resp := client.UpdateTerminationProtectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection +func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) { + op := &request.Operation{ + Name: opUpdateTerminationProtection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateTerminationProtectionInput{} + } + + output = &UpdateTerminationProtectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateTerminationProtection API operation for AWS CloudFormation. +// +// Updates termination protection for the specified stack. If a user attempts +// to delete a stack with termination protection enabled, the operation fails +// and the stack remains unchanged. For more information, see Protecting a Stack +// From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) +// in the AWS CloudFormation User Guide. +// +// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), +// termination protection is set on the root stack and cannot be changed directly +// on the nested stack. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS CloudFormation's +// API operation UpdateTerminationProtection for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection +func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) { + req, out := c.UpdateTerminationProtectionRequest(input) + return out, req.Send() +} + +// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateTerminationProtection for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) { + req, out := c.UpdateTerminationProtectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opValidateTemplate = "ValidateTemplate" // ValidateTemplateRequest generates a "aws/request.Request" representing the @@ -4473,6 +4555,18 @@ type CreateStackInput struct { // Default: false DisableRollback *bool `type:"boolean"` + // Whether to enable termination protection on the specified stack. If a user + // attempts to delete a stack with termination protection enabled, the operation + // fails and the stack remains unchanged. For more information, see Protecting + // a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + // in the AWS CloudFormation User Guide. Termination protection is disabled + // on stacks by default. + // + // For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + // termination protection is set on the root stack and cannot be changed directly + // on the nested stack. + EnableTerminationProtection *bool `type:"boolean"` + // The Simple Notification Service (SNS) topic ARNs to publish stack related // events. You can find your SNS topic ARNs using the SNS console or your Command // Line Interface (CLI). @@ -4651,6 +4745,12 @@ func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput { return s } +// SetEnableTerminationProtection sets the EnableTerminationProtection field's value. +func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput { + s.EnableTerminationProtection = &v + return s +} + // SetNotificationARNs sets the NotificationARNs field's value. func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput { s.NotificationARNs = v @@ -8723,6 +8823,9 @@ type Stack struct { // CreationTime is a required field CreationTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` + // The time the stack was deleted. + DeletionTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + // A user-defined description associated with the stack. Description *string `min:"1" type:"string"` @@ -8733,6 +8836,15 @@ type Stack struct { // * false: enable rollback DisableRollback *bool `type:"boolean"` + // Whether termination protection is enabled for the stack. + // + // For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + // termination protection is set on the root stack and cannot be changed directly + // on the nested stack. For more information, see Protecting a Stack From Being + // Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + // in the AWS CloudFormation User Guide. + EnableTerminationProtection *bool `type:"boolean"` + // The time the stack was last updated. This field will only be returned if // the stack has been updated at least once. LastUpdatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` @@ -8746,6 +8858,14 @@ type Stack struct { // A list of Parameter structures. Parameters []*Parameter `type:"list"` + // For nested stacks--stacks created as resources for another stack--the stack + // ID of the direct parent of this stack. For the first level of nested stacks, + // the root stack is also the parent stack. + // + // For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + // in the AWS CloudFormation User Guide. + ParentId *string `type:"string"` + // The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) // role that is associated with the stack. During a stack operation, AWS CloudFormation // uses this role's credentials to make calls on your behalf. @@ -8755,6 +8875,13 @@ type Stack struct { // and updating operations, and for the specified monitoring period afterwards. RollbackConfiguration *RollbackConfiguration `type:"structure"` + // For nested stacks--stacks created as resources for another stack--the stack + // ID of the the top-level stack to which the nested stack ultimately belongs. + // + // For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + // in the AWS CloudFormation User Guide. + RootId *string `type:"string"` + // Unique identifier of the stack. StackId *string `type:"string"` @@ -8806,6 +8933,12 @@ func (s *Stack) SetCreationTime(v time.Time) *Stack { return s } +// SetDeletionTime sets the DeletionTime field's value. +func (s *Stack) SetDeletionTime(v time.Time) *Stack { + s.DeletionTime = &v + return s +} + // SetDescription sets the Description field's value. func (s *Stack) SetDescription(v string) *Stack { s.Description = &v @@ -8818,6 +8951,12 @@ func (s *Stack) SetDisableRollback(v bool) *Stack { return s } +// SetEnableTerminationProtection sets the EnableTerminationProtection field's value. +func (s *Stack) SetEnableTerminationProtection(v bool) *Stack { + s.EnableTerminationProtection = &v + return s +} + // SetLastUpdatedTime sets the LastUpdatedTime field's value. func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack { s.LastUpdatedTime = &v @@ -8842,6 +8981,12 @@ func (s *Stack) SetParameters(v []*Parameter) *Stack { return s } +// SetParentId sets the ParentId field's value. +func (s *Stack) SetParentId(v string) *Stack { + s.ParentId = &v + return s +} + // SetRoleARN sets the RoleARN field's value. func (s *Stack) SetRoleARN(v string) *Stack { s.RoleARN = &v @@ -8854,6 +8999,12 @@ func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack { return s } +// SetRootId sets the RootId field's value. +func (s *Stack) SetRootId(v string) *Stack { + s.RootId = &v + return s +} + // SetStackId sets the StackId field's value. func (s *Stack) SetStackId(v string) *Stack { s.StackId = &v @@ -9768,6 +9919,10 @@ type StackSetOperationPreferences struct { // time. This is dependent on the value of FailureToleranceCount—MaxConcurrentCount // is at most one more than the FailureToleranceCount . // + // Note that this setting lets you specify the maximum for operations. For large + // deployments, under certain circumstances the actual number of accounts acted + // upon concurrently may be lower due to service throttling. + // // Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, // but not both. MaxConcurrentCount *int64 `min:"1" type:"integer"` @@ -9780,6 +9935,10 @@ type StackSetOperationPreferences struct { // in cases where rounding down would result is zero. In this case, CloudFormation // sets the number as one instead. // + // Note that this setting lets you specify the maximum for operations. For large + // deployments, under certain circumstances the actual number of accounts acted + // upon concurrently may be lower due to service throttling. + // // Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, // but not both. MaxConcurrentPercentage *int64 `min:"1" type:"integer"` @@ -10086,6 +10245,21 @@ type StackSummary struct { // the stack has been updated at least once. LastUpdatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + // For nested stacks--stacks created as resources for another stack--the stack + // ID of the direct parent of this stack. For the first level of nested stacks, + // the root stack is also the parent stack. + // + // For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + // in the AWS CloudFormation User Guide. + ParentId *string `type:"string"` + + // For nested stacks--stacks created as resources for another stack--the stack + // ID of the the top-level stack to which the nested stack ultimately belongs. + // + // For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + // in the AWS CloudFormation User Guide. + RootId *string `type:"string"` + // Unique stack identifier. StackId *string `type:"string"` @@ -10134,6 +10308,18 @@ func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary { return s } +// SetParentId sets the ParentId field's value. +func (s *StackSummary) SetParentId(v string) *StackSummary { + s.ParentId = &v + return s +} + +// SetRootId sets the RootId field's value. +func (s *StackSummary) SetRootId(v string) *StackSummary { + s.RootId = &v + return s +} + // SetStackId sets the StackId field's value. func (s *StackSummary) SetStackId(v string) *StackSummary { s.StackId = &v @@ -10955,6 +11141,87 @@ func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionInput +type UpdateTerminationProtectionInput struct { + _ struct{} `type:"structure"` + + // Whether to enable termination protection on the specified stack. + // + // EnableTerminationProtection is a required field + EnableTerminationProtection *bool `type:"boolean" required:"true"` + + // The name or unique ID of the stack for which you want to set termination + // protection. + // + // StackName is a required field + StackName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateTerminationProtectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateTerminationProtectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTerminationProtectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"} + if s.EnableTerminationProtection == nil { + invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection")) + } + if s.StackName == nil { + invalidParams.Add(request.NewErrParamRequired("StackName")) + } + if s.StackName != nil && len(*s.StackName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StackName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnableTerminationProtection sets the EnableTerminationProtection field's value. +func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput { + s.EnableTerminationProtection = &v + return s +} + +// SetStackName sets the StackName field's value. +func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput { + s.StackName = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionOutput +type UpdateTerminationProtectionOutput struct { + _ struct{} `type:"structure"` + + // The unique ID of the stack. + StackId *string `type:"string"` +} + +// String returns the string representation +func (s UpdateTerminationProtectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateTerminationProtectionOutput) GoString() string { + return s.String() +} + +// SetStackId sets the StackId field's value. +func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput { + s.StackId = &v + return s +} + // The input for ValidateTemplate action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplateInput type ValidateTemplateInput struct { diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface/interface.go index f1543a31..a9185c47 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface/interface.go @@ -230,6 +230,10 @@ type CloudFormationAPI interface { UpdateStackSetWithContext(aws.Context, *cloudformation.UpdateStackSetInput, ...request.Option) (*cloudformation.UpdateStackSetOutput, error) UpdateStackSetRequest(*cloudformation.UpdateStackSetInput) (*request.Request, *cloudformation.UpdateStackSetOutput) + UpdateTerminationProtection(*cloudformation.UpdateTerminationProtectionInput) (*cloudformation.UpdateTerminationProtectionOutput, error) + UpdateTerminationProtectionWithContext(aws.Context, *cloudformation.UpdateTerminationProtectionInput, ...request.Option) (*cloudformation.UpdateTerminationProtectionOutput, error) + UpdateTerminationProtectionRequest(*cloudformation.UpdateTerminationProtectionInput) (*request.Request, *cloudformation.UpdateTerminationProtectionOutput) + ValidateTemplate(*cloudformation.ValidateTemplateInput) (*cloudformation.ValidateTemplateOutput, error) ValidateTemplateWithContext(aws.Context, *cloudformation.ValidateTemplateInput, ...request.Option) (*cloudformation.ValidateTemplateOutput, error) ValidateTemplateRequest(*cloudformation.ValidateTemplateInput) (*request.Request, *cloudformation.ValidateTemplateOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudfront/sign/sign_cookie_test.go b/vendor/github.com/aws/aws-sdk-go/service/cloudfront/sign/sign_cookie_test.go index 3bcd8672..16559f82 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudfront/sign/sign_cookie_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudfront/sign/sign_cookie_test.go @@ -4,8 +4,6 @@ import ( "crypto/rsa" "testing" "time" - - "github.com/stretchr/testify/assert" ) func TestNewCookieSigner(t *testing.T) { @@ -15,26 +13,42 @@ func TestNewCookieSigner(t *testing.T) { } signer := NewCookieSigner("keyID", privKey) - assert.Equal(t, "keyID", signer.keyID) - assert.Equal(t, privKey, signer.privKey) + if e, a := "keyID", signer.keyID; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := privKey, signer.privKey; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestSignCookie(t *testing.T) { privKey, err := rsa.GenerateKey(randReader, 1024) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } signer := NewCookieSigner("keyID", privKey) cookies, err := signer.Sign("http*://*", time.Now().Add(1*time.Hour)) - assert.NoError(t, err) - assert.Equal(t, CookiePolicyName, cookies[0].Name) - assert.Equal(t, CookieSignatureName, cookies[1].Name) - assert.Equal(t, CookieKeyIDName, cookies[2].Name) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := CookiePolicyName, cookies[0].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieSignatureName, cookies[1].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieKeyIDName, cookies[2].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestSignCookie_WithPolicy(t *testing.T) { privKey, err := rsa.GenerateKey(randReader, 1024) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } p := &Policy{ Statements: []Statement{ @@ -50,15 +64,25 @@ func TestSignCookie_WithPolicy(t *testing.T) { signer := NewCookieSigner("keyID", privKey) cookies, err := signer.SignWithPolicy(p) - assert.NoError(t, err) - assert.Equal(t, CookiePolicyName, cookies[0].Name) - assert.Equal(t, CookieSignatureName, cookies[1].Name) - assert.Equal(t, CookieKeyIDName, cookies[2].Name) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := CookiePolicyName, cookies[0].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieSignatureName, cookies[1].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieKeyIDName, cookies[2].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestSignCookie_WithCookieOptions(t *testing.T) { privKey, err := rsa.GenerateKey(randReader, 1024) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } expires := time.Now().Add(1 * time.Hour) @@ -70,14 +94,28 @@ func TestSignCookie_WithCookieOptions(t *testing.T) { }) - assert.NoError(t, err) - assert.Equal(t, CookiePolicyName, cookies[0].Name) - assert.Equal(t, CookieSignatureName, cookies[1].Name) - assert.Equal(t, CookieKeyIDName, cookies[2].Name) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := CookiePolicyName, cookies[0].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieSignatureName, cookies[1].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := CookieKeyIDName, cookies[2].Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } for _, c := range cookies { - assert.Equal(t, "/", c.Path) - assert.Equal(t, ".example.com", c.Domain) - assert.True(t, c.Secure) + if e, a := "/", c.Path; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := ".example.com", c.Domain; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if !c.Secure { + t.Errorf("expect to be true") + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/api.go index 314ee96e..521e3ec6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/api.go @@ -232,7 +232,7 @@ func (c *CloudHSM) CreateHsmRequest(input *CreateHsmInput) (req *request.Request // There is an upfront fee charged for each HSM instance that you create with // the CreateHsm operation. If you accidentally provision an HSM and want to // request a refund, delete the instance using the DeleteHsm operation, go to -// the AWS Support Center (https://console.aws.amazon.com/support/home#/), create +// the AWS Support Center (https://console.aws.amazon.com/support/home), create // a new case, and select Account and Billing Support. // // It can take up to 20 minutes to create and provision an HSM. You can monitor @@ -1939,6 +1939,7 @@ type CreateHsmInput struct { // Specifies the type of subscription for the HSM. // // * PRODUCTION - The HSM is being used in a production environment. + // // * TRIAL - The HSM is being used in a product trial. // // SubscriptionType is a required field @@ -2567,6 +2568,7 @@ type DescribeHsmOutput struct { // Specifies the type of subscription for the HSM. // // * PRODUCTION - The HSM is being used in a production environment. + // // * TRIAL - The HSM is being used in a product trial. SubscriptionType *string `type:"string" enum:"SubscriptionType"` @@ -3666,6 +3668,7 @@ const ( // Specifies the type of subscription for the HSM. // // * PRODUCTION - The HSM is being used in a production environment. +// // * TRIAL - The HSM is being used in a product trial. const ( // SubscriptionTypeProduction is a SubscriptionType enum value diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/doc.go b/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/doc.go index 1063e1c9..c057cfb1 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudhsm/doc.go @@ -3,7 +3,12 @@ // Package cloudhsm provides the client and types for making API // requests to Amazon CloudHSM. // -// AWS CloudHSM Service +// This is the reference for AWS CloudHSM Classic. For more information, see +// AWS CloudHSM Classic FAQs (http://aws.amazon.com/cloudhsm/faqs-classic/) +// and the AWS CloudHSM Classic User Guide (http://docs.aws.amazon.com/cloudhsm/classic/userguide/). +// +// For more information about AWS CloudHSM, see AWS CloudHSM (http://aws.amazon.com/cloudhsm/) +// and the AWS CloudHSM User Guide (http://docs.aws.amazon.com/cloudhsm/latest/userguide/). // // See https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30 for more information on this service. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudsearchdomain/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/cloudsearchdomain/customizations_test.go index 73b840da..602f6ccf 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudsearchdomain/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudsearchdomain/customizations_test.go @@ -3,8 +3,6 @@ package cloudsearchdomain_test import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/cloudsearchdomain" @@ -18,9 +16,15 @@ func TestRequireEndpointIfRegionProvided(t *testing.T) { req, _ := svc.SearchRequest(nil) err := req.Build() - assert.Equal(t, "", svc.Endpoint) - assert.Error(t, err) - assert.Equal(t, aws.ErrMissingEndpoint, err) + if e, a := "", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err == nil { + t.Errorf("expect error, got none") + } + if e, a := aws.ErrMissingEndpoint, err; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestRequireEndpointIfNoRegionProvided(t *testing.T) { @@ -30,9 +34,15 @@ func TestRequireEndpointIfNoRegionProvided(t *testing.T) { req, _ := svc.SearchRequest(nil) err := req.Build() - assert.Equal(t, "", svc.Endpoint) - assert.Error(t, err) - assert.Equal(t, aws.ErrMissingEndpoint, err) + if e, a := "", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err == nil { + t.Errorf("expect error, got none") + } + if e, a := aws.ErrMissingEndpoint, err; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestRequireEndpointUsed(t *testing.T) { @@ -44,6 +54,10 @@ func TestRequireEndpointUsed(t *testing.T) { req, _ := svc.SearchRequest(nil) err := req.Build() - assert.Equal(t, "https://endpoint", svc.Endpoint) - assert.NoError(t, err) + if e, a := "https://endpoint", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err != nil { + t.Errorf("expect no error, got %v", err) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go index b3f2f8a5..a6fc9303 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go @@ -12,6 +12,109 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" ) +const opAssociateKmsKey = "AssociateKmsKey" + +// AssociateKmsKeyRequest generates a "aws/request.Request" representing the +// client's request for the AssociateKmsKey operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See AssociateKmsKey for more information on using the AssociateKmsKey +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the AssociateKmsKeyRequest method. +// req, resp := client.AssociateKmsKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKey +func (c *CloudWatchLogs) AssociateKmsKeyRequest(input *AssociateKmsKeyInput) (req *request.Request, output *AssociateKmsKeyOutput) { + op := &request.Operation{ + Name: opAssociateKmsKey, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AssociateKmsKeyInput{} + } + + output = &AssociateKmsKeyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// AssociateKmsKey API operation for Amazon CloudWatch Logs. +// +// Associates the specified AWS Key Management Service (AWS KMS) customer master +// key (CMK) with the specified log group. +// +// Associating an AWS KMS CMK with a log group overrides any existing associations +// between the log group and a CMK. After a CMK is associated with a log group, +// all newly ingested data for the log group is encrypted using the CMK. This +// association is stored as long as the data encrypted with the CMK is still +// within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt +// this data whenever it is requested. +// +// Note that it can take up to 5 minutes for this operation to take effect. +// +// If you attempt to associate a CMK with a log group but the CMK does not exist +// or the CMK is disabled, you will receive an InvalidParameterException error. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation AssociateKmsKey for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterException "InvalidParameterException" +// A parameter is specified incorrectly. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource does not exist. +// +// * ErrCodeOperationAbortedException "OperationAbortedException" +// Multiple requests to update the same resource were in conflict. +// +// * ErrCodeServiceUnavailableException "ServiceUnavailableException" +// The service cannot complete the request. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKey +func (c *CloudWatchLogs) AssociateKmsKey(input *AssociateKmsKeyInput) (*AssociateKmsKeyOutput, error) { + req, out := c.AssociateKmsKeyRequest(input) + return out, req.Send() +} + +// AssociateKmsKeyWithContext is the same as AssociateKmsKey with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateKmsKey for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) AssociateKmsKeyWithContext(ctx aws.Context, input *AssociateKmsKeyInput, opts ...request.Option) (*AssociateKmsKeyOutput, error) { + req, out := c.AssociateKmsKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCancelExportTask = "CancelExportTask" // CancelExportTaskRequest generates a "aws/request.Request" representing the @@ -268,6 +371,16 @@ func (c *CloudWatchLogs) CreateLogGroupRequest(input *CreateLogGroupInput) (req // * Log group names consist of the following characters: a-z, A-Z, 0-9, // '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). // +// If you associate a AWS Key Management Service (AWS KMS) customer master key +// (CMK) with the log group, ingested data is encrypted using the CMK. This +// association is stored as long as the data encrypted with the CMK is still +// within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt +// this data whenever it is requested. +// +// If you attempt to associate a CMK with the log group but the CMK does not +// exist or the CMK is disabled, you will receive an InvalidParameterException +// error. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -1607,7 +1720,7 @@ func (c *CloudWatchLogs) DescribeMetricFiltersRequest(input *DescribeMetricFilte // DescribeMetricFilters API operation for Amazon CloudWatch Logs. // // Lists the specified metric filters. You can list all the metric filters or -// filter the results by log name, prefix, metric name, and metric namespace. +// filter the results by log name, prefix, metric name, or metric namespace. // The results are ASCII-sorted by filter name. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1924,6 +2037,104 @@ func (c *CloudWatchLogs) DescribeSubscriptionFiltersPagesWithContext(ctx aws.Con return p.Err() } +const opDisassociateKmsKey = "DisassociateKmsKey" + +// DisassociateKmsKeyRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateKmsKey operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DisassociateKmsKey for more information on using the DisassociateKmsKey +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DisassociateKmsKeyRequest method. +// req, resp := client.DisassociateKmsKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKey +func (c *CloudWatchLogs) DisassociateKmsKeyRequest(input *DisassociateKmsKeyInput) (req *request.Request, output *DisassociateKmsKeyOutput) { + op := &request.Operation{ + Name: opDisassociateKmsKey, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisassociateKmsKeyInput{} + } + + output = &DisassociateKmsKeyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DisassociateKmsKey API operation for Amazon CloudWatch Logs. +// +// Disassociates the associated AWS Key Management Service (AWS KMS) customer +// master key (CMK) from the specified log group. +// +// After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch +// Logs stops encrypting newly ingested data for the log group. All previously +// ingested data remains encrypted, and AWS CloudWatch Logs requires permissions +// for the CMK whenever the encrypted data is requested. +// +// Note that it can take up to 5 minutes for this operation to take effect. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation DisassociateKmsKey for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterException "InvalidParameterException" +// A parameter is specified incorrectly. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource does not exist. +// +// * ErrCodeOperationAbortedException "OperationAbortedException" +// Multiple requests to update the same resource were in conflict. +// +// * ErrCodeServiceUnavailableException "ServiceUnavailableException" +// The service cannot complete the request. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKey +func (c *CloudWatchLogs) DisassociateKmsKey(input *DisassociateKmsKeyInput) (*DisassociateKmsKeyOutput, error) { + req, out := c.DisassociateKmsKeyRequest(input) + return out, req.Send() +} + +// DisassociateKmsKeyWithContext is the same as DisassociateKmsKey with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateKmsKey for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) DisassociateKmsKeyWithContext(ctx aws.Context, input *DisassociateKmsKeyInput, opts ...request.Option) (*DisassociateKmsKeyOutput, error) { + req, out := c.DisassociateKmsKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opFilterLogEvents = "FilterLogEvents" // FilterLogEventsRequest generates a "aws/request.Request" representing the @@ -2127,7 +2338,7 @@ func (c *CloudWatchLogs) GetLogEventsRequest(input *GetLogEventsInput) (req *req // events or filter using a time range. // // By default, this operation returns as many log events as can fit in a response -// size of 1 MB (up to 10,000 log events). You can get additional log events +// size of 1MB (up to 10,000 log events). You can get additional log events // by specifying one of the tokens in a subsequent call. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -2265,8 +2476,6 @@ func (c *CloudWatchLogs) ListTagsLogGroupRequest(input *ListTagsLogGroupInput) ( // // Lists the tags for the specified log group. // -// To add tags, use TagLogGroup. To remove tags, use UntagLogGroup. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -3255,6 +3464,79 @@ func (c *CloudWatchLogs) UntagLogGroupWithContext(ctx aws.Context, input *UntagL return out, req.Send() } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKeyRequest +type AssociateKmsKeyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // For more information, see Amazon Resource Names - AWS Key Management Service + // (AWS KMS) (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms). + // + // KmsKeyId is a required field + KmsKeyId *string `locationName:"kmsKeyId" type:"string" required:"true"` + + // The name of the log group. + // + // LogGroupName is a required field + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateKmsKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateKmsKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateKmsKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateKmsKeyInput"} + if s.KmsKeyId == nil { + invalidParams.Add(request.NewErrParamRequired("KmsKeyId")) + } + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AssociateKmsKeyInput) SetKmsKeyId(v string) *AssociateKmsKeyInput { + s.KmsKeyId = &v + return s +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *AssociateKmsKeyInput) SetLogGroupName(v string) *AssociateKmsKeyInput { + s.LogGroupName = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKeyOutput +type AssociateKmsKeyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AssociateKmsKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateKmsKeyOutput) GoString() string { + return s.String() +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CancelExportTaskRequest type CancelExportTaskInput struct { _ struct{} `type:"structure"` @@ -3467,6 +3749,11 @@ func (s *CreateExportTaskOutput) SetTaskId(v string) *CreateExportTaskOutput { type CreateLogGroupInput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // For more information, see Amazon Resource Names - AWS Key Management Service + // (AWS KMS) (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms). + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The name of the log group. // // LogGroupName is a required field @@ -3505,6 +3792,12 @@ func (s *CreateLogGroupInput) Validate() error { return nil } +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *CreateLogGroupInput) SetKmsKeyId(v string) *CreateLogGroupInput { + s.KmsKeyId = &v + return s +} + // SetLogGroupName sets the LogGroupName field's value. func (s *CreateLogGroupInput) SetLogGroupName(v string) *CreateLogGroupInput { s.LogGroupName = &v @@ -4501,7 +4794,8 @@ type DescribeMetricFiltersInput struct { // The name of the log group. LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"` - // The name of the CloudWatch metric. + // The name of the CloudWatch metric to which the monitored log information + // should be published. For example, you may publish to a metric called ErrorCount. MetricName *string `locationName:"metricName" type:"string"` // The namespace of the CloudWatch metric. @@ -4886,6 +5180,63 @@ func (s *Destination) SetTargetArn(v string) *Destination { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKeyRequest +type DisassociateKmsKeyInput struct { + _ struct{} `type:"structure"` + + // The name of the log group. + // + // LogGroupName is a required field + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateKmsKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateKmsKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateKmsKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateKmsKeyInput"} + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *DisassociateKmsKeyInput) SetLogGroupName(v string) *DisassociateKmsKeyInput { + s.LogGroupName = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKeyOutput +type DisassociateKmsKeyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DisassociateKmsKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateKmsKeyOutput) GoString() string { + return s.String() +} + // Represents an export task. // Please also see https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ExportTask type ExportTask struct { @@ -5553,7 +5904,7 @@ func (s *ListTagsLogGroupInput) SetLogGroupName(v string) *ListTagsLogGroupInput type ListTagsLogGroupOutput struct { _ struct{} `type:"structure"` - // The tags. + // The tags for the log group. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } @@ -5585,6 +5936,9 @@ type LogGroup struct { // after Jan 1, 1970 00:00:00 UTC. CreationTime *int64 `locationName:"creationTime" type:"long"` + // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The name of the log group. LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"` @@ -5622,6 +5976,12 @@ func (s *LogGroup) SetCreationTime(v int64) *LogGroup { return s } +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *LogGroup) SetKmsKeyId(v string) *LogGroup { + s.KmsKeyId = &v + return s +} + // SetLogGroupName sets the LogGroupName field's value. func (s *LogGroup) SetLogGroupName(v string) *LogGroup { s.LogGroupName = &v @@ -6577,9 +6937,10 @@ type PutSubscriptionFilterInput struct { // DestinationArn is a required field DestinationArn *string `locationName:"destinationArn" min:"1" type:"string" required:"true"` - // The method used to distribute log data to the destination, when the destination - // is an Amazon Kinesis stream. By default, log data is grouped by log stream. - // For a more even distribution, you can group log data randomly. + // The method used to distribute log data to the destination. By default log + // data is grouped by log stream, but the grouping can be set to random for + // a more even distribution. This property is only applicable when the destination + // is an Amazon Kinesis stream. Distribution *string `locationName:"distribution" type:"string" enum:"Distribution"` // A name for the subscription filter. If you are updating an existing filter, @@ -6836,8 +7197,8 @@ type SubscriptionFilter struct { // The Amazon Resource Name (ARN) of the destination. DestinationArn *string `locationName:"destinationArn" min:"1" type:"string"` - // The method used to distribute log data to the destination, when the destination - // is an Amazon Kinesis stream. + // The method used to distribute log data to the destination, which can be either + // random or grouped by log stream. Distribution *string `locationName:"distribution" type:"string" enum:"Distribution"` // The name of the subscription filter. @@ -7138,6 +7499,8 @@ func (s UntagLogGroupOutput) GoString() string { return s.String() } +// The method used to distribute log data to the destination, which can be either +// random or grouped by log stream. const ( // DistributionRandom is a Distribution enum value DistributionRandom = "Random" diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface/interface.go index faf479f4..4975ea37 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon CloudWatch Logs. // func myFunc(svc cloudwatchlogsiface.CloudWatchLogsAPI) bool { -// // Make svc.CancelExportTask request +// // Make svc.AssociateKmsKey request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockCloudWatchLogsClient struct { // cloudwatchlogsiface.CloudWatchLogsAPI // } -// func (m *mockCloudWatchLogsClient) CancelExportTask(input *cloudwatchlogs.CancelExportTaskInput) (*cloudwatchlogs.CancelExportTaskOutput, error) { +// func (m *mockCloudWatchLogsClient) AssociateKmsKey(input *cloudwatchlogs.AssociateKmsKeyInput) (*cloudwatchlogs.AssociateKmsKeyOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type CloudWatchLogsAPI interface { + AssociateKmsKey(*cloudwatchlogs.AssociateKmsKeyInput) (*cloudwatchlogs.AssociateKmsKeyOutput, error) + AssociateKmsKeyWithContext(aws.Context, *cloudwatchlogs.AssociateKmsKeyInput, ...request.Option) (*cloudwatchlogs.AssociateKmsKeyOutput, error) + AssociateKmsKeyRequest(*cloudwatchlogs.AssociateKmsKeyInput) (*request.Request, *cloudwatchlogs.AssociateKmsKeyOutput) + CancelExportTask(*cloudwatchlogs.CancelExportTaskInput) (*cloudwatchlogs.CancelExportTaskOutput, error) CancelExportTaskWithContext(aws.Context, *cloudwatchlogs.CancelExportTaskInput, ...request.Option) (*cloudwatchlogs.CancelExportTaskOutput, error) CancelExportTaskRequest(*cloudwatchlogs.CancelExportTaskInput) (*request.Request, *cloudwatchlogs.CancelExportTaskOutput) @@ -147,6 +151,10 @@ type CloudWatchLogsAPI interface { DescribeSubscriptionFiltersPages(*cloudwatchlogs.DescribeSubscriptionFiltersInput, func(*cloudwatchlogs.DescribeSubscriptionFiltersOutput, bool) bool) error DescribeSubscriptionFiltersPagesWithContext(aws.Context, *cloudwatchlogs.DescribeSubscriptionFiltersInput, func(*cloudwatchlogs.DescribeSubscriptionFiltersOutput, bool) bool, ...request.Option) error + DisassociateKmsKey(*cloudwatchlogs.DisassociateKmsKeyInput) (*cloudwatchlogs.DisassociateKmsKeyOutput, error) + DisassociateKmsKeyWithContext(aws.Context, *cloudwatchlogs.DisassociateKmsKeyInput, ...request.Option) (*cloudwatchlogs.DisassociateKmsKeyOutput, error) + DisassociateKmsKeyRequest(*cloudwatchlogs.DisassociateKmsKeyInput) (*request.Request, *cloudwatchlogs.DisassociateKmsKeyOutput) + FilterLogEvents(*cloudwatchlogs.FilterLogEventsInput) (*cloudwatchlogs.FilterLogEventsOutput, error) FilterLogEventsWithContext(aws.Context, *cloudwatchlogs.FilterLogEventsInput, ...request.Option) (*cloudwatchlogs.FilterLogEventsOutput, error) FilterLogEventsRequest(*cloudwatchlogs.FilterLogEventsInput) (*request.Request, *cloudwatchlogs.FilterLogEventsOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go index c8545d37..e4b4bdb4 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go @@ -334,6 +334,106 @@ func (c *CodeBuild) CreateProjectWithContext(ctx aws.Context, input *CreateProje return out, req.Send() } +const opCreateWebhook = "CreateWebhook" + +// CreateWebhookRequest generates a "aws/request.Request" representing the +// client's request for the CreateWebhook operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateWebhook for more information on using the CreateWebhook +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateWebhookRequest method. +// req, resp := client.CreateWebhookRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhook +func (c *CodeBuild) CreateWebhookRequest(input *CreateWebhookInput) (req *request.Request, output *CreateWebhookOutput) { + op := &request.Operation{ + Name: opCreateWebhook, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateWebhookInput{} + } + + output = &CreateWebhookOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateWebhook API operation for AWS CodeBuild. +// +// For an existing AWS CodeBuild build project that has its source code stored +// in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding +// the source code every time a code change is pushed to the repository. +// +// If you enable webhooks for an AWS CodeBuild project, and the project is used +// as a build step in AWS CodePipeline, then two identical builds will be created +// for each commit. One build is triggered through webhooks, and one through +// AWS CodePipeline. Because billing is on a per-build basis, you will be billed +// for both builds. Therefore, if you are using AWS CodePipeline, we recommend +// that you disable webhooks in CodeBuild. In the AWS CodeBuild console, clear +// the Webhook box. For more information, see step 9 in Change a Build Project’s +// Settings (http://docs.aws.amazon.com/codebuild/latest/userguide/change-project.html#change-project-console). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS CodeBuild's +// API operation CreateWebhook for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidInputException "InvalidInputException" +// The input value that was provided is not valid. +// +// * ErrCodeOAuthProviderException "OAuthProviderException" +// There was a problem with the underlying OAuth provider. +// +// * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException" +// The specified AWS resource cannot be created, because an AWS resource with +// the same settings already exists. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified AWS resource cannot be found. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhook +func (c *CodeBuild) CreateWebhook(input *CreateWebhookInput) (*CreateWebhookOutput, error) { + req, out := c.CreateWebhookRequest(input) + return out, req.Send() +} + +// CreateWebhookWithContext is the same as CreateWebhook with the addition of +// the ability to pass a context and additional request options. +// +// See CreateWebhook for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeBuild) CreateWebhookWithContext(ctx aws.Context, input *CreateWebhookInput, opts ...request.Option) (*CreateWebhookOutput, error) { + req, out := c.CreateWebhookRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteProject = "DeleteProject" // DeleteProjectRequest generates a "aws/request.Request" representing the @@ -413,6 +513,93 @@ func (c *CodeBuild) DeleteProjectWithContext(ctx aws.Context, input *DeleteProje return out, req.Send() } +const opDeleteWebhook = "DeleteWebhook" + +// DeleteWebhookRequest generates a "aws/request.Request" representing the +// client's request for the DeleteWebhook operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteWebhook for more information on using the DeleteWebhook +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteWebhookRequest method. +// req, resp := client.DeleteWebhookRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhook +func (c *CodeBuild) DeleteWebhookRequest(input *DeleteWebhookInput) (req *request.Request, output *DeleteWebhookOutput) { + op := &request.Operation{ + Name: opDeleteWebhook, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteWebhookInput{} + } + + output = &DeleteWebhookOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteWebhook API operation for AWS CodeBuild. +// +// For an existing AWS CodeBuild build project that has its source code stored +// in a GitHub repository, stops AWS CodeBuild from automatically rebuilding +// the source code every time a code change is pushed to the repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS CodeBuild's +// API operation DeleteWebhook for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidInputException "InvalidInputException" +// The input value that was provided is not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified AWS resource cannot be found. +// +// * ErrCodeOAuthProviderException "OAuthProviderException" +// There was a problem with the underlying OAuth provider. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhook +func (c *CodeBuild) DeleteWebhook(input *DeleteWebhookInput) (*DeleteWebhookOutput, error) { + req, out := c.DeleteWebhookRequest(input) + return out, req.Send() +} + +// DeleteWebhookWithContext is the same as DeleteWebhook with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteWebhook for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeBuild) DeleteWebhookWithContext(ctx aws.Context, input *DeleteWebhookInput, opts ...request.Option) (*DeleteWebhookOutput, error) { + req, out := c.DeleteWebhookRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListBuilds = "ListBuilds" // ListBuildsRequest generates a "aws/request.Request" representing the @@ -1778,6 +1965,73 @@ func (s *CreateProjectOutput) SetProject(v *Project) *CreateProjectOutput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhookInput +type CreateWebhookInput struct { + _ struct{} `type:"structure"` + + // The name of the build project. + // + // ProjectName is a required field + ProjectName *string `locationName:"projectName" min:"2" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateWebhookInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateWebhookInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateWebhookInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateWebhookInput"} + if s.ProjectName == nil { + invalidParams.Add(request.NewErrParamRequired("ProjectName")) + } + if s.ProjectName != nil && len(*s.ProjectName) < 2 { + invalidParams.Add(request.NewErrParamMinLen("ProjectName", 2)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProjectName sets the ProjectName field's value. +func (s *CreateWebhookInput) SetProjectName(v string) *CreateWebhookInput { + s.ProjectName = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhookOutput +type CreateWebhookOutput struct { + _ struct{} `type:"structure"` + + // Information about a webhook in GitHub that connects repository events to + // a build project in AWS CodeBuild. + Webhook *Webhook `locationName:"webhook" type:"structure"` +} + +// String returns the string representation +func (s CreateWebhookOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateWebhookOutput) GoString() string { + return s.String() +} + +// SetWebhook sets the Webhook field's value. +func (s *CreateWebhookOutput) SetWebhook(v *Webhook) *CreateWebhookOutput { + s.Webhook = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteProjectInput type DeleteProjectInput struct { _ struct{} `type:"structure"` @@ -1835,6 +2089,63 @@ func (s DeleteProjectOutput) GoString() string { return s.String() } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhookInput +type DeleteWebhookInput struct { + _ struct{} `type:"structure"` + + // The name of the build project. + // + // ProjectName is a required field + ProjectName *string `locationName:"projectName" min:"2" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteWebhookInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteWebhookInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteWebhookInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteWebhookInput"} + if s.ProjectName == nil { + invalidParams.Add(request.NewErrParamRequired("ProjectName")) + } + if s.ProjectName != nil && len(*s.ProjectName) < 2 { + invalidParams.Add(request.NewErrParamMinLen("ProjectName", 2)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProjectName sets the ProjectName field's value. +func (s *DeleteWebhookInput) SetProjectName(v string) *DeleteWebhookInput { + s.ProjectName = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhookOutput +type DeleteWebhookOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteWebhookOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteWebhookOutput) GoString() string { + return s.String() +} + // Information about a Docker image that is managed by AWS CodeBuild. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/EnvironmentImage type EnvironmentImage struct { @@ -2484,6 +2795,10 @@ type Project struct { // before timing out any related build that did not get marked as completed. // The default is 60 minutes. TimeoutInMinutes *int64 `locationName:"timeoutInMinutes" min:"5" type:"integer"` + + // Information about a webhook in GitHub that connects repository events to + // a build project in AWS CodeBuild. + Webhook *Webhook `locationName:"webhook" type:"structure"` } // String returns the string representation @@ -2568,6 +2883,12 @@ func (s *Project) SetTimeoutInMinutes(v int64) *Project { return s } +// SetWebhook sets the Webhook field's value. +func (s *Project) SetWebhook(v *Webhook) *Project { + s.Webhook = v + return s +} + // Information about the build output artifacts for the build project. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectArtifacts type ProjectArtifacts struct { @@ -3495,6 +3816,32 @@ func (s *UpdateProjectOutput) SetProject(v *Project) *UpdateProjectOutput { return s } +// Information about a webhook in GitHub that connects repository events to +// a build project in AWS CodeBuild. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/Webhook +type Webhook struct { + _ struct{} `type:"structure"` + + // The URL to the webhook. + Url *string `locationName:"url" min:"1" type:"string"` +} + +// String returns the string representation +func (s Webhook) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Webhook) GoString() string { + return s.String() +} + +// SetUrl sets the Url field's value. +func (s *Webhook) SetUrl(v string) *Webhook { + s.Url = &v + return s +} + const ( // ArtifactNamespaceNone is a ArtifactNamespace enum value ArtifactNamespaceNone = "NONE" diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/codebuildiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/codebuildiface/interface.go index 30ceeb49..995f8098 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/codebuildiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/codebuildiface/interface.go @@ -76,10 +76,18 @@ type CodeBuildAPI interface { CreateProjectWithContext(aws.Context, *codebuild.CreateProjectInput, ...request.Option) (*codebuild.CreateProjectOutput, error) CreateProjectRequest(*codebuild.CreateProjectInput) (*request.Request, *codebuild.CreateProjectOutput) + CreateWebhook(*codebuild.CreateWebhookInput) (*codebuild.CreateWebhookOutput, error) + CreateWebhookWithContext(aws.Context, *codebuild.CreateWebhookInput, ...request.Option) (*codebuild.CreateWebhookOutput, error) + CreateWebhookRequest(*codebuild.CreateWebhookInput) (*request.Request, *codebuild.CreateWebhookOutput) + DeleteProject(*codebuild.DeleteProjectInput) (*codebuild.DeleteProjectOutput, error) DeleteProjectWithContext(aws.Context, *codebuild.DeleteProjectInput, ...request.Option) (*codebuild.DeleteProjectOutput, error) DeleteProjectRequest(*codebuild.DeleteProjectInput) (*request.Request, *codebuild.DeleteProjectOutput) + DeleteWebhook(*codebuild.DeleteWebhookInput) (*codebuild.DeleteWebhookOutput, error) + DeleteWebhookWithContext(aws.Context, *codebuild.DeleteWebhookInput, ...request.Option) (*codebuild.DeleteWebhookOutput, error) + DeleteWebhookRequest(*codebuild.DeleteWebhookInput) (*request.Request, *codebuild.DeleteWebhookOutput) + ListBuilds(*codebuild.ListBuildsInput) (*codebuild.ListBuildsOutput, error) ListBuildsWithContext(aws.Context, *codebuild.ListBuildsInput, ...request.Option) (*codebuild.ListBuildsOutput, error) ListBuildsRequest(*codebuild.ListBuildsInput) (*request.Request, *codebuild.ListBuildsOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/doc.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/doc.go index c901dce7..540e79e8 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/doc.go @@ -7,7 +7,7 @@ // compiles your source code, runs unit tests, and produces artifacts that are // ready to deploy. AWS CodeBuild eliminates the need to provision, manage, // and scale your own build servers. It provides prepackaged build environments -// for the most popular programming languages and build tools, such as Apach +// for the most popular programming languages and build tools, such as Apache // Maven, Gradle, and more. You can also fully customize build environments // in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically // to meet peak build requests, and you pay only for the build time you consume. @@ -28,8 +28,18 @@ // // * CreateProject: Creates a build project. // +// * CreateWebhook: For an existing AWS CodeBuild build project that has +// its source code stored in a GitHub repository, enables AWS CodeBuild to +// begin automatically rebuilding the source code every time a code change +// is pushed to the repository. +// // * DeleteProject: Deletes a build project. // +// * DeleteWebhook: For an existing AWS CodeBuild build project that has +// its source code stored in a GitHub repository, stops AWS CodeBuild from +// automatically rebuilding the source code every time a code change is pushed +// to the repository. +// // * ListProjects: Gets a list of build project names, with each build project // name representing a single build project. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/errors.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/errors.go index 2b91b700..eba0333f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/errors.go @@ -16,6 +16,12 @@ const ( // The input value that was provided is not valid. ErrCodeInvalidInputException = "InvalidInputException" + // ErrCodeOAuthProviderException for service response error code + // "OAuthProviderException". + // + // There was a problem with the underlying OAuth provider. + ErrCodeOAuthProviderException = "OAuthProviderException" + // ErrCodeResourceAlreadyExistsException for service response error code // "ResourceAlreadyExistsException". // diff --git a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go index df74b230..9ac88fcc 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go @@ -2440,7 +2440,7 @@ func (s *AWSSessionCredentials) SetSessionToken(v string) *AWSSessionCredentials return s } -// Represents the input of an acknowledge job action. +// Represents the input of an AcknowledgeJob action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeJobInput type AcknowledgeJobInput struct { _ struct{} `type:"structure"` @@ -2496,7 +2496,7 @@ func (s *AcknowledgeJobInput) SetNonce(v string) *AcknowledgeJobInput { return s } -// Represents the output of an acknowledge job action. +// Represents the output of an AcknowledgeJob action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeJobOutput type AcknowledgeJobOutput struct { _ struct{} `type:"structure"` @@ -2521,7 +2521,7 @@ func (s *AcknowledgeJobOutput) SetStatus(v string) *AcknowledgeJobOutput { return s } -// Represents the input of an acknowledge third party job action. +// Represents the input of an AcknowledgeThirdPartyJob action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeThirdPartyJobInput type AcknowledgeThirdPartyJobInput struct { _ struct{} `type:"structure"` @@ -2530,7 +2530,7 @@ type AcknowledgeThirdPartyJobInput struct { // that the calling entity is allowed access to the job and its details. // // ClientToken is a required field - ClientToken *string `locationName:"clientToken" type:"string" required:"true"` + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true"` // The unique system-generated ID of the job. // @@ -2561,6 +2561,9 @@ func (s *AcknowledgeThirdPartyJobInput) Validate() error { if s.ClientToken == nil { invalidParams.Add(request.NewErrParamRequired("ClientToken")) } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } if s.JobId == nil { invalidParams.Add(request.NewErrParamRequired("JobId")) } @@ -2595,7 +2598,7 @@ func (s *AcknowledgeThirdPartyJobInput) SetNonce(v string) *AcknowledgeThirdPart return s } -// Represents the output of an acknowledge third party job action. +// Represents the output of an AcknowledgeThirdPartyJob action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeThirdPartyJobOutput type AcknowledgeThirdPartyJobOutput struct { _ struct{} `type:"structure"` @@ -2664,7 +2667,7 @@ type ActionConfigurationProperty struct { // Name is a required field Name *string `locationName:"name" min:"1" type:"string" required:"true"` - // Indicates that the proprety will be used in conjunction with PollForJobs. + // Indicates that the property will be used in conjunction with PollForJobs. // When creating a custom action, an action can have up to one queryable property. // If it has one, that property must be both required and not secret. // @@ -3818,7 +3821,7 @@ func (s *BlockerDeclaration) SetType(v string) *BlockerDeclaration { return s } -// Represents the input of a create custom action operation. +// Represents the input of a CreateCustomActionType operation. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreateCustomActionTypeInput type CreateCustomActionTypeInput struct { _ struct{} `type:"structure"` @@ -3971,7 +3974,7 @@ func (s *CreateCustomActionTypeInput) SetVersion(v string) *CreateCustomActionTy return s } -// Represents the output of a create custom action operation. +// Represents the output of a CreateCustomActionType operation. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreateCustomActionTypeOutput type CreateCustomActionTypeOutput struct { _ struct{} `type:"structure"` @@ -3998,7 +4001,7 @@ func (s *CreateCustomActionTypeOutput) SetActionType(v *ActionType) *CreateCusto return s } -// Represents the input of a create pipeline action. +// Represents the input of a CreatePipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreatePipelineInput type CreatePipelineInput struct { _ struct{} `type:"structure"` @@ -4043,7 +4046,7 @@ func (s *CreatePipelineInput) SetPipeline(v *PipelineDeclaration) *CreatePipelin return s } -// Represents the output of a create pipeline action. +// Represents the output of a CreatePipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreatePipelineOutput type CreatePipelineOutput struct { _ struct{} `type:"structure"` @@ -4150,7 +4153,7 @@ func (s *CurrentRevision) SetRevisionSummary(v string) *CurrentRevision { return s } -// Represents the input of a delete custom action operation. The custom action +// Represents the input of a DeleteCustomActionType operation. The custom action // will be marked as deleted. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeleteCustomActionTypeInput type DeleteCustomActionTypeInput struct { @@ -4241,7 +4244,7 @@ func (s DeleteCustomActionTypeOutput) GoString() string { return s.String() } -// Represents the input of a delete pipeline action. +// Represents the input of a DeletePipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeletePipelineInput type DeletePipelineInput struct { _ struct{} `type:"structure"` @@ -4299,7 +4302,7 @@ func (s DeletePipelineOutput) GoString() string { return s.String() } -// Represents the input of a disable stage transition input action. +// Represents the input of a DisableStageTransition action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DisableStageTransitionInput type DisableStageTransitionInput struct { _ struct{} `type:"structure"` @@ -4412,7 +4415,7 @@ func (s DisableStageTransitionOutput) GoString() string { return s.String() } -// Represents the input of an enable stage transition action. +// Represents the input of an EnableStageTransition action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/EnableStageTransitionInput type EnableStageTransitionInput struct { _ struct{} `type:"structure"` @@ -4724,7 +4727,7 @@ func (s *FailureDetails) SetType(v string) *FailureDetails { return s } -// Represents the input of a get job details action. +// Represents the input of a GetJobDetails action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetJobDetailsInput type GetJobDetailsInput struct { _ struct{} `type:"structure"` @@ -4764,7 +4767,7 @@ func (s *GetJobDetailsInput) SetJobId(v string) *GetJobDetailsInput { return s } -// Represents the output of a get job details action. +// Represents the output of a GetJobDetails action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetJobDetailsOutput type GetJobDetailsOutput struct { _ struct{} `type:"structure"` @@ -4792,7 +4795,7 @@ func (s *GetJobDetailsOutput) SetJobDetails(v *JobDetails) *GetJobDetailsOutput return s } -// Represents the input of a get pipeline execution action. +// Represents the input of a GetPipelineExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineExecutionInput type GetPipelineExecutionInput struct { _ struct{} `type:"structure"` @@ -4849,7 +4852,7 @@ func (s *GetPipelineExecutionInput) SetPipelineName(v string) *GetPipelineExecut return s } -// Represents the output of a get pipeline execution action. +// Represents the output of a GetPipelineExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineExecutionOutput type GetPipelineExecutionOutput struct { _ struct{} `type:"structure"` @@ -4874,7 +4877,7 @@ func (s *GetPipelineExecutionOutput) SetPipelineExecution(v *PipelineExecution) return s } -// Represents the input of a get pipeline action. +// Represents the input of a GetPipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineInput type GetPipelineInput struct { _ struct{} `type:"structure"` @@ -4931,11 +4934,15 @@ func (s *GetPipelineInput) SetVersion(v int64) *GetPipelineInput { return s } -// Represents the output of a get pipeline action. +// Represents the output of a GetPipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineOutput type GetPipelineOutput struct { _ struct{} `type:"structure"` + // Represents the pipeline metadata information returned as part of the output + // of a GetPipeline action. + Metadata *PipelineMetadata `locationName:"metadata" type:"structure"` + // Represents the structure of actions and stages to be performed in the pipeline. Pipeline *PipelineDeclaration `locationName:"pipeline" type:"structure"` } @@ -4950,13 +4957,19 @@ func (s GetPipelineOutput) GoString() string { return s.String() } +// SetMetadata sets the Metadata field's value. +func (s *GetPipelineOutput) SetMetadata(v *PipelineMetadata) *GetPipelineOutput { + s.Metadata = v + return s +} + // SetPipeline sets the Pipeline field's value. func (s *GetPipelineOutput) SetPipeline(v *PipelineDeclaration) *GetPipelineOutput { s.Pipeline = v return s } -// Represents the input of a get pipeline state action. +// Represents the input of a GetPipelineState action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineStateInput type GetPipelineStateInput struct { _ struct{} `type:"structure"` @@ -4999,7 +5012,7 @@ func (s *GetPipelineStateInput) SetName(v string) *GetPipelineStateInput { return s } -// Represents the output of a get pipeline state action. +// Represents the output of a GetPipelineState action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineStateOutput type GetPipelineStateOutput struct { _ struct{} `type:"structure"` @@ -5063,7 +5076,7 @@ func (s *GetPipelineStateOutput) SetUpdated(v time.Time) *GetPipelineStateOutput return s } -// Represents the input of a get third party job details action. +// Represents the input of a GetThirdPartyJobDetails action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetThirdPartyJobDetailsInput type GetThirdPartyJobDetailsInput struct { _ struct{} `type:"structure"` @@ -5072,7 +5085,7 @@ type GetThirdPartyJobDetailsInput struct { // that the calling entity is allowed access to the job and its details. // // ClientToken is a required field - ClientToken *string `locationName:"clientToken" type:"string" required:"true"` + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true"` // The unique system-generated ID used for identifying the job. // @@ -5096,6 +5109,9 @@ func (s *GetThirdPartyJobDetailsInput) Validate() error { if s.ClientToken == nil { invalidParams.Add(request.NewErrParamRequired("ClientToken")) } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } if s.JobId == nil { invalidParams.Add(request.NewErrParamRequired("JobId")) } @@ -5121,7 +5137,7 @@ func (s *GetThirdPartyJobDetailsInput) SetJobId(v string) *GetThirdPartyJobDetai return s } -// Represents the output of a get third party job details action. +// Represents the output of a GetThirdPartyJobDetails action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetThirdPartyJobDetailsOutput type GetThirdPartyJobDetailsOutput struct { _ struct{} `type:"structure"` @@ -5388,7 +5404,7 @@ func (s *JobDetails) SetId(v string) *JobDetails { return s } -// Represents the input of a list action types action. +// Represents the input of a ListActionTypes action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListActionTypesInput type ListActionTypesInput struct { _ struct{} `type:"structure"` @@ -5398,7 +5414,7 @@ type ListActionTypesInput struct { // An identifier that was returned from the previous list action types call, // which can be used to return the next set of action types in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -5411,6 +5427,19 @@ func (s ListActionTypesInput) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListActionTypesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListActionTypesInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetActionOwnerFilter sets the ActionOwnerFilter field's value. func (s *ListActionTypesInput) SetActionOwnerFilter(v string) *ListActionTypesInput { s.ActionOwnerFilter = &v @@ -5423,7 +5452,7 @@ func (s *ListActionTypesInput) SetNextToken(v string) *ListActionTypesInput { return s } -// Represents the output of a list action types action. +// Represents the output of a ListActionTypes action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListActionTypesOutput type ListActionTypesOutput struct { _ struct{} `type:"structure"` @@ -5436,7 +5465,7 @@ type ListActionTypesOutput struct { // If the amount of returned information is significantly large, an identifier // is also returned which can be used in a subsequent list action types call // to return the next set of action types in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -5461,7 +5490,7 @@ func (s *ListActionTypesOutput) SetNextToken(v string) *ListActionTypesOutput { return s } -// Represents the input of a list pipeline executions action. +// Represents the input of a ListPipelineExecutions action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelineExecutionsInput type ListPipelineExecutionsInput struct { _ struct{} `type:"structure"` @@ -5472,9 +5501,9 @@ type ListPipelineExecutionsInput struct { // based on pipeline execution start times. Default value is 100. MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` - // The token that was returned from the previous list pipeline executions call, + // The token that was returned from the previous ListPipelineExecutions call, // which can be used to return the next set of pipeline executions in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The name of the pipeline for which you want to get execution summary information. // @@ -5498,6 +5527,9 @@ func (s *ListPipelineExecutionsInput) Validate() error { if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } if s.PipelineName == nil { invalidParams.Add(request.NewErrParamRequired("PipelineName")) } @@ -5529,16 +5561,15 @@ func (s *ListPipelineExecutionsInput) SetPipelineName(v string) *ListPipelineExe return s } -// Represents the output of a list pipeline executions action. +// Represents the output of a ListPipelineExecutions action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelineExecutionsOutput type ListPipelineExecutionsOutput struct { _ struct{} `type:"structure"` - // A token that can be used in the next list pipeline executions call to return - // the next set of pipeline executions. To view all items in the list, continue - // to call this operation with each subsequent token until no more nextToken - // values are returned. - NextToken *string `locationName:"nextToken" type:"string"` + // A token that can be used in the next ListPipelineExecutions call. To view + // all items in the list, continue to call this operation with each subsequent + // token until no more nextToken values are returned. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // A list of executions in the history of a pipeline. PipelineExecutionSummaries []*PipelineExecutionSummary `locationName:"pipelineExecutionSummaries" type:"list"` @@ -5566,14 +5597,14 @@ func (s *ListPipelineExecutionsOutput) SetPipelineExecutionSummaries(v []*Pipeli return s } -// Represents the input of a list pipelines action. +// Represents the input of a ListPipelines action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelinesInput type ListPipelinesInput struct { _ struct{} `type:"structure"` // An identifier that was returned from the previous list pipelines call, which // can be used to return the next set of pipelines in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -5586,13 +5617,26 @@ func (s ListPipelinesInput) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPipelinesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListPipelinesInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetNextToken sets the NextToken field's value. func (s *ListPipelinesInput) SetNextToken(v string) *ListPipelinesInput { s.NextToken = &v return s } -// Represents the output of a list pipelines action. +// Represents the output of a ListPipelines action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelinesOutput type ListPipelinesOutput struct { _ struct{} `type:"structure"` @@ -5600,7 +5644,7 @@ type ListPipelinesOutput struct { // If the amount of returned information is significantly large, an identifier // is also returned which can be used in a subsequent list pipelines call to // return the next set of pipelines in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The list of pipelines. Pipelines []*PipelineSummary `locationName:"pipelines" type:"list"` @@ -5684,8 +5728,7 @@ func (s *OutputArtifact) SetName(v string) *OutputArtifact { type PipelineContext struct { _ struct{} `type:"structure"` - // Represents the context of an action within the stage of a pipeline to a job - // worker. + // The context of an action to a job worker within the stage of a pipeline. Action *ActionContext `locationName:"action" type:"structure"` // The name of the pipeline. This is a user-specified value. Pipeline names @@ -5729,8 +5772,8 @@ func (s *PipelineContext) SetStage(v *StageContext) *PipelineContext { type PipelineDeclaration struct { _ struct{} `type:"structure"` - // Represents the context of an action within the stage of a pipeline to a job - // worker. + // Represents information about the Amazon S3 bucket where artifacts are stored + // for the pipeline. // // ArtifactStore is a required field ArtifactStore *ArtifactStore `locationName:"artifactStore" type:"structure" required:"true"` @@ -5861,13 +5904,13 @@ type PipelineExecution struct { // // * InProgress: The pipeline execution is currently running. // - // * Succeeded: The pipeline execution completed successfully. + // * Succeeded: The pipeline execution was completed successfully. // // * Superseded: While this pipeline execution was waiting for the next stage - // to be completed, a newer pipeline execution caught up and continued through + // to be completed, a newer pipeline execution advanced and continued through // the pipeline instead. // - // * Failed: The pipeline execution did not complete successfully. + // * Failed: The pipeline execution was not completed successfully. Status *string `locationName:"status" type:"string" enum:"PipelineExecutionStatus"` } @@ -5930,13 +5973,13 @@ type PipelineExecutionSummary struct { // // * InProgress: The pipeline execution is currently running. // - // * Succeeded: The pipeline execution completed successfully. + // * Succeeded: The pipeline execution was completed successfully. // // * Superseded: While this pipeline execution was waiting for the next stage - // to be completed, a newer pipeline execution caught up and continued through + // to be completed, a newer pipeline execution advanced and continued through // the pipeline instead. // - // * Failed: The pipeline execution did not complete successfully. + // * Failed: The pipeline execution was not completed successfully. Status *string `locationName:"status" type:"string" enum:"PipelineExecutionStatus"` } @@ -5974,6 +6017,49 @@ func (s *PipelineExecutionSummary) SetStatus(v string) *PipelineExecutionSummary return s } +// Information about a pipeline. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineMetadata +type PipelineMetadata struct { + _ struct{} `type:"structure"` + + // The date and time the pipeline was created, in timestamp format. + Created *time.Time `locationName:"created" type:"timestamp" timestampFormat:"unix"` + + // The Amazon Resource Name (ARN) of the pipeline. + PipelineArn *string `locationName:"pipelineArn" type:"string"` + + // The date and time the pipeline was last updated, in timestamp format. + Updated *time.Time `locationName:"updated" type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s PipelineMetadata) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PipelineMetadata) GoString() string { + return s.String() +} + +// SetCreated sets the Created field's value. +func (s *PipelineMetadata) SetCreated(v time.Time) *PipelineMetadata { + s.Created = &v + return s +} + +// SetPipelineArn sets the PipelineArn field's value. +func (s *PipelineMetadata) SetPipelineArn(v string) *PipelineMetadata { + s.PipelineArn = &v + return s +} + +// SetUpdated sets the Updated field's value. +func (s *PipelineMetadata) SetUpdated(v time.Time) *PipelineMetadata { + s.Updated = &v + return s +} + // Returns a summary of a pipeline. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineSummary type PipelineSummary struct { @@ -6026,7 +6112,7 @@ func (s *PipelineSummary) SetVersion(v int64) *PipelineSummary { return s } -// Represents the input of a poll for jobs action. +// Represents the input of a PollForJobs action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForJobsInput type PollForJobsInput struct { _ struct{} `type:"structure"` @@ -6095,7 +6181,7 @@ func (s *PollForJobsInput) SetQueryParam(v map[string]*string) *PollForJobsInput return s } -// Represents the output of a poll for jobs action. +// Represents the output of a PollForJobs action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForJobsOutput type PollForJobsOutput struct { _ struct{} `type:"structure"` @@ -6120,7 +6206,7 @@ func (s *PollForJobsOutput) SetJobs(v []*Job) *PollForJobsOutput { return s } -// Represents the input of a poll for third party jobs action. +// Represents the input of a PollForThirdPartyJobs action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForThirdPartyJobsInput type PollForThirdPartyJobsInput struct { _ struct{} `type:"structure"` @@ -6177,7 +6263,7 @@ func (s *PollForThirdPartyJobsInput) SetMaxBatchSize(v int64) *PollForThirdParty return s } -// Represents the output of a poll for third party jobs action. +// Represents the output of a PollForThirdPartyJobs action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForThirdPartyJobsOutput type PollForThirdPartyJobsOutput struct { _ struct{} `type:"structure"` @@ -6202,7 +6288,7 @@ func (s *PollForThirdPartyJobsOutput) SetJobs(v []*ThirdPartyJob) *PollForThirdP return s } -// Represents the input of a put action revision action. +// Represents the input of a PutActionRevision action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutActionRevisionInput type PutActionRevisionInput struct { _ struct{} `type:"structure"` @@ -6298,7 +6384,7 @@ func (s *PutActionRevisionInput) SetStageName(v string) *PutActionRevisionInput return s } -// Represents the output of a put action revision action. +// Represents the output of a PutActionRevision action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutActionRevisionOutput type PutActionRevisionOutput struct { _ struct{} `type:"structure"` @@ -6333,7 +6419,7 @@ func (s *PutActionRevisionOutput) SetPipelineExecutionId(v string) *PutActionRev return s } -// Represents the input of a put approval result action. +// Represents the input of a PutApprovalResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutApprovalResultInput type PutApprovalResultInput struct { _ struct{} `type:"structure"` @@ -6446,7 +6532,7 @@ func (s *PutApprovalResultInput) SetToken(v string) *PutApprovalResultInput { return s } -// Represents the output of a put approval result action. +// Represents the output of a PutApprovalResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutApprovalResultOutput type PutApprovalResultOutput struct { _ struct{} `type:"structure"` @@ -6471,7 +6557,7 @@ func (s *PutApprovalResultOutput) SetApprovedAt(v time.Time) *PutApprovalResultO return s } -// Represents the input of a put job failure result action. +// Represents the input of a PutJobFailureResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobFailureResultInput type PutJobFailureResultInput struct { _ struct{} `type:"structure"` @@ -6546,7 +6632,7 @@ func (s PutJobFailureResultOutput) GoString() string { return s.String() } -// Represents the input of a put job success result action. +// Represents the input of a PutJobSuccessResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobSuccessResultInput type PutJobSuccessResultInput struct { _ struct{} `type:"structure"` @@ -6646,7 +6732,7 @@ func (s PutJobSuccessResultOutput) GoString() string { return s.String() } -// Represents the input of a third party job failure result action. +// Represents the input of a PutThirdPartyJobFailureResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobFailureResultInput type PutThirdPartyJobFailureResultInput struct { _ struct{} `type:"structure"` @@ -6655,7 +6741,7 @@ type PutThirdPartyJobFailureResultInput struct { // that the calling entity is allowed access to the job and its details. // // ClientToken is a required field - ClientToken *string `locationName:"clientToken" type:"string" required:"true"` + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true"` // Represents information about failure details. // @@ -6684,6 +6770,9 @@ func (s *PutThirdPartyJobFailureResultInput) Validate() error { if s.ClientToken == nil { invalidParams.Add(request.NewErrParamRequired("ClientToken")) } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } if s.FailureDetails == nil { invalidParams.Add(request.NewErrParamRequired("FailureDetails")) } @@ -6738,7 +6827,7 @@ func (s PutThirdPartyJobFailureResultOutput) GoString() string { return s.String() } -// Represents the input of a put third party job success result action. +// Represents the input of a PutThirdPartyJobSuccessResult action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobSuccessResultInput type PutThirdPartyJobSuccessResultInput struct { _ struct{} `type:"structure"` @@ -6747,7 +6836,7 @@ type PutThirdPartyJobSuccessResultInput struct { // that the calling entity is allowed access to the job and its details. // // ClientToken is a required field - ClientToken *string `locationName:"clientToken" type:"string" required:"true"` + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true"` // A token generated by a job worker, such as an AWS CodeDeploy deployment ID, // that a successful job provides to identify a partner action in progress. @@ -6787,6 +6876,9 @@ func (s *PutThirdPartyJobSuccessResultInput) Validate() error { if s.ClientToken == nil { invalidParams.Add(request.NewErrParamRequired("ClientToken")) } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } if s.JobId == nil { invalidParams.Add(request.NewErrParamRequired("JobId")) } @@ -6855,7 +6947,7 @@ func (s PutThirdPartyJobSuccessResultOutput) GoString() string { return s.String() } -// Represents the input of a retry stage execution action. +// Represents the input of a RetryStageExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/RetryStageExecutionInput type RetryStageExecutionInput struct { _ struct{} `type:"structure"` @@ -6945,7 +7037,7 @@ func (s *RetryStageExecutionInput) SetStageName(v string) *RetryStageExecutionIn return s } -// Represents the output of a retry stage execution action. +// Represents the output of a RetryStageExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/RetryStageExecutionOutput type RetryStageExecutionOutput struct { _ struct{} `type:"structure"` @@ -7212,7 +7304,7 @@ func (s *StageState) SetStageName(v string) *StageState { return s } -// Represents the input of a start pipeline execution action. +// Represents the input of a StartPipelineExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StartPipelineExecutionInput type StartPipelineExecutionInput struct { _ struct{} `type:"structure"` @@ -7255,7 +7347,7 @@ func (s *StartPipelineExecutionInput) SetName(v string) *StartPipelineExecutionI return s } -// Represents the output of a start pipeline execution action. +// Represents the output of a StartPipelineExecution action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StartPipelineExecutionOutput type StartPipelineExecutionOutput struct { _ struct{} `type:"structure"` @@ -7515,7 +7607,7 @@ func (s *TransitionState) SetLastChangedBy(v string) *TransitionState { return s } -// Represents the input of an update pipeline action. +// Represents the input of an UpdatePipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/UpdatePipelineInput type UpdatePipelineInput struct { _ struct{} `type:"structure"` @@ -7560,7 +7652,7 @@ func (s *UpdatePipelineInput) SetPipeline(v *PipelineDeclaration) *UpdatePipelin return s } -// Represents the output of an update pipeline action. +// Represents the output of an UpdatePipeline action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/UpdatePipelineOutput type UpdatePipelineOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/doc.go b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/doc.go index fc9b4955..4761a982 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/doc.go @@ -22,7 +22,8 @@ // // * DeletePipeline, which deletes the specified pipeline. // -// * GetPipeline, which returns information about a pipeline structure. +// * GetPipeline, which returns information about the pipeline structure +// and pipeline metadata, including the pipeline Amazon Resource Name (ARN). // // * GetPipelineExecution, which returns information about a specific execution // of a pipeline. @@ -33,6 +34,9 @@ // * ListPipelines, which gets a summary of all of the pipelines associated // with your account. // +// * ListPipelineExecutions, which gets a summary of the most recent executions +// for a pipeline. +// // * StartPipelineExecution, which runs the the most recent revision of an // artifact through the pipeline. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations_test.go index dea3026e..6d5f91be 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations_test.go @@ -6,7 +6,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/cognitoidentity" - "github.com/stretchr/testify/assert" ) var svc = cognitoidentity.New(unit.Session) @@ -17,8 +16,13 @@ func TestUnsignedRequest_GetID(t *testing.T) { }) err := req.Sign() - assert.NoError(t, err) - assert.Equal(t, "", req.HTTPRequest.Header.Get("Authorization")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := "", req.HTTPRequest.Header.Get("Authorization"); e != a { + t.Errorf("expected empty value '%v', but received, %v", e, a) + } } func TestUnsignedRequest_GetOpenIDToken(t *testing.T) { @@ -27,8 +31,13 @@ func TestUnsignedRequest_GetOpenIDToken(t *testing.T) { }) err := req.Sign() - assert.NoError(t, err) - assert.Equal(t, "", req.HTTPRequest.Header.Get("Authorization")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := "", req.HTTPRequest.Header.Get("Authorization"); e != a { + t.Errorf("expected empty value '%v', but received, %v", e, a) + } } func TestUnsignedRequest_GetCredentialsForIdentity(t *testing.T) { @@ -37,6 +46,11 @@ func TestUnsignedRequest_GetCredentialsForIdentity(t *testing.T) { }) err := req.Sign() - assert.NoError(t, err) - assert.Equal(t, "", req.HTTPRequest.Header.Get("Authorization")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := "", req.HTTPRequest.Header.Get("Authorization"); e != a { + t.Errorf("expected empty value '%v', but received, %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go index 1bb04281..a2a153b5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go @@ -2889,8 +2889,9 @@ func (s *ComplianceSummaryByResourceType) SetResourceType(v string) *ComplianceS return s } -// A list that contains the status of the delivery of either the snapshot or -// the configuration history to the specified Amazon S3 bucket. +// Provides status of the delivery of the snapshot or the configuration history +// to the specified Amazon S3 bucket. Also provides the status of notifications +// about the Amazon S3 delivery to the specified Amazon SNS topic. // Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigExportDeliveryInfo type ConfigExportDeliveryInfo struct { _ struct{} `type:"structure"` @@ -6245,8 +6246,8 @@ type Scope struct { // a resource ID for ComplianceResourceId. ComplianceResourceTypes []*string `type:"list"` - // The tag key that is applied to only those AWS resources that you want you - // want to trigger an evaluation for the rule. + // The tag key that is applied to only those AWS resources that you want to + // trigger an evaluation for the rule. TagKey *string `min:"1" type:"string"` // The tag value applied to only those AWS resources that you want to trigger @@ -6848,4 +6849,19 @@ const ( // ResourceTypeAwsCloudFormationStack is a ResourceType enum value ResourceTypeAwsCloudFormationStack = "AWS::CloudFormation::Stack" + + // ResourceTypeAwsDynamoDbTable is a ResourceType enum value + ResourceTypeAwsDynamoDbTable = "AWS::DynamoDB::Table" + + // ResourceTypeAwsAutoScalingAutoScalingGroup is a ResourceType enum value + ResourceTypeAwsAutoScalingAutoScalingGroup = "AWS::AutoScaling::AutoScalingGroup" + + // ResourceTypeAwsAutoScalingLaunchConfiguration is a ResourceType enum value + ResourceTypeAwsAutoScalingLaunchConfiguration = "AWS::AutoScaling::LaunchConfiguration" + + // ResourceTypeAwsAutoScalingScalingPolicy is a ResourceType enum value + ResourceTypeAwsAutoScalingScalingPolicy = "AWS::AutoScaling::ScalingPolicy" + + // ResourceTypeAwsAutoScalingScheduledAction is a ResourceType enum value + ResourceTypeAwsAutoScalingScheduledAction = "AWS::AutoScaling::ScheduledAction" ) diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/doc_custom.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/doc_custom.go index 53639be5..5ebc5807 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/doc_custom.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/doc_custom.go @@ -1,84 +1,27 @@ -// AttributeValue Marshaling and Unmarshaling Helpers -// -// Utility helpers to marshal and unmarshal AttributeValue to and -// from Go types can be found in the dynamodbattribute sub package. This package -// provides has specialized functions for the common ways of working with -// AttributeValues. Such as map[string]*AttributeValue, []*AttributeValue, and -// directly with *AttributeValue. This is helpful for marshaling Go types for API -// operations such as PutItem, and unmarshaling Query and Scan APIs' responses. -// -// See the dynamodbattribute package documentation for more information. -// https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/dynamodbattribute/ -// -// AttributeValue Marshaling -// -// To marshal a Go type to an AttributeValue you can use the Marshal -// functions in the dynamodbattribute package. There are specialized versions -// of these functions for collections of AttributeValue, such as maps and lists. -// -// The following example uses MarshalMap to convert the Record Go type to a -// dynamodb.AttributeValue type and use the value to make a PutItem API request. -// -// type Record struct { -// ID string -// URLs []string -// } -// -// //... -// -// r := Record{ -// ID: "ABC123", -// URLs: []string{ -// "https://example.com/first/link", -// "https://example.com/second/url", -// }, -// } -// av, err := dynamodbattribute.MarshalMap(r) -// if err != nil { -// panic(fmt.Sprintf("failed to DynamoDB marshal Record, %v", err)) -// } -// -// _, err = svc.PutItem(&dynamodb.PutItemInput{ -// TableName: aws.String(myTableName), -// Item: av, -// }) -// if err != nil { -// panic(fmt.Sprintf("failed to put Record to DynamoDB, %v", err)) -// } -// -// AttributeValue Unmarshaling -// -// To unmarshal a dynamodb.AttributeValue to a Go type you can use the Unmarshal -// functions in the dynamodbattribute package. There are specialized versions -// of these functions for collections of AttributeValue, such as maps and lists. -// -// The following example will unmarshal the DynamoDB's Scan API operation. The -// Items returned by the operation will be unmarshaled into the slice of Records -// Go type. -// -// type Record struct { -// ID string -// URLs []string -// } -// -// //... -// -// var records []Record -// -// // Use the ScanPages method to perform the scan with pagination. Use -// // just Scan method to make the API call without pagination. -// err := svc.ScanPages(&dynamodb.ScanInput{ -// TableName: aws.String(myTableName), -// }, func(page *dynamodb.ScanOutput, last bool) bool { -// recs := []Record{} -// -// err := dynamodbattribute.UnmarshalListOfMaps(page.Items, &recs) -// if err != nil { -// panic(fmt.Sprintf("failed to unmarshal Dynamodb Scan Items, %v", err)) -// } -// -// records = append(records, recs...) -// -// return true // keep paging -// }) +/* +AttributeValue Marshaling and Unmarshaling Helpers + +Utility helpers to marshal and unmarshal AttributeValue to and +from Go types can be found in the dynamodbattribute sub package. This package +provides has specialized functions for the common ways of working with +AttributeValues. Such as map[string]*AttributeValue, []*AttributeValue, and +directly with *AttributeValue. This is helpful for marshaling Go types for API +operations such as PutItem, and unmarshaling Query and Scan APIs' responses. + +See the dynamodbattribute package documentation for more information. +https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/dynamodbattribute/ + +Expression Builders + +The expression package provides utility types and functions to build DynamoDB +expression for type safe construction of API ExpressionAttributeNames, and +ExpressionAttribute Values. + +The package represents the various DynamoDB Expressions as structs named +accordingly. For example, ConditionBuilder represents a DynamoDB Condition +Expression, an UpdateBuilder represents a DynamoDB Update Expression, and so on. + +See the expression package documentation for more information. +https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/expression/ +*/ package dynamodb diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode_test.go index b0bc05d8..1313064a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode_test.go @@ -10,7 +10,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/stretchr/testify/assert" ) func TestUnmarshalErrorTypes(t *testing.T) { @@ -390,12 +389,22 @@ func TestUnmarshalUnmashaler(t *testing.T) { } err := Unmarshal(av, u) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } - assert.Equal(t, "value", u.Value) - assert.Equal(t, 123, u.Value2) - assert.Equal(t, true, u.Value3) - assert.Equal(t, testDate, u.Value4) + if e, a := "value", u.Value; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 123, u.Value2; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, u.Value3; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := testDate, u.Value4; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestDecodeUseNumber(t *testing.T) { @@ -412,13 +421,20 @@ func TestDecodeUseNumber(t *testing.T) { d.UseNumber = true }) err := decoder.Decode(av, &u) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } - assert.Equal(t, "value", u["abc"]) - n, ok := u["def"].(Number) - assert.True(t, ok) - assert.Equal(t, "123", n.String()) - assert.Equal(t, true, u["ghi"]) + if e, a := "value", u["abc"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } + n := u["def"].(Number) + if e, a := "123", n.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := true, u["ghi"]; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestDecodeUseNumberNumberSet(t *testing.T) { @@ -437,13 +453,18 @@ func TestDecodeUseNumberNumberSet(t *testing.T) { d.UseNumber = true }) err := decoder.Decode(av, &u) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } - ns, ok := u["ns"].([]Number) - assert.True(t, ok) + ns := u["ns"].([]Number) - assert.Equal(t, "123", ns[0].String()) - assert.Equal(t, "321", ns[1].String()) + if e, a := "123", ns[0].String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "321", ns[1].String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestDecodeEmbeddedPointerStruct(t *testing.T) { @@ -471,12 +492,20 @@ func TestDecodeEmbeddedPointerStruct(t *testing.T) { decoder := NewDecoder() a := A{} err := decoder.Decode(av, &a) - assert.NoError(t, err) - assert.Equal(t, 321, a.Aint) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := 321, a.Aint; e != a { + t.Errorf("expect %v, got %v", e, a) + } // Embedded pointer struct can be created automatically. - assert.Equal(t, 123, a.Bint) + if e, a := 123, a.Bint; e != a { + t.Errorf("expect %v, got %v", e, a) + } // But not for absent fields. - assert.Nil(t, a.C) + if a.C != nil { + t.Errorf("expect nil, got %v", a.C) + } } func TestDecodeBooleanOverlay(t *testing.T) { @@ -491,8 +520,12 @@ func TestDecodeBooleanOverlay(t *testing.T) { var v BooleanOverlay err := decoder.Decode(av, &v) - assert.NoError(t, err) - assert.Equal(t, BooleanOverlay(true), v) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := BooleanOverlay(true), v; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestDecodeUnixTime(t *testing.T) { @@ -524,8 +557,12 @@ func TestDecodeUnixTime(t *testing.T) { actual := A{} err := Unmarshal(input, &actual) - assert.NoError(t, err) - assert.Equal(t, expect, actual) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := expect, actual; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestDecodeAliasedUnixTime(t *testing.T) { @@ -552,6 +589,10 @@ func TestDecodeAliasedUnixTime(t *testing.T) { actual := A{} err := Unmarshal(input, &actual) - assert.NoError(t, err) - assert.Equal(t, expect, actual) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if expect != actual { + t.Errorf("expect %v, got %v", expect, actual) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/encode_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/encode_test.go index 5bddda77..deb1efda 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/encode_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/encode_test.go @@ -2,13 +2,13 @@ package dynamodbattribute import ( "fmt" + "reflect" "testing" "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/stretchr/testify/assert" ) func TestMarshalErrorTypes(t *testing.T) { @@ -73,9 +73,13 @@ func TestMarshalMashaler(t *testing.T) { } actual, err := Marshal(m) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect nil, got %v", err) + } - assert.Equal(t, expect, actual) + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } type testOmitEmptyElemListStruct struct { @@ -99,8 +103,12 @@ func TestMarshalListOmitEmptyElem(t *testing.T) { m := testOmitEmptyElemListStruct{Values: []string{"abc", "", "123"}} actual, err := Marshal(m) - assert.NoError(t, err) - assert.Equal(t, expect, actual) + if err != nil { + t.Errorf("expect nil, got %v", err) + } + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } func TestMarshalMapOmitEmptyElem(t *testing.T) { @@ -121,8 +129,12 @@ func TestMarshalMapOmitEmptyElem(t *testing.T) { }} actual, err := Marshal(m) - assert.NoError(t, err) - assert.Equal(t, expect, actual) + if err != nil { + t.Errorf("expect nil, got %v", err) + } + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } type testOmitEmptyScalar struct { @@ -141,8 +153,12 @@ func TestMarshalOmitEmpty(t *testing.T) { m := testOmitEmptyScalar{IntPtrSetZero: aws.Int(0)} actual, err := Marshal(m) - assert.NoError(t, err) - assert.Equal(t, expect, actual) + if err != nil { + t.Errorf("expect nil, got %v", err) + } + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } func TestEncodeEmbeddedPointerStruct(t *testing.T) { @@ -158,12 +174,20 @@ func TestEncodeEmbeddedPointerStruct(t *testing.T) { *C } a := A{Aint: 321, B: &B{123}} - assert.Equal(t, 321, a.Aint) - assert.Equal(t, 123, a.Bint) - assert.Nil(t, a.C) + if e, a := 321, a.Aint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := 123, a.Bint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if a.C != nil { + t.Errorf("expect nil, got %v", a.C) + } actual, err := Marshal(a) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect nil, got %v", err) + } expect := &dynamodb.AttributeValue{ M: map[string]*dynamodb.AttributeValue{ "Aint": { @@ -174,7 +198,9 @@ func TestEncodeEmbeddedPointerStruct(t *testing.T) { }, }, } - assert.Equal(t, expect, actual) + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } func TestEncodeUnixTime(t *testing.T) { @@ -191,7 +217,9 @@ func TestEncodeUnixTime(t *testing.T) { } actual, err := Marshal(a) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect nil, got %v", err) + } expect := &dynamodb.AttributeValue{ M: map[string]*dynamodb.AttributeValue{ "Normal": { @@ -205,7 +233,9 @@ func TestEncodeUnixTime(t *testing.T) { }, }, } - assert.Equal(t, expect, actual) + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } type AliasedTime time.Time @@ -222,7 +252,9 @@ func TestEncodeAliasedUnixTime(t *testing.T) { } actual, err := Marshal(a) - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no err, got %v", err) + } expect := &dynamodb.AttributeValue{ M: map[string]*dynamodb.AttributeValue{ "Normal": { @@ -233,5 +265,7 @@ func TestEncodeAliasedUnixTime(t *testing.T) { }, }, } - assert.Equal(t, expect, actual) + if e, a := expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/field_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/field_test.go index 58ee17b1..52eeb1cc 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/field_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/field_test.go @@ -3,8 +3,6 @@ package dynamodbattribute import ( "reflect" "testing" - - "github.com/stretchr/testify/assert" ) type testUnionValues struct { @@ -77,9 +75,13 @@ func TestUnionStructFields(t *testing.T) { fields := unionStructFields(v.Type(), MarshalOptions{SupportJSONTags: true}) for j, f := range fields { expected := c.expect[j] - assert.Equal(t, expected.Name, f.Name, "case %d, field %d", i, j) + if e, a := expected.Name, f.Name; e != a { + t.Errorf("%d:%d expect %v, got %v", i, j, e, f) + } actual := v.FieldByIndex(f.Index).Interface() - assert.EqualValues(t, expected.Value, actual, "case %d, field %d", i, j) + if e, a := expected.Value, actual; !reflect.DeepEqual(e, a) { + t.Errorf("%d:%d expect %v, got %v", i, j, e, f) + } } } } @@ -102,9 +104,13 @@ func TestFieldByName(t *testing.T) { for _, c := range cases { f, ok := fieldByName(fields, c.Name) - assert.Equal(t, c.Found, ok) + if e, a := c.Found, ok; e != a { + t.Errorf("expect %v, got %v", e, a) + } if ok { - assert.Equal(t, c.FieldName, f.Name) + if e, a := c.FieldName, f.Name; e != a { + t.Errorf("expect %v, got %v", e, a) + } } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/shared_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/shared_test.go index 480fe160..3e0568da 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/shared_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/shared_test.go @@ -7,7 +7,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/stretchr/testify/assert" ) type testBinarySetStruct struct { @@ -376,14 +375,18 @@ func assertConvertTest(t *testing.T, i int, actual, expected interface{}, err, e i++ if expectedErr != nil { if err != nil { - assert.Equal(t, expectedErr, err, "case %d", i) + if e, a := expectedErr, err; !reflect.DeepEqual(e, a) { + t.Errorf("case %d expect %v, got %v", i, e, a) + } } else { - assert.Fail(t, "", "case %d, expected error, %v", i) + t.Fatalf("case %d, expected error, %v", i, expectedErr) } } else if err != nil { - assert.Fail(t, "", "case %d, expect no error, got %v", i, err) + t.Fatalf("case %d, expect no error, got %v", i, err) } else { - assert.Equal(t, ptrToValue(expected), ptrToValue(actual), "case %d", i) + if e, a := ptrToValue(expected), ptrToValue(actual); !reflect.DeepEqual(e, a) { + t.Errorf("case %d, expect %v, got %v", i, e, a) + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/tag_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/tag_test.go index 46d0a684..f47f402d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/tag_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/tag_test.go @@ -3,8 +3,6 @@ package dynamodbattribute import ( "reflect" "testing" - - "github.com/stretchr/testify/assert" ) func TestTagParse(t *testing.T) { @@ -42,6 +40,8 @@ func TestTagParse(t *testing.T) { if c.av { actual.parseAVTag(c.in) } - assert.Equal(t, c.expect, actual, "case %d", i+1) + if e, a := c.expect, actual; !reflect.DeepEqual(e, a) { + t.Errorf("case %d, expect %v, got %v", i, e, a) + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition.go new file mode 100644 index 00000000..5d5c5c59 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition.go @@ -0,0 +1,1577 @@ +package expression + +import ( + "fmt" + "strings" +) + +// conditionMode specifies the types of the struct conditionBuilder, +// representing the different types of Conditions (i.e. And, Or, Between, ...) +type conditionMode int + +const ( + // unsetCond catches errors for unset ConditionBuilder structs + unsetCond conditionMode = iota + // equalCond represents the Equals Condition + equalCond + // notEqualCond represents the Not Equals Condition + notEqualCond + // lessThanCond represents the LessThan Condition + lessThanCond + // lessThanEqualCond represents the LessThanOrEqual Condition + lessThanEqualCond + // greaterThanCond represents the GreaterThan Condition + greaterThanCond + // greaterThanEqualCond represents the GreaterThanEqual Condition + greaterThanEqualCond + // andCond represents the Logical And Condition + andCond + // orCond represents the Logical Or Condition + orCond + // notCond represents the Logical Not Condition + notCond + // betweenCond represents the Between Condition + betweenCond + // inCond represents the In Condition + inCond + // attrExistsCond represents the Attribute Exists Condition + attrExistsCond + // attrNotExistsCond represents the Attribute Not Exists Condition + attrNotExistsCond + // attrTypeCond represents the Attribute Type Condition + attrTypeCond + // beginsWithCond represents the Begins With Condition + beginsWithCond + // containsCond represents the Contains Condition + containsCond +) + +// DynamoDBAttributeType specifies the type of an DynamoDB item attribute. This +// enum is used in the AttributeType() function in order to be explicit about +// the DynamoDB type that is being checked and ensure compile time checks. +// More Informatin at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html#Expressions.OperatorsAndFunctions.Functions +type DynamoDBAttributeType string + +const ( + // String represents the DynamoDB String type + String DynamoDBAttributeType = "S" + // StringSet represents the DynamoDB String Set type + StringSet = "SS" + // Number represents the DynamoDB Number type + Number = "N" + // NumberSet represents the DynamoDB Number Set type + NumberSet = "NS" + // Binary represents the DynamoDB Binary type + Binary = "B" + // BinarySet represents the DynamoDB Binary Set type + BinarySet = "BS" + // Boolean represents the DynamoDB Boolean type + Boolean = "BOOL" + // Null represents the DynamoDB Null type + Null = "NULL" + // List represents the DynamoDB List type + List = "L" + // Map represents the DynamoDB Map type + Map = "M" +) + +// ConditionBuilder represents Condition Expressions and Filter Expressions +// in DynamoDB. ConditionBuilders are one of the building blocks of the Builder +// struct. Since Filter Expressions support all the same functions and formats +// as Condition Expressions, ConditionBuilders represents both types of +// Expressions. +// More Information at: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html +// More Information on Filter Expressions: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.FilterExpression +type ConditionBuilder struct { + operandList []OperandBuilder + conditionList []ConditionBuilder + mode conditionMode +} + +// Equal returns a ConditionBuilder representing the equality clause of the two +// argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the equal clause of the item attribute "foo" and +// // the value 5 +// condition := expression.Equal(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Equal(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo = :five" +func Equal(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: equalCond, + } +} + +// Equal returns a ConditionBuilder representing the equality clause of the two +// argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the equal clause of the item attribute "foo" and +// // the value 5 +// condition := expression.Name("foo").Equal(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").Equal(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo = :five" +func (nb NameBuilder) Equal(right OperandBuilder) ConditionBuilder { + return Equal(nb, right) +} + +// Equal returns a ConditionBuilder representing the equality clause of the two +// argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the equal clause of the item attribute "foo" and +// // the value 5 +// condition := expression.Value(5).Equal(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).Equal(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five = foo" +func (vb ValueBuilder) Equal(right OperandBuilder) ConditionBuilder { + return Equal(vb, right) +} + +// Equal returns a ConditionBuilder representing the equality clause of the two +// argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the equal clause of the size of the item +// // attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).Equal(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).Equal(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) = :five" +func (sb SizeBuilder) Equal(right OperandBuilder) ConditionBuilder { + return Equal(sb, right) +} + +// NotEqual returns a ConditionBuilder representing the not equal clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the not equal clause of the item attribute "foo" +// // and the value 5 +// condition := expression.NotEqual(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.NotEqual(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <> :five" +func NotEqual(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: notEqualCond, + } +} + +// NotEqual returns a ConditionBuilder representing the not equal clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the not equal clause of the item attribute "foo" +// // and the value 5 +// condition := expression.Name("foo").NotEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").NotEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <> :five" +func (nb NameBuilder) NotEqual(right OperandBuilder) ConditionBuilder { + return NotEqual(nb, right) +} + +// NotEqual returns a ConditionBuilder representing the not equal clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the not equal clause of the item attribute "foo" +// // and the value 5 +// condition := expression.Value(5).NotEqual(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).NotEqual(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five <> foo" +func (vb ValueBuilder) NotEqual(right OperandBuilder) ConditionBuilder { + return NotEqual(vb, right) +} + +// NotEqual returns a ConditionBuilder representing the not equal clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the not equal clause of the size of the item +// // attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).NotEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).NotEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) <> :five" +func (sb SizeBuilder) NotEqual(right OperandBuilder) ConditionBuilder { + return NotEqual(sb, right) +} + +// LessThan returns a ConditionBuilder representing the less than clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the less than clause of the item attribute "foo" +// // and the value 5 +// condition := expression.LessThan(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.LessThan(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo < :five" +func LessThan(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: lessThanCond, + } +} + +// LessThan returns a ConditionBuilder representing the less than clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the less than clause of the item attribute "foo" +// // and the value 5 +// condition := expression.Name("foo").LessThan(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").LessThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo < :five" +func (nb NameBuilder) LessThan(right OperandBuilder) ConditionBuilder { + return LessThan(nb, right) +} + +// LessThan returns a ConditionBuilder representing the less than clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the less than clause of the item attribute "foo" +// // and the value 5 +// condition := expression.Value(5).LessThan(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).LessThan(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five < foo" +func (vb ValueBuilder) LessThan(right OperandBuilder) ConditionBuilder { + return LessThan(vb, right) +} + +// LessThan returns a ConditionBuilder representing the less than clause of the +// two argument OperandBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the less than clause of the size of the item +// // attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).LessThan(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).LessThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) < :five" +func (sb SizeBuilder) LessThan(right OperandBuilder) ConditionBuilder { + return LessThan(sb, right) +} + +// LessThanEqual returns a ConditionBuilder representing the less than equal to +// clause of the two argument OperandBuilders. The resulting ConditionBuilder +// can be used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the less than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.LessThanEqual(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.LessThanEqual(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <= :five" +func LessThanEqual(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: lessThanEqualCond, + } +} + +// LessThanEqual returns a ConditionBuilder representing the less than equal to +// clause of the two argument OperandBuilders. The resulting ConditionBuilder +// can be used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the less than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.Name("foo").LessThanEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").LessThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <= :five" +func (nb NameBuilder) LessThanEqual(right OperandBuilder) ConditionBuilder { + return LessThanEqual(nb, right) +} + +// LessThanEqual returns a ConditionBuilder representing the less than equal to +// clause of the two argument OperandBuilders. The resulting ConditionBuilder +// can be used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the less than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.Value(5).LessThanEqual(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).LessThanEqual(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five <= foo" +func (vb ValueBuilder) LessThanEqual(right OperandBuilder) ConditionBuilder { + return LessThanEqual(vb, right) +} + +// LessThanEqual returns a ConditionBuilder representing the less than equal to +// clause of the two argument OperandBuilders. The resulting ConditionBuilder +// can be used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the less than equal to clause of the size of the +// // item attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).LessThanEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).LessThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) <= :five" +func (sb SizeBuilder) LessThanEqual(right OperandBuilder) ConditionBuilder { + return LessThanEqual(sb, right) +} + +// GreaterThan returns a ConditionBuilder representing the greater than clause +// of the two argument OperandBuilders. The resulting ConditionBuilder can be +// used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than clause of the item attribute +// // "foo" and the value 5 +// condition := expression.GreaterThan(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.GreaterThan(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo > :five" +func GreaterThan(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: greaterThanCond, + } +} + +// GreaterThan returns a ConditionBuilder representing the greater than clause +// of the two argument OperandBuilders. The resulting ConditionBuilder can be +// used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than clause of the item attribute +// // "foo" and the value 5 +// condition := expression.Name("foo").GreaterThan(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").GreaterThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo > :five" +func (nb NameBuilder) GreaterThan(right OperandBuilder) ConditionBuilder { + return GreaterThan(nb, right) +} + +// GreaterThan returns a ConditionBuilder representing the greater than clause +// of the two argument OperandBuilders. The resulting ConditionBuilder can be +// used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than clause of the item attribute +// // "foo" and the value 5 +// condition := expression.Value(5).GreaterThan(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).GreaterThan(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five > foo" +func (vb ValueBuilder) GreaterThan(right OperandBuilder) ConditionBuilder { + return GreaterThan(vb, right) +} + +// GreaterThan returns a ConditionBuilder representing the greater than +// clause of the two argument OperandBuilders. The resulting ConditionBuilder +// can be used as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than clause of the size of the item +// // attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).GreaterThan(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).GreaterThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) > :five" +func (sb SizeBuilder) GreaterThan(right OperandBuilder) ConditionBuilder { + return GreaterThan(sb, right) +} + +// GreaterThanEqual returns a ConditionBuilder representing the greater than +// equal to clause of the two argument OperandBuilders. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.GreaterThanEqual(expression.Name("foo"), expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.GreaterThanEqual(expression.Name("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo >= :five" +func GreaterThanEqual(left, right OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{left, right}, + mode: greaterThanEqualCond, + } +} + +// GreaterThanEqual returns a ConditionBuilder representing the greater than +// equal to clause of the two argument OperandBuilders. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.Name("foo").GreaterThanEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("foo").GreaterThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo >= :five" +func (nb NameBuilder) GreaterThanEqual(right OperandBuilder) ConditionBuilder { + return GreaterThanEqual(nb, right) +} + +// GreaterThanEqual returns a ConditionBuilder representing the greater than +// equal to clause of the two argument OperandBuilders. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than equal to clause of the item +// // attribute "foo" and the value 5 +// condition := expression.Value(5).GreaterThanEqual(expression.Name("foo")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(5).GreaterThanEqual(expression.Name("foo")) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// ":five >= foo" +func (vb ValueBuilder) GreaterThanEqual(right OperandBuilder) ConditionBuilder { + return GreaterThanEqual(vb, right) +} + +// GreaterThanEqual returns a ConditionBuilder representing the greater than +// equal to clause of the two argument OperandBuilders. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the greater than equal to clause of the size of +// // the item attribute "foo" and the value 5 +// condition := expression.Size(expression.Name("foo")).GreaterThanEqual(expression.Value(5)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("foo")).GreaterThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "size (foo) >= :five" +func (sb SizeBuilder) GreaterThanEqual(right OperandBuilder) ConditionBuilder { + return GreaterThanEqual(sb, right) +} + +// And returns a ConditionBuilder representing the logical AND clause of the +// argument ConditionBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. Note that And() can take a variadic number of +// ConditionBuilders as arguments. +// +// Example: +// +// // condition represents the condition where the item attribute "Name" is +// // equal to value "Generic Name" AND the item attribute "Age" is less +// // than value 40 +// condition := expression.And(expression.Name("Name").Equal(expression.Value("Generic Name")), expression.Name("Age").LessThan(expression.Value(40))) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.And(expression.Name("Name").Equal(expression.Value("Generic Name")), expression.Name("Age").LessThan(expression.Value(40))) +// // Let #NAME, :name, and :forty be ExpressionAttributeName and +// // ExpressionAttributeValues representing the item attribute "Name", the +// // value "Generic Name", and the value 40 +// "(#NAME = :name) AND (Age < :forty)" +func And(left, right ConditionBuilder, other ...ConditionBuilder) ConditionBuilder { + other = append([]ConditionBuilder{left, right}, other...) + return ConditionBuilder{ + conditionList: other, + mode: andCond, + } +} + +// And returns a ConditionBuilder representing the logical AND clause of the +// argument ConditionBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. Note that And() can take a variadic number of +// ConditionBuilders as arguments. +// +// Example: +// +// // condition represents the condition where the item attribute "Name" is +// // equal to value "Generic Name" AND the item attribute "Age" is less +// // than value 40 +// condition := expression.Name("Name").Equal(expression.Value("Generic Name")).And(expression.Name("Age").LessThan(expression.Value(40))) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Name").Equal(expression.Value("Generic Name")).And(expression.Name("Age").LessThan(expression.Value(40))) +// // Let #NAME, :name, and :forty be ExpressionAttributeName and +// // ExpressionAttributeValues representing the item attribute "Name", the +// // value "Generic Name", and the value 40 +// "(#NAME = :name) AND (Age < :forty)" +func (cb ConditionBuilder) And(right ConditionBuilder, other ...ConditionBuilder) ConditionBuilder { + return And(cb, right, other...) +} + +// Or returns a ConditionBuilder representing the logical OR clause of the +// argument ConditionBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. Note that Or() can take a variadic number of +// ConditionBuilders as arguments. +// +// Example: +// +// // condition represents the condition where the item attribute "Price" is +// // less than the value 100 OR the item attribute "Rating" is greater than +// // the value 8 +// condition := expression.Or(expression.Name("Price").Equal(expression.Value(100)), expression.Name("Rating").LessThan(expression.Value(8))) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Or(expression.Name("Price").Equal(expression.Value(100)), expression.Name("Rating").LessThan(expression.Value(8))) +// // Let :price and :rating be ExpressionAttributeValues representing the +// // the value 100 and value 8 respectively +// "(Price < :price) OR (Rating > :rating)" +func Or(left, right ConditionBuilder, other ...ConditionBuilder) ConditionBuilder { + other = append([]ConditionBuilder{left, right}, other...) + return ConditionBuilder{ + conditionList: other, + mode: orCond, + } +} + +// Or returns a ConditionBuilder representing the logical OR clause of the +// argument ConditionBuilders. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. Note that Or() can take a variadic number of +// ConditionBuilders as arguments. +// +// Example: +// +// // condition represents the condition where the item attribute "Price" is +// // less than the value 100 OR the item attribute "Rating" is greater than +// // the value 8 +// condition := expression.Name("Price").Equal(expression.Value(100)).Or(expression.Name("Rating").LessThan(expression.Value(8))) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Price").Equal(expression.Value(100)).Or(expression.Name("Rating").LessThan(expression.Value(8))) +// // Let :price and :rating be ExpressionAttributeValues representing the +// // the value 100 and value 8 respectively +// "(Price < :price) OR (Rating > :rating)" +func (cb ConditionBuilder) Or(right ConditionBuilder, other ...ConditionBuilder) ConditionBuilder { + return Or(cb, right, other...) +} + +// Not returns a ConditionBuilder representing the logical NOT clause of the +// argument ConditionBuilder. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the item attribute "Name" +// // does not begin with "test" +// condition := expression.Not(expression.Name("Name").BeginsWith("test")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Not(expression.Name("Name").BeginsWith("test")) +// // Let :prefix be an ExpressionAttributeValue representing the value +// // "test" +// "NOT (begins_with (:prefix))" +func Not(conditionBuilder ConditionBuilder) ConditionBuilder { + return ConditionBuilder{ + conditionList: []ConditionBuilder{conditionBuilder}, + mode: notCond, + } +} + +// Not returns a ConditionBuilder representing the logical NOT clause of the +// argument ConditionBuilder. The resulting ConditionBuilder can be used as a +// part of other Condition Expressions or as an argument to the WithCondition() +// method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the item attribute "Name" +// // does not begin with "test" +// condition := expression.Name("Name").BeginsWith("test").Not() +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Name").BeginsWith("test").Not() +// // Let :prefix be an ExpressionAttributeValue representing the value +// // "test" +// "NOT (begins_with (:prefix))" +func (cb ConditionBuilder) Not() ConditionBuilder { + return Not(cb) +} + +// Between returns a ConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value of the item +// // attribute "Rating" is between values 5 and 10 +// condition := expression.Between(expression.Name("Rating"), expression.Value(5), expression.Value(10)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Between(expression.Name("Rating"), expression.Value(5), expression.Value(10)) +// // Let :five and :ten be ExpressionAttributeValues representing the value +// // 5 and the value 10 +// "Rating BETWEEN :five AND :ten" +func Between(op, lower, upper OperandBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{op, lower, upper}, + mode: betweenCond, + } +} + +// Between returns a ConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value of the item +// // attribute "Rating" is between values 5 and 10 +// condition := expression.Name("Rating").Between(expression.Value(5), expression.Value(10)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Rating").Between(expression.Value(5), expression.Value(10)) +// // Let :five and :ten be ExpressionAttributeValues representing the value +// // 5 and the value 10 +// "Rating BETWEEN :five AND :ten" +func (nb NameBuilder) Between(lower, upper OperandBuilder) ConditionBuilder { + return Between(nb, lower, upper) +} + +// Between returns a ConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value 6 is between values +// // 5 and 10 +// condition := expression.Value(6).Between(expression.Value(5), expression.Value(10)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value(6).Between(expression.Value(5), expression.Value(10)) +// // Let :six, :five and :ten be ExpressionAttributeValues representing the +// // values 6, 5, and 10 respectively +// ":six BETWEEN :five AND :ten" +func (vb ValueBuilder) Between(lower, upper OperandBuilder) ConditionBuilder { + return Between(vb, lower, upper) +} + +// Between returns a ConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the size of the item +// // attribute "InviteList" is between values 5 and 10 +// condition := expression.Size(expression.Name("InviteList")).Between(expression.Value(5), expression.Value(10)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("InviteList")).Between(expression.Value(5), expression.Value(10)) +// // Let :five and :ten be ExpressionAttributeValues representing the value +// // 5 and the value 10 +// "size (InviteList) BETWEEN :five AND :ten" +func (sb SizeBuilder) Between(lower, upper OperandBuilder) ConditionBuilder { + return Between(sb, lower, upper) +} + +// In returns a ConditionBuilder representing the result of the IN function +// in DynamoDB Condition Expressions. The resulting ConditionBuilder can be used +// as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value of the item +// // attribute "Color" is checked against the list of colors "red", +// // "green", and "blue". +// condition := expression.In(expression.Name("Color"), expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.In(expression.Name("Color"), expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// // Let :red, :green, :blue be ExpressionAttributeValues representing the +// // values "red", "green", and "blue" respectively +// "Color IN (:red, :green, :blue)" +func In(left, right OperandBuilder, other ...OperandBuilder) ConditionBuilder { + other = append([]OperandBuilder{left, right}, other...) + return ConditionBuilder{ + operandList: other, + mode: inCond, + } +} + +// In returns a ConditionBuilder representing the result of the IN function +// in DynamoDB Condition Expressions. The resulting ConditionBuilder can be used +// as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value of the item +// // attribute "Color" is checked against the list of colors "red", +// // "green", and "blue". +// condition := expression.Name("Color").In(expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Color").In(expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// // Let :red, :green, :blue be ExpressionAttributeValues representing the +// // values "red", "green", and "blue" respectively +// "Color IN (:red, :green, :blue)" +func (nb NameBuilder) In(right OperandBuilder, other ...OperandBuilder) ConditionBuilder { + return In(nb, right, other...) +} + +// In returns a ConditionBuilder representing the result of the IN function +// TODO change this one +// in DynamoDB Condition Expressions. The resulting ConditionBuilder can be used +// as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the value "yellow" is checked +// // against the list of colors "red", "green", and "blue". +// condition := expression.Value("yellow").In(expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Value("yellow").In(expression.Value("red"), expression.Value("green"), expression.Value("blue")) +// // Let :yellow, :red, :green, :blue be ExpressionAttributeValues +// // representing the values "yellow", "red", "green", and "blue" +// // respectively +// ":yellow IN (:red, :green, :blue)" +func (vb ValueBuilder) In(right OperandBuilder, other ...OperandBuilder) ConditionBuilder { + return In(vb, right, other...) +} + +// In returns a ConditionBuilder representing the result of the IN function +// in DynamoDB Condition Expressions. The resulting ConditionBuilder can be used +// as a part of other Condition Expressions or as an argument to the +// WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the condition where the size of the item +// // attribute "Donuts" is checked against the list of numbers 12, 24, and +// // 36. +// condition := expression.Size(expression.Name("Donuts")).In(expression.Value(12), expression.Value(24), expression.Value(36)) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("Donuts")).In(expression.Value(12), expression.Value(24), expression.Value(36)) +// // Let :dozen, :twoDozen, :threeDozen be ExpressionAttributeValues +// // representing the values 12, 24, and 36 respectively +// "size (Donuts) IN (12, 24, 36)" +func (sb SizeBuilder) In(right OperandBuilder, other ...OperandBuilder) ConditionBuilder { + return In(sb, right, other...) +} + +// AttributeExists returns a ConditionBuilder representing the result of the +// attribute_exists function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" exists or not +// condition := expression.AttributeExists(expression.Name("Age")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.AttributeExists(expression.Name("Age")) +// "attribute_exists (Age))" +func AttributeExists(nameBuilder NameBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{nameBuilder}, + mode: attrExistsCond, + } +} + +// AttributeExists returns a ConditionBuilder representing the result of the +// attribute_exists function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" exists or not +// condition := expression.Name("Age").AttributeExists() +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Age").AttributeExists() +// "attribute_exists (Age))" +func (nb NameBuilder) AttributeExists() ConditionBuilder { + return AttributeExists(nb) +} + +// AttributeNotExists returns a ConditionBuilder representing the result of +// the attribute_not_exists function in DynamoDB Condition Expressions. The +// resulting ConditionBuilder can be used as a part of other Condition +// Expressions or as an argument to the WithCondition() method for the Builder +// struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" exists or not +// condition := expression.AttributeNotExists(expression.Name("Age")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.AttributeNotExists(expression.Name("Age")) +// "attribute_not_exists (Age))" +func AttributeNotExists(nameBuilder NameBuilder) ConditionBuilder { + return ConditionBuilder{ + operandList: []OperandBuilder{nameBuilder}, + mode: attrNotExistsCond, + } +} + +// AttributeNotExists returns a ConditionBuilder representing the result of +// the attribute_not_exists function in DynamoDB Condition Expressions. The +// resulting ConditionBuilder can be used as a part of other Condition +// Expressions or as an argument to the WithCondition() method for the Builder +// struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" exists or not +// condition := expression.Name("Age").AttributeNotExists() +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Age").AttributeNotExists() +// "attribute_not_exists (Age))" +func (nb NameBuilder) AttributeNotExists() ConditionBuilder { + return AttributeNotExists(nb) +} + +// AttributeType returns a ConditionBuilder representing the result of the +// attribute_type function in DynamoDB Condition Expressions. The DynamoDB types +// are represented by the type DynamoDBAttributeType. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" has the DynamoDB type Number or not +// condition := expression.AttributeType(expression.Name("Age"), expression.Number) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.AttributeType(expression.Name("Age"), expression.Number) +// // Let :type be an ExpressionAttributeValue representing the value "N" +// "attribute_type (Age, :type)" +func AttributeType(nameBuilder NameBuilder, attributeType DynamoDBAttributeType) ConditionBuilder { + v := ValueBuilder{ + value: string(attributeType), + } + return ConditionBuilder{ + operandList: []OperandBuilder{nameBuilder, v}, + mode: attrTypeCond, + } +} + +// AttributeType returns a ConditionBuilder representing the result of the +// attribute_type function in DynamoDB Condition Expressions. The DynamoDB types +// are represented by the type DynamoDBAttributeType. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "Age" has the DynamoDB type Number or not +// condition := expression.Name("Age").AttributeType(expression.Number) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("Age").AttributeType(expression.Number) +// // Let :type be an ExpressionAttributeValue representing the value "N" +// "attribute_type (Age, :type)" +func (nb NameBuilder) AttributeType(attributeType DynamoDBAttributeType) ConditionBuilder { + return AttributeType(nb, attributeType) +} + +// BeginsWith returns a ConditionBuilder representing the result of the +// begins_with function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "CodeName" starts with the substring "Ben" +// condition := expression.BeginsWith(expression.Name("CodeName"), "Ben") +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.BeginsWith(expression.Name("CodeName"), "Ben") +// // Let :ben be an ExpressionAttributeValue representing the value "Ben" +// "begins_with (CodeName, :ben)" +func BeginsWith(nameBuilder NameBuilder, prefix string) ConditionBuilder { + v := ValueBuilder{ + value: prefix, + } + return ConditionBuilder{ + operandList: []OperandBuilder{nameBuilder, v}, + mode: beginsWithCond, + } +} + +// BeginsWith returns a ConditionBuilder representing the result of the +// begins_with function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "CodeName" starts with the substring "Ben" +// condition := expression.Name("CodeName").BeginsWith("Ben") +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("CodeName").BeginsWith("Ben") +// // Let :ben be an ExpressionAttributeValue representing the value "Ben" +// "begins_with (CodeName, :ben)" +func (nb NameBuilder) BeginsWith(prefix string) ConditionBuilder { + return BeginsWith(nb, prefix) +} + +// Contains returns a ConditionBuilder representing the result of the +// contains function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "InviteList" has the value "Ben" +// condition := expression.Contains(expression.Name("InviteList"), expression.Value("Ben")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Contains(expression.Name("InviteList"), expression.Value("Ben")) +// // Let :ben be an ExpressionAttributeValue representing the value "Ben" +// "contains (InviteList, :ben)" +func Contains(nameBuilder NameBuilder, substr string) ConditionBuilder { + v := ValueBuilder{ + value: substr, + } + return ConditionBuilder{ + operandList: []OperandBuilder{nameBuilder, v}, + mode: containsCond, + } +} + +// Contains returns a ConditionBuilder representing the result of the +// contains function in DynamoDB Condition Expressions. The resulting +// ConditionBuilder can be used as a part of other Condition Expressions or as +// an argument to the WithCondition() method for the Builder struct. +// +// Example: +// +// // condition represents the boolean condition of whether the item +// // attribute "InviteList" has the value "Ben" +// condition := expression.Name("InviteList").Contains(expression.Value("Ben")) +// +// // Used in another Condition Expression +// anotherCondition := expression.Not(condition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithCondition(condition) +// +// Expression Equivalent: +// +// expression.Name("InviteList").Contains(expression.Value("Ben")) +// // Let :ben be an ExpressionAttributeValue representing the value "Ben" +// "contains (InviteList, :ben)" +func (nb NameBuilder) Contains(substr string) ConditionBuilder { + return Contains(nb, substr) +} + +// buildTree builds a tree structure of exprNodes based on the tree +// structure of the input ConditionBuilder's child ConditionBuilders and +// OperandBuilders. buildTree() satisfies the treeBuilder interface so +// ConditionBuilder can be a part of Builder and Expression struct. +func (cb ConditionBuilder) buildTree() (exprNode, error) { + childNodes, err := cb.buildChildNodes() + if err != nil { + return exprNode{}, err + } + ret := exprNode{ + children: childNodes, + } + + switch cb.mode { + case equalCond, notEqualCond, lessThanCond, lessThanEqualCond, greaterThanCond, greaterThanEqualCond: + return compareBuildCondition(cb.mode, ret) + case andCond, orCond: + return compoundBuildCondition(cb, ret) + case notCond: + return notBuildCondition(ret) + case betweenCond: + return betweenBuildCondition(ret) + case inCond: + return inBuildCondition(cb, ret) + case attrExistsCond: + return attrExistsBuildCondition(ret) + case attrNotExistsCond: + return attrNotExistsBuildCondition(ret) + case attrTypeCond: + return attrTypeBuildCondition(ret) + case beginsWithCond: + return beginsWithBuildCondition(ret) + case containsCond: + return containsBuildCondition(ret) + case unsetCond: + return exprNode{}, newUnsetParameterError("buildTree", "ConditionBuilder") + default: + return exprNode{}, fmt.Errorf("build condition error: unsupported mode: %v", cb.mode) + } +} + +// compareBuildCondition is the function to make exprNodes from Compare +// ConditionBuilders. compareBuildCondition is only called by the +// buildTree method. This function assumes that the argument ConditionBuilder +// has the right format. +func compareBuildCondition(conditionMode conditionMode, node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + switch conditionMode { + case equalCond: + node.fmtExpr = "$c = $c" + case notEqualCond: + node.fmtExpr = "$c <> $c" + case lessThanCond: + node.fmtExpr = "$c < $c" + case lessThanEqualCond: + node.fmtExpr = "$c <= $c" + case greaterThanCond: + node.fmtExpr = "$c > $c" + case greaterThanEqualCond: + node.fmtExpr = "$c >= $c" + default: + return exprNode{}, fmt.Errorf("build compare condition error: unsupported mode: %v", conditionMode) + } + + return node, nil +} + +// compoundBuildCondition is the function to make exprNodes from And/Or +// ConditionBuilders. compoundBuildCondition is only called by the +// buildTree method. This function assumes that the argument ConditionBuilder +// has the right format. +func compoundBuildCondition(conditionBuilder ConditionBuilder, node exprNode) (exprNode, error) { + // create a string with escaped characters to substitute them with proper + // aliases during runtime + var mode string + switch conditionBuilder.mode { + case andCond: + mode = " AND " + case orCond: + mode = " OR " + default: + return exprNode{}, fmt.Errorf("build compound condition error: unsupported mode: %v", conditionBuilder.mode) + } + node.fmtExpr = "($c)" + strings.Repeat(mode+"($c)", len(conditionBuilder.conditionList)-1) + + return node, nil +} + +// notBuildCondition is the function to make exprNodes from Not +// ConditionBuilders. notBuildCondition is only called by the +// buildTree method. This function assumes that the argument ConditionBuilder +// has the right format. +func notBuildCondition(node exprNode) (exprNode, error) { + // create a string with escaped characters to substitute them with proper + // aliases during runtime + node.fmtExpr = "NOT ($c)" + + return node, nil +} + +// betweenBuildCondition is the function to make exprNodes from Between +// ConditionBuilders. BuildCondition is only called by the +// buildTree method. This function assumes that the argument ConditionBuilder +// has the right format. +func betweenBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "$c BETWEEN $c AND $c" + + return node, nil +} + +// inBuildCondition is the function to make exprNodes from In +// ConditionBuilders. inBuildCondition is only called by the +// buildTree method. This function assumes that the argument ConditionBuilder +// has the right format. +func inBuildCondition(conditionBuilder ConditionBuilder, node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "$c IN ($c" + strings.Repeat(", $c", len(conditionBuilder.operandList)-2) + ")" + + return node, nil +} + +// attrExistsBuildCondition is the function to make exprNodes from +// AttrExistsCond ConditionBuilders. attrExistsBuildCondition is only +// called by the buildTree method. This function assumes that the argument +// ConditionBuilder has the right format. +func attrExistsBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "attribute_exists ($c)" + + return node, nil +} + +// attrNotExistsBuildCondition is the function to make exprNodes from +// AttrNotExistsCond ConditionBuilders. attrNotExistsBuildCondition is only +// called by the buildTree method. This function assumes that the argument +// ConditionBuilder has the right format. +func attrNotExistsBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "attribute_not_exists ($c)" + + return node, nil +} + +// attrTypeBuildCondition is the function to make exprNodes from AttrTypeCond +// ConditionBuilders. attrTypeBuildCondition is only called by the +// buildTree method. This function assumes that the argument +// ConditionBuilder has the right format. +func attrTypeBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "attribute_type ($c, $c)" + + return node, nil +} + +// beginsWithBuildCondition is the function to make exprNodes from +// BeginsWithCond ConditionBuilders. beginsWithBuildCondition is only +// called by the buildTree method. This function assumes that the argument +// ConditionBuilder has the right format. +func beginsWithBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "begins_with ($c, $c)" + + return node, nil +} + +// containsBuildCondition is the function to make exprNodes from +// ContainsCond ConditionBuilders. containsBuildCondition is only +// called by the buildTree method. This function assumes that the argument +// ConditionBuilder has the right format. +func containsBuildCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "contains ($c, $c)" + + return node, nil +} + +// buildChildNodes creates the list of the child exprNodes. This avoids +// duplication of code amongst the various buildTree functions. +func (cb ConditionBuilder) buildChildNodes() ([]exprNode, error) { + childNodes := make([]exprNode, 0, len(cb.conditionList)+len(cb.operandList)) + for _, condition := range cb.conditionList { + node, err := condition.buildTree() + if err != nil { + return []exprNode{}, err + } + childNodes = append(childNodes, node) + } + for _, ope := range cb.operandList { + operand, err := ope.BuildOperand() + if err != nil { + return []exprNode{}, err + } + childNodes = append(childNodes, operand.exprNode) + } + + return childNodes, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition_test.go new file mode 100644 index 00000000..3f7d8282 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/condition_test.go @@ -0,0 +1,1615 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +// condErrorMode will help with error cases and checking error types +type condErrorMode string + +const ( + noConditionError condErrorMode = "" + // unsetCondition error will occur when BuildExpression is called on an empty + // ConditionBuilder + unsetCondition = "unset parameter: ConditionBuilder" + // invalidOperand error will occur when an invalid OperandBuilder is used as + // an argument + invalidConditionOperand = "BuildOperand error" +) + +//Compare +func TestCompare(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "name equal name", + input: Name("foo").Equal(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c = $c", + }, + }, + { + name: "value equal value", + input: Value(5).Equal(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + { + name: "name size equal name size", + input: Name("foo[1]").Size().Equal(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c = $c", + }, + }, + { + name: "name not equal name", + input: Name("foo").NotEqual(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c <> $c", + }, + }, + { + name: "value not equal value", + input: Value(5).NotEqual(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c <> $c", + }, + }, + { + name: "name size not equal name size", + input: Name("foo[1]").Size().NotEqual(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c <> $c", + }, + }, + { + name: "name less than name", + input: Name("foo").LessThan(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c < $c", + }, + }, + { + name: "value less than value", + input: Value(5).LessThan(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c < $c", + }, + }, + { + name: "name size less than name size", + input: Name("foo[1]").Size().LessThan(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c < $c", + }, + }, + { + name: "name less than equal name", + input: Name("foo").LessThanEqual(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c <= $c", + }, + }, + { + name: "value less than equal value", + input: Value(5).LessThanEqual(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c <= $c", + }, + }, + { + name: "name size less than equal name size", + input: Name("foo[1]").Size().LessThanEqual(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c <= $c", + }, + }, + { + name: "name greater than name", + input: Name("foo").GreaterThan(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c > $c", + }, + }, + { + name: "value greater than value", + input: Value(5).GreaterThan(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c > $c", + }, + }, + { + name: "name size greater than name size", + input: Name("foo[1]").Size().GreaterThan(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c > $c", + }, + }, + { + name: "name greater than equal name", + input: Name("foo").GreaterThanEqual(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c >= $c", + }, + }, + { + name: "value greater than equal value", + input: Value(5).GreaterThanEqual(Value("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c >= $c", + }, + }, + { + name: "name size greater than equal name size", + input: Name("foo[1]").Size().GreaterThanEqual(Name("bar").Size()), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n[1])", + }, + { + names: []string{"bar"}, + fmtExpr: "size ($n)", + }, + }, + fmtExpr: "$c >= $c", + }, + }, + { + name: "invalid operand error Equal", + input: Name("").Size().Equal(Value(5)), + err: invalidConditionOperand, + }, + { + name: "invalid operand error NotEqual", + input: Name("").Size().NotEqual(Value(5)), + err: invalidConditionOperand, + }, + { + name: "invalid operand error LessThan", + input: Name("").Size().LessThan(Value(5)), + err: invalidConditionOperand, + }, + { + name: "invalid operand error LessThanEqual", + input: Name("").Size().LessThanEqual(Value(5)), + err: invalidConditionOperand, + }, + { + name: "invalid operand error GreaterThan", + input: Name("").Size().GreaterThan(Value(5)), + err: invalidConditionOperand, + }, + { + name: "invalid operand error GreaterThanEqual", + input: Name("").Size().GreaterThanEqual(Value(5)), + err: invalidConditionOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBuildCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expected exprNode + err condErrorMode + }{ + { + name: "no match error", + input: ConditionBuilder{}, + err: unsetCondition, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBoolCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic method and", + input: Name("foo").Equal(Value(5)).And(Name("bar").Equal(Value("baz"))), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("baz"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "($c) AND ($c)", + }, + }, + { + name: "basic method or", + input: Name("foo").Equal(Value(5)).Or(Name("bar").Equal(Value("baz"))), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("baz"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "($c) OR ($c)", + }, + }, + { + name: "variadic function and", + input: And(Name("foo").Equal(Value(5)), Name("bar").Equal(Value("baz")), Name("qux").Equal(Value(true))), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("baz"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"qux"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + BOOL: aws.Bool(true), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "($c) AND ($c) AND ($c)", + }, + }, + { + name: "variadic function or", + input: Or(Name("foo").Equal(Value(5)), Name("bar").Equal(Value("baz")), Name("qux").Equal(Value(true))), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("baz"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"qux"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + BOOL: aws.Bool(true), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "($c) OR ($c) OR ($c)", + }, + }, + { + name: "invalid operand error And", + input: Name("").Size().GreaterThanEqual(Value(5)).And(Name("[5]").Between(Value(3), Value(9))), + err: invalidConditionOperand, + }, + { + name: "invalid operand error Or", + input: Name("").Size().GreaterThanEqual(Value(5)).Or(Name("[5]").Between(Value(3), Value(9))), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestNotCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic method not", + input: Name("foo").Equal(Value(5)).Not(), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "NOT ($c)", + }, + }, + { + name: "basic function not", + input: Not(Name("foo").Equal(Value(5))), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "NOT ($c)", + }, + }, + { + name: "invalid operand error not", + input: Name("").Size().GreaterThanEqual(Value(5)).Or(Name("[5]").Between(Value(3), Value(9))).Not(), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBetweenCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic method between for name", + input: Name("foo").Between(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c BETWEEN $c AND $c", + }, + }, + { + name: "basic method between for value", + input: Value(6).Between(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("6"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c BETWEEN $c AND $c", + }, + }, + { + name: "basic method between for size", + input: Name("foo").Size().Between(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n)", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c BETWEEN $c AND $c", + }, + }, + { + name: "invalid operand error between", + input: Name("[5]").Between(Value(3), Name("foo..bar")), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestInCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic method in for name", + input: Name("foo").In(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c IN ($c, $c)", + }, + }, + { + name: "basic method in for value", + input: Value(6).In(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("6"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c IN ($c, $c)", + }, + }, + { + name: "basic method in for size", + input: Name("foo").Size().In(Value(5), Value(7)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "size ($n)", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c IN ($c, $c)", + }, + }, + { + name: "invalid operand error in", + input: Name("[5]").In(Value(3), Name("foo..bar")), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestAttrExistsCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic attr exists", + input: Name("foo").AttributeExists(), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "attribute_exists ($c)", + }, + }, + { + name: "basic attr not exists", + input: Name("foo").AttributeNotExists(), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "attribute_not_exists ($c)", + }, + }, + { + name: "invalid operand error attr exists", + input: AttributeExists(Name("")), + err: invalidConditionOperand, + }, + { + name: "invalid operand error attr not exists", + input: AttributeNotExists(Name("foo..bar")), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestAttrTypeCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "attr type String", + input: Name("foo").AttributeType(String), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("S"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type String", + input: Name("foo").AttributeType(String), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("S"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type StringSet", + input: Name("foo").AttributeType(StringSet), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("SS"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type Number", + input: Name("foo").AttributeType(Number), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("N"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type NumberSet", + input: Name("foo").AttributeType(NumberSet), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("NS"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type Binary", + input: Name("foo").AttributeType(Binary), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("B"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type BinarySet", + input: Name("foo").AttributeType(BinarySet), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("BS"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type Boolean", + input: Name("foo").AttributeType(Boolean), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("BOOL"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type Null", + input: Name("foo").AttributeType(Null), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("NULL"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type List", + input: Name("foo").AttributeType(List), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("L"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type Map", + input: Name("foo").AttributeType(Map), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("M"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "attribute_type ($c, $c)", + }, + }, + { + name: "attr type invalid operand", + input: Name("").AttributeType(Map), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBeginsWithCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic begins with", + input: Name("foo").BeginsWith("bar"), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "begins_with ($c, $c)", + }, + }, + { + name: "begins with invalid operand", + input: Name("").BeginsWith("bar"), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestContainsCondition(t *testing.T) { + cases := []struct { + name string + input ConditionBuilder + expectedNode exprNode + err condErrorMode + }{ + { + name: "basic contains", + input: Name("foo").Contains("bar"), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "contains ($c, $c)", + }, + }, + { + name: "contains invalid operand", + input: Name("").Contains("bar"), + err: invalidConditionOperand, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestCompoundBuildCondition(t *testing.T) { + cases := []struct { + name string + inputCond ConditionBuilder + expected string + }{ + { + name: "and", + inputCond: ConditionBuilder{ + conditionList: []ConditionBuilder{ + {}, + {}, + {}, + {}, + }, + mode: andCond, + }, + expected: "($c) AND ($c) AND ($c) AND ($c)", + }, + { + name: "or", + inputCond: ConditionBuilder{ + conditionList: []ConditionBuilder{ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + }, + mode: orCond, + }, + expected: "($c) OR ($c) OR ($c) OR ($c) OR ($c) OR ($c) OR ($c)", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + en, err := compoundBuildCondition(c.inputCond, exprNode{}) + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, en.fmtExpr; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestInBuildCondition(t *testing.T) { + cases := []struct { + name string + inputCond ConditionBuilder + expected string + }{ + { + name: "in", + inputCond: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{}, + NameBuilder{}, + NameBuilder{}, + NameBuilder{}, + NameBuilder{}, + NameBuilder{}, + NameBuilder{}, + }, + mode: andCond, + }, + expected: "$c IN ($c, $c, $c, $c, $c, $c)", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + en, err := inBuildCondition(c.inputCond, exprNode{}) + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, en.fmtExpr; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +// If there is time implement mapEquals diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/doc.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/doc.go new file mode 100644 index 00000000..bdaa0af8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/doc.go @@ -0,0 +1,48 @@ +/* +Package expression provides types and functions to create Amazon DynamoDB +Expression strings, ExpressionAttributeNames maps, and ExpressionAttributeValues +maps. + +Using the Package + +The package represents the various DynamoDB Expressions as structs named +accordingly. For example, ConditionBuilder represents a DynamoDB Condition +Expression, an UpdateBuilder represents a DynamoDB Update Expression, and so on. +The following example shows a sample ConditionExpression and how to build an +equilvalent ConditionBuilder + + // Let :a be an ExpressionAttributeValue representing the string "No One You + // Know" + condExpr := "Artist = :a" + condBuilder := expression.Name("Artist").Equal(expression.Value("No One You Know")) + +In order to retrieve the formatted DynamoDB Expression strings, call the getter +methods on the Expression struct. To create the Expression struct, call the +Build() method on the Builder struct. Because some input structs, such as +QueryInput, can have multiple DynamoDB Expressions, multiple structs +representing various DynamoDB Expressions can be added to the Builder struct. +The following example shows a generic usage of the whole package. + + filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) + proj := expression.NamesList(expression.Name("SongTitle"), expression.Name("AlbumTitle")) + expr, err := expression.NewBuilder().WithFilter(filt).WithProjection(proj).Build() + if err != nil { + fmt.Println(err) + } + + input := &dynamodb.ScanInput{ + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + FilterExpression: expr.Filter(), + ProjectionExpression: expr.Projection(), + TableName: aws.String("Music"), + } + +The ExpressionAttributeNames and ExpressionAttributeValues member of the input +struct must always be assigned when using the Expression struct because all item +attribute names and values are aliased. That means that if the +ExpressionAttributeNames and ExpressionAttributeValues member is not assigned +with the corresponding Names() and Values() methods, the DynamoDB operation will +run into a logic error. +*/ +package expression diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error.go new file mode 100644 index 00000000..7378d7e2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error.go @@ -0,0 +1,59 @@ +package expression + +import ( + "fmt" +) + +// InvalidParameterError is returned if invalid parameters are encountered. This +// error specifically refers to situations where parameters are non-empty but +// have an invalid syntax/format. The error message includes the function +// that returned the error originally and the parameter type that was deemed +// invalid. +// +// Example: +// +// // err is of type InvalidParameterError +// _, err := expression.Name("foo..bar").BuildOperand() +type InvalidParameterError struct { + parameterType string + functionName string +} + +func (ipe InvalidParameterError) Error() string { + return fmt.Sprintf("%s error: invalid parameter: %s", ipe.functionName, ipe.parameterType) +} + +func newInvalidParameterError(funcName, paramType string) InvalidParameterError { + return InvalidParameterError{ + parameterType: paramType, + functionName: funcName, + } +} + +// UnsetParameterError is returned if parameters are empty and uninitialized. +// This error is returned if opaque structs (ConditionBuilder, NameBuilder, +// Builder, etc) are initialized outside of functions in the package, since all +// structs in the package are designed to be initialized with functions. +// +// Example: +// +// // err is of type UnsetParameterError +// _, err := expression.Builder{}.Build() +// _, err := expression.NewBuilder(). +// WithCondition(expression.ConditionBuilder{}). +// Build() +type UnsetParameterError struct { + parameterType string + functionName string +} + +func (upe UnsetParameterError) Error() string { + return fmt.Sprintf("%s error: unset parameter: %s", upe.functionName, upe.parameterType) +} + +func newUnsetParameterError(funcName, paramType string) UnsetParameterError { + return UnsetParameterError{ + parameterType: paramType, + functionName: funcName, + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error_test.go new file mode 100644 index 00000000..7b4b2217 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/error_test.go @@ -0,0 +1,51 @@ +// +build go1.7 + +package expression + +import ( + "testing" +) + +func TestInvalidParameterError(t *testing.T) { + cases := []struct { + name string + input InvalidParameterError + expected string + }{ + { + name: "invalid error", + input: newInvalidParameterError("func", "param"), + expected: "func error: invalid parameter: param", + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual := c.input.Error() + if e, a := c.expected, actual; e != a { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestUnsetParameterError(t *testing.T) { + cases := []struct { + name string + input UnsetParameterError + expected string + }{ + { + name: "unset error", + input: newUnsetParameterError("func", "param"), + expected: "func error: unset parameter: param", + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual := c.input.Error() + if e, a := c.expected, actual; e != a { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/examples_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/examples_test.go new file mode 100644 index 00000000..39ab0f63 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/examples_test.go @@ -0,0 +1,315 @@ +package expression_test + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/aws/aws-sdk-go/service/dynamodb/expression" +) + +// Using Projection Expression +// +// This example queries items in the Music table. The table has a partition key and +// sort key (Artist and SongTitle), but this query only specifies the partition key +// value. It returns song titles by the artist named "No One You Know". +func ExampleBuilder_WithProjection() { + svc := dynamodb.New(session.New()) + + // Construct the Key condition builder + keyCond := expression.Key("Artist").Equal(expression.Value("No One You Know")) + + // Create the project expression builder with a names list. + proj := expression.NamesList(expression.Name("SongTitle")) + + // Combine the key condition, and projection together as a DynamoDB expression + // builder. + expr, err := expression.NewBuilder(). + WithKeyCondition(keyCond). + WithProjection(proj). + Build() + if err != nil { + fmt.Println(err) + } + + // Use the built expression to populate the DynamoDB Query's API input + // parameters. + input := &dynamodb.QueryInput{ + ExpressionAttributeValues: expr.Values(), + KeyConditionExpression: expr.KeyCondition(), + ProjectionExpression: expr.Projection(), + TableName: aws.String("Music"), + } + + result, err := svc.Query(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case dynamodb.ErrCodeProvisionedThroughputExceededException: + fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) + case dynamodb.ErrCodeResourceNotFoundException: + fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) + case dynamodb.ErrCodeInternalServerError: + fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Using Key Condition Expression +// +// This example queries items in the Music table. The table has a partition key and +// sort key (Artist and SongTitle), but this query only specifies the partition key +// value. It returns song titles by the artist named "No One You Know". +func ExampleBuilder_WithKeyCondition() { + svc := dynamodb.New(session.New()) + + // Construct the Key condition builder + keyCond := expression.Key("Artist").Equal(expression.Value("No One You Know")) + + // Create the project expression builder with a names list. + proj := expression.NamesList(expression.Name("SongTitle")) + + // Combine the key condition, and projection together as a DynamoDB expression + // builder. + expr, err := expression.NewBuilder(). + WithKeyCondition(keyCond). + WithProjection(proj). + Build() + if err != nil { + fmt.Println(err) + } + + // Use the built expression to populate the DynamoDB Query's API input + // parameters. + input := &dynamodb.QueryInput{ + ExpressionAttributeValues: expr.Values(), + KeyConditionExpression: expr.KeyCondition(), + ProjectionExpression: expr.Projection(), + TableName: aws.String("Music"), + } + + result, err := svc.Query(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case dynamodb.ErrCodeProvisionedThroughputExceededException: + fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) + case dynamodb.ErrCodeResourceNotFoundException: + fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) + case dynamodb.ErrCodeInternalServerError: + fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Using Filter Expression +// +// This example scans the entire Music table, and then narrows the results to songs +// by the artist "No One You Know". For each item, only the album title and song title +// are returned. +func ExampleBuilder_WithFilter() { + svc := dynamodb.New(session.New()) + + // Construct the filter builder with a name and value. + filt := expression.Name("Artist").Equal(expression.Value("No One You Know")) + + // Create the names list projection of names to project. + proj := expression.NamesList( + expression.Name("AlbumTitle"), + expression.Name("SongTitle"), + ) + + // Using the filter and projections create a DynamoDB expression from the two. + expr, err := expression.NewBuilder(). + WithFilter(filt). + WithProjection(proj). + Build() + if err != nil { + fmt.Println(err) + } + + // Use the built expression to populate the DynamoDB Scan API input parameters. + input := &dynamodb.ScanInput{ + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + FilterExpression: expr.Filter(), + ProjectionExpression: expr.Projection(), + TableName: aws.String("Music"), + } + + result, err := svc.Scan(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case dynamodb.ErrCodeProvisionedThroughputExceededException: + fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) + case dynamodb.ErrCodeResourceNotFoundException: + fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) + case dynamodb.ErrCodeInternalServerError: + fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Using Update Expression +// +// This example updates an item in the Music table. It adds a new attribute (Year) and +// modifies the AlbumTitle attribute. All of the attributes in the item, as they appear +// after the update, are returned in the response. +func ExampleBuilder_WithUpdate() { + svc := dynamodb.New(session.New()) + + // Create an update to set two fields in the table. + update := expression.Set( + expression.Name("Year"), + expression.Value(2015), + ).Set( + expression.Name("AlbumTitle"), + expression.Value("Louder Than Ever"), + ) + + // Create the DynamoDB expression from the Update. + expr, err := expression.NewBuilder(). + WithUpdate(update). + Build() + + // Use the built expression to populate the DynamoDB UpdateItem API + // input parameters. + input := &dynamodb.UpdateItemInput{ + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + Key: map[string]*dynamodb.AttributeValue{ + "Artist": { + S: aws.String("Acme Band"), + }, + "SongTitle": { + S: aws.String("Happy Day"), + }, + }, + ReturnValues: aws.String("ALL_NEW"), + TableName: aws.String("Music"), + UpdateExpression: expr.Update(), + } + + result, err := svc.UpdateItem(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case dynamodb.ErrCodeConditionalCheckFailedException: + fmt.Println(dynamodb.ErrCodeConditionalCheckFailedException, aerr.Error()) + case dynamodb.ErrCodeProvisionedThroughputExceededException: + fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) + case dynamodb.ErrCodeResourceNotFoundException: + fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) + case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: + fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) + case dynamodb.ErrCodeInternalServerError: + fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Using Condition Expression +// +// This example deletes an item from the Music table if the rating is lower than +// 7. +func ExampleBuilder_WithCondition() { + svc := dynamodb.New(session.New()) + + // Create a condition where the Rating field must be less than 7. + cond := expression.Name("Rating").LessThan(expression.Value(7)) + + // Create a DynamoDB expression from the condition. + expr, err := expression.NewBuilder(). + WithCondition(cond). + Build() + if err != nil { + fmt.Println(err) + } + + // Use the built expression to populate the DeleteItem API operation with the + // condition expression. + input := &dynamodb.DeleteItemInput{ + Key: map[string]*dynamodb.AttributeValue{ + "Artist": { + S: aws.String("No One You Know"), + }, + "SongTitle": { + S: aws.String("Scared of My Shadow"), + }, + }, + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + ConditionExpression: expr.Condition(), + TableName: aws.String("Music"), + } + + result, err := svc.DeleteItem(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case dynamodb.ErrCodeConditionalCheckFailedException: + fmt.Println(dynamodb.ErrCodeConditionalCheckFailedException, aerr.Error()) + case dynamodb.ErrCodeProvisionedThroughputExceededException: + fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) + case dynamodb.ErrCodeResourceNotFoundException: + fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) + case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: + fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) + case dynamodb.ErrCodeInternalServerError: + fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression.go new file mode 100644 index 00000000..75a33f06 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression.go @@ -0,0 +1,635 @@ +package expression + +import ( + "fmt" + "sort" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +// expressionType specifies the type of Expression. Declaring this type is used +// to eliminate magic strings +type expressionType string + +const ( + projection expressionType = "projection" + keyCondition = "keyCondition" + condition = "condition" + filter = "filter" + update = "update" +) + +// Implement the Sort interface +type typeList []expressionType + +func (l typeList) Len() int { + return len(l) +} + +func (l typeList) Less(i, j int) bool { + return string(l[i]) < string(l[j]) +} + +func (l typeList) Swap(i, j int) { + l[i], l[j] = l[j], l[i] +} + +// Builder represents the struct that builds the Expression struct. Methods such +// as WithProjection() and WithCondition() can add different kinds of DynamoDB +// Expressions to the Builder. The method Build() creates an Expression struct +// with the specified types of DynamoDB Expressions. +// +// Example: +// +// keyCond := expression.Key("someKey").Equal(expression.Value("someValue")) +// proj := expression.NamesList(expression.Name("aName"), expression.Name("anotherName"), expression.Name("oneOtherName")) +// +// builder := expression.NewBuilder().WithKeyCondition(keyCond).WithProjection(proj) +// expression := builder.Build() +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +type Builder struct { + expressionMap map[expressionType]treeBuilder +} + +// NewBuilder returns an empty Builder struct. Methods such as WithProjection() +// and WithCondition() can add different kinds of DynamoDB Expressions to the +// Builder. The method Build() creates an Expression struct with the specified +// types of DynamoDB Expressions. +// +// Example: +// +// keyCond := expression.Key("someKey").Equal(expression.Value("someValue")) +// proj := expression.NamesList(expression.Name("aName"), expression.Name("anotherName"), expression.Name("oneOtherName")) +// builder := expression.NewBuilder().WithKeyCondition(keyCond).WithProjection(proj) +func NewBuilder() Builder { + return Builder{} +} + +// Build builds an Expression struct representing multiple types of DynamoDB +// Expressions. Getter methods on the resulting Expression struct returns the +// DynamoDB Expression strings as well as the maps that correspond to +// ExpressionAttributeNames and ExpressionAttributeValues. Calling Build() on an +// empty Builder returns the typed error EmptyParameterError. +// +// Example: +// +// // keyCond represents the Key Condition Expression +// keyCond := expression.Key("someKey").Equal(expression.Value("someValue")) +// // proj represents the Projection Expression +// proj := expression.NamesList(expression.Name("aName"), expression.Name("anotherName"), expression.Name("oneOtherName")) +// +// // Add keyCond and proj to builder as a Key Condition and Projection +// // respectively +// builder := expression.NewBuilder().WithKeyCondition(keyCond).WithProjection(proj) +// expression := builder.Build() +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (b Builder) Build() (Expression, error) { + if b.expressionMap == nil { + return Expression{}, newUnsetParameterError("Build", "Builder") + } + + aliasList, expressionMap, err := b.buildChildTrees() + if err != nil { + return Expression{}, err + } + + expression := Expression{ + expressionMap: expressionMap, + } + + if len(aliasList.namesList) != 0 { + namesMap := map[string]*string{} + for ind, val := range aliasList.namesList { + namesMap[fmt.Sprintf("#%v", ind)] = aws.String(val) + } + expression.namesMap = namesMap + } + + if len(aliasList.valuesList) != 0 { + valuesMap := map[string]*dynamodb.AttributeValue{} + for i := 0; i < len(aliasList.valuesList); i++ { + valuesMap[fmt.Sprintf(":%v", i)] = &aliasList.valuesList[i] + } + expression.valuesMap = valuesMap + } + + return expression, nil +} + +// buildChildTrees compiles the list of treeBuilders that are the children of +// the argument Builder. The returned aliasList represents all the alias tokens +// used in the expression strings. The returned map[string]string maps the type +// of expression (i.e. "condition", "update") to the appropriate expression +// string. +func (b Builder) buildChildTrees() (aliasList, map[expressionType]string, error) { + aList := aliasList{} + formattedExpressions := map[expressionType]string{} + keys := typeList{} + + for expressionType := range b.expressionMap { + keys = append(keys, expressionType) + } + + sort.Sort(keys) + + for _, key := range keys { + node, err := b.expressionMap[key].buildTree() + if err != nil { + return aliasList{}, nil, err + } + formattedExpression, err := node.buildExpressionString(&aList) + if err != nil { + return aliasList{}, nil, err + } + formattedExpressions[key] = formattedExpression + } + + return aList, formattedExpressions, nil +} + +// WithCondition method adds the argument ConditionBuilder as a Condition +// Expression to the argument Builder. If the argument Builder already has a +// ConditionBuilder representing a Condition Expression, WithCondition() +// overwrites the existing ConditionBuilder. +// +// Example: +// +// // let builder be an existing Builder{} and cond be an existing +// // ConditionBuilder{} +// builder = builder.WithCondition(cond) +// +// // add other DynamoDB Expressions to the builder. let proj be an already +// // existing ProjectionBuilder +// builder = builder.WithProjection(proj) +// // create an Expression struct +// expression := builder.Build() +func (b Builder) WithCondition(conditionBuilder ConditionBuilder) Builder { + if b.expressionMap == nil { + b.expressionMap = map[expressionType]treeBuilder{} + } + b.expressionMap[condition] = conditionBuilder + return b +} + +// WithProjection method adds the argument ProjectionBuilder as a Projection +// Expression to the argument Builder. If the argument Builder already has a +// ProjectionBuilder representing a Projection Expression, WithProjection() +// overwrites the existing ProjectionBuilder. +// +// Example: +// +// // let builder be an existing Builder{} and proj be an existing +// // ProjectionBuilder{} +// builder = builder.WithProjection(proj) +// +// // add other DynamoDB Expressions to the builder. let cond be an already +// // existing ConditionBuilder +// builder = builder.WithCondition(cond) +// // create an Expression struct +// expression := builder.Build() +func (b Builder) WithProjection(projectionBuilder ProjectionBuilder) Builder { + if b.expressionMap == nil { + b.expressionMap = map[expressionType]treeBuilder{} + } + b.expressionMap[projection] = projectionBuilder + return b +} + +// WithKeyCondition method adds the argument KeyConditionBuilder as a Key +// Condition Expression to the argument Builder. If the argument Builder already +// has a KeyConditionBuilder representing a Key Condition Expression, +// WithKeyCondition() overwrites the existing KeyConditionBuilder. +// +// Example: +// +// // let builder be an existing Builder{} and keyCond be an existing +// // KeyConditionBuilder{} +// builder = builder.WithKeyCondition(keyCond) +// +// // add other DynamoDB Expressions to the builder. let cond be an already +// // existing ConditionBuilder +// builder = builder.WithCondition(cond) +// // create an Expression struct +// expression := builder.Build() +func (b Builder) WithKeyCondition(keyConditionBuilder KeyConditionBuilder) Builder { + if b.expressionMap == nil { + b.expressionMap = map[expressionType]treeBuilder{} + } + b.expressionMap[keyCondition] = keyConditionBuilder + return b +} + +// WithFilter method adds the argument ConditionBuilder as a Filter Expression +// to the argument Builder. If the argument Builder already has a +// ConditionBuilder representing a Filter Expression, WithFilter() +// overwrites the existing ConditionBuilder. +// +// Example: +// +// // let builder be an existing Builder{} and filt be an existing +// // ConditionBuilder{} +// builder = builder.WithFilter(filt) +// +// // add other DynamoDB Expressions to the builder. let cond be an already +// // existing ConditionBuilder +// builder = builder.WithCondition(cond) +// // create an Expression struct +// expression := builder.Build() +func (b Builder) WithFilter(filterBuilder ConditionBuilder) Builder { + if b.expressionMap == nil { + b.expressionMap = map[expressionType]treeBuilder{} + } + b.expressionMap[filter] = filterBuilder + return b +} + +// WithUpdate method adds the argument UpdateBuilder as an Update Expression +// to the argument Builder. If the argument Builder already has a UpdateBuilder +// representing a Update Expression, WithUpdate() overwrites the existing +// UpdateBuilder. +// +// Example: +// +// // let builder be an existing Builder{} and update be an existing +// // UpdateBuilder{} +// builder = builder.WithUpdate(update) +// +// // add other DynamoDB Expressions to the builder. let cond be an already +// // existing ConditionBuilder +// builder = builder.WithCondition(cond) +// // create an Expression struct +// expression := builder.Build() +func (b Builder) WithUpdate(updateBuilder UpdateBuilder) Builder { + if b.expressionMap == nil { + b.expressionMap = map[expressionType]treeBuilder{} + } + b.expressionMap[update] = updateBuilder + return b +} + +// Expression represents a collection of DynamoDB Expressions. The getter +// methods of the Expression struct retrieves the formatted DynamoDB +// Expressions, ExpressionAttributeNames, and ExpressionAttributeValues. +// +// Example: +// +// // keyCond represents the Key Condition Expression +// keyCond := expression.Key("someKey").Equal(expression.Value("someValue")) +// // proj represents the Projection Expression +// proj := expression.NamesList(expression.Name("aName"), expression.Name("anotherName"), expression.Name("oneOtherName")) +// +// // Add keyCond and proj to builder as a Key Condition and Projection +// // respectively +// builder := expression.NewBuilder().WithKeyCondition(keyCond).WithProjection(proj) +// expression := builder.Build() +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +type Expression struct { + expressionMap map[expressionType]string + namesMap map[string]*string + valuesMap map[string]*dynamodb.AttributeValue +} + +// treeBuilder interface is fulfilled by builder structs that represent +// different types of Expressions. +type treeBuilder interface { + // buildTree creates the tree structure of exprNodes. The tree structure + // of exprNodes are traversed in order to build the string representing + // different types of Expressions as well as the maps that represent + // ExpressionAttributeNames and ExpressionAttributeValues. + buildTree() (exprNode, error) +} + +// Condition returns the *string corresponding to the Condition Expression +// of the argument Expression. This method is used to satisfy the members of +// DynamoDB input structs. If the Expression does not have a condition +// expression this method returns nil. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// deleteInput := dynamodb.DeleteItemInput{ +// ConditionExpression: expression.Condition(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// Key: map[string]*dynamodb.AttributeValue{ +// "PartitionKey": &dynamodb.AttributeValue{ +// S: aws.String("SomeKey"), +// }, +// }, +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Condition() *string { + return e.returnExpression(condition) +} + +// Filter returns the *string corresponding to the Filter Expression of the +// argument Expression. This method is used to satisfy the members of DynamoDB +// input structs. If the Expression does not have a filter expression this +// method returns nil. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// FilterExpression: expression.Filter(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Filter() *string { + return e.returnExpression(filter) +} + +// Projection returns the *string corresponding to the Projection Expression +// of the argument Expression. This method is used to satisfy the members of +// DynamoDB input structs. If the Expression does not have a projection +// expression this method returns nil. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Projection() *string { + return e.returnExpression(projection) +} + +// KeyCondition returns the *string corresponding to the Key Condition +// Expression of the argument Expression. This method is used to satisfy the +// members of DynamoDB input structs. If the argument Expression does not have a +// KeyConditionExpression, KeyCondition() returns nil. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) KeyCondition() *string { + return e.returnExpression(keyCondition) +} + +// Update returns the *string corresponding to the Update Expression of the +// argument Expression. This method is used to satisfy the members of DynamoDB +// input structs. If the argument Expression does not have a UpdateExpression, +// Update() returns nil. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// updateInput := dynamodb.UpdateInput{ +// Key: map[string]*dynamodb.AttributeValue{ +// "PartitionKey": { +// S: aws.String("someKey"), +// }, +// }, +// UpdateExpression: expression.Update(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Update() *string { + return e.returnExpression(update) +} + +// Names returns the map[string]*string corresponding to the +// ExpressionAttributeNames of the argument Expression. This method is used to +// satisfy the members of DynamoDB input structs. If Expression does not use +// ExpressionAttributeNames, this method returns nil. The +// ExpressionAttributeNames and ExpressionAttributeValues member of the input +// struct must always be assigned when using the Expression struct since all +// item attribute names and values are aliased. That means that if the +// ExpressionAttributeNames and ExpressionAttributeValues member is not assigned +// with the corresponding Names() and Values() methods, the DynamoDB operation +// will run into a logic error. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Names() map[string]*string { + return e.namesMap +} + +// Values returns the map[string]*dynamodb.AttributeValue corresponding to +// the ExpressionAttributeValues of the argument Expression. This method is used +// to satisfy the members of DynamoDB input structs. If Expression does not use +// ExpressionAttributeValues, this method returns nil. The +// ExpressionAttributeNames and ExpressionAttributeValues member of the input +// struct must always be assigned when using the Expression struct since all +// item attribute names and values are aliased. That means that if the +// ExpressionAttributeNames and ExpressionAttributeValues member is not assigned +// with the corresponding Names() and Values() methods, the DynamoDB operation +// will run into a logic error. +// +// Example: +// +// // let expression be an instance of Expression{} +// +// queryInput := dynamodb.QueryInput{ +// KeyConditionExpression: expression.KeyCondition(), +// ProjectionExpression: expression.Projection(), +// ExpressionAttributeNames: expression.Names(), +// ExpressionAttributeValues: expression.Values(), +// TableName: aws.String("SomeTable"), +// } +func (e Expression) Values() map[string]*dynamodb.AttributeValue { + return e.valuesMap +} + +// returnExpression returns *string corresponding to the type of Expression +// string specified by the expressionType. If there is no corresponding +// expression available in Expression, the method returns nil +func (e Expression) returnExpression(expressionType expressionType) *string { + if e.expressionMap == nil { + return nil + } + return aws.String(e.expressionMap[expressionType]) +} + +// exprNode are the generic nodes that represents both Operands and +// Conditions. The purpose of exprNode is to be able to call an generic +// recursive function on the top level exprNode to be able to determine a root +// node in order to deduplicate name aliases. +// fmtExpr is a string that has escaped characters to refer to +// names/values/children which needs to be aliased at runtime in order to avoid +// duplicate values. The rules are as follows: +// $n: Indicates that an alias of a name needs to be inserted. The +// corresponding name to be alias is in the []names slice. +// $v: Indicates that an alias of a value needs to be inserted. The +// corresponding value to be alias is in the []values slice. +// $c: Indicates that the fmtExpr of a child exprNode needs to be inserted. +// The corresponding child node is in the []children slice. +type exprNode struct { + names []string + values []dynamodb.AttributeValue + children []exprNode + fmtExpr string +} + +// aliasList keeps track of all the names we need to alias in the nested +// struct of conditions and operands. This allows each alias to be unique. +// aliasList is passed in as a pointer when buildChildTrees is called in +// order to deduplicate all names within the tree strcuture of the exprNodes. +type aliasList struct { + namesList []string + valuesList []dynamodb.AttributeValue +} + +// buildExpressionString returns a string with aliasing for names/values +// specified by aliasList. The string corresponds to the expression that the +// exprNode tree represents. +func (en exprNode) buildExpressionString(aliasList *aliasList) (string, error) { + // Since each exprNode contains a slice of names, values, and children that + // correspond to the escaped characters, we an index to traverse the slices + index := struct { + name, value, children int + }{} + + formattedExpression := en.fmtExpr + + for i := 0; i < len(formattedExpression); { + if formattedExpression[i] != '$' { + i++ + continue + } + + if i == len(formattedExpression)-1 { + return "", fmt.Errorf("buildexprNode error: invalid escape character") + } + + var alias string + var err error + // if an escaped character is found, substitute it with the proper alias + // TODO consider AST instead of string in the future + switch formattedExpression[i+1] { + case 'n': + alias, err = substitutePath(index.name, en, aliasList) + if err != nil { + return "", err + } + index.name++ + + case 'v': + alias, err = substituteValue(index.value, en, aliasList) + if err != nil { + return "", err + } + index.value++ + + case 'c': + alias, err = substituteChild(index.children, en, aliasList) + if err != nil { + return "", err + } + index.children++ + + default: + return "", fmt.Errorf("buildexprNode error: invalid escape rune %#v", formattedExpression[i+1]) + } + formattedExpression = formattedExpression[:i] + alias + formattedExpression[i+2:] + i += len(alias) + } + + return formattedExpression, nil +} + +// substitutePath substitutes the escaped character $n with the appropriate +// alias. +func substitutePath(index int, node exprNode, aliasList *aliasList) (string, error) { + if index >= len(node.names) { + return "", fmt.Errorf("substitutePath error: exprNode []names out of range") + } + str, err := aliasList.aliasPath(node.names[index]) + if err != nil { + return "", err + } + return str, nil +} + +// substituteValue substitutes the escaped character $v with the appropriate +// alias. +func substituteValue(index int, node exprNode, aliasList *aliasList) (string, error) { + if index >= len(node.values) { + return "", fmt.Errorf("substituteValue error: exprNode []values out of range") + } + str, err := aliasList.aliasValue(node.values[index]) + if err != nil { + return "", err + } + return str, nil +} + +// substituteChild substitutes the escaped character $c with the appropriate +// alias. +func substituteChild(index int, node exprNode, aliasList *aliasList) (string, error) { + if index >= len(node.children) { + return "", fmt.Errorf("substituteChild error: exprNode []children out of range") + } + return node.children[index].buildExpressionString(aliasList) +} + +// aliasValue returns the corresponding alias to the dav value argument. Since +// values are not deduplicated as of now, all values are just appended to the +// aliasList and given the index as the alias. +func (al *aliasList) aliasValue(dav dynamodb.AttributeValue) (string, error) { + al.valuesList = append(al.valuesList, dav) + return fmt.Sprintf(":%d", len(al.valuesList)-1), nil +} + +// aliasPath returns the corresponding alias to the argument string. The +// argument is checked against all existing aliasList names in order to avoid +// duplicate strings getting two different aliases. +func (al *aliasList) aliasPath(nm string) (string, error) { + for ind, name := range al.namesList { + if nm == name { + return fmt.Sprintf("#%d", ind), nil + } + } + al.namesList = append(al.namesList, nm) + return fmt.Sprintf("#%d", len(al.namesList)-1), nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression_test.go new file mode 100644 index 00000000..29af8620 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/expression_test.go @@ -0,0 +1,1082 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +type exprErrorMode string + +const ( + noExpressionError exprErrorMode = "" + // invalidEscChar error will occer if the escape char '$' is either followed + // by an unsupported character or if the escape char is the last character + invalidEscChar = "invalid escape" + // outOfRange error will occur if there are more escaped chars than there are + // actual values to be aliased. + outOfRange = "out of range" + // invalidBuilderOperand error will occur if an invalid operand is used + // as input for Build() + invalidExpressionBuildOperand = "BuildOperand error" + // unsetBuilder error will occur if Build() is called on an unset Builder + unsetBuilder = "unset parameter: Builder" + // unsetConditionBuilder error will occur if an unset ConditionBuilder is + // used in WithCondition() + unsetConditionBuilder = "unset parameter: ConditionBuilder" +) + +func TestBuild(t *testing.T) { + cases := []struct { + name string + input Builder + expected Expression + err exprErrorMode + }{ + { + name: "condition", + input: NewBuilder().WithCondition(Name("foo").Equal(Value(5))), + expected: Expression{ + expressionMap: map[expressionType]string{ + condition: "#0 = :0", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + }, + valuesMap: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + }, + }, + { + name: "projection", + input: NewBuilder().WithProjection(NamesList(Name("foo"), Name("bar"), Name("baz"))), + expected: Expression{ + expressionMap: map[expressionType]string{ + projection: "#0, #1, #2", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + "#2": aws.String("baz"), + }, + }, + }, + { + name: "keyCondition", + input: NewBuilder().WithKeyCondition(Key("foo").Equal(Value(5))), + expected: Expression{ + expressionMap: map[expressionType]string{ + keyCondition: "#0 = :0", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + }, + valuesMap: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + }, + }, + { + name: "filter", + input: NewBuilder().WithFilter(Name("foo").Equal(Value(5))), + expected: Expression{ + expressionMap: map[expressionType]string{ + filter: "#0 = :0", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + }, + valuesMap: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + }, + }, + { + name: "update", + input: NewBuilder().WithUpdate(Set(Name("foo"), (Value(5)))), + expected: Expression{ + expressionMap: map[expressionType]string{ + update: "SET #0 = :0\n", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + }, + valuesMap: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + }, + }, + { + name: "compound", + input: NewBuilder(). + WithCondition(Name("foo").Equal(Value(5))). + WithFilter(Name("bar").LessThan(Value(6))). + WithProjection(NamesList(Name("foo"), Name("bar"), Name("baz"))). + WithKeyCondition(Key("foo").Equal(Value(5))). + WithUpdate(Set(Name("foo"), Value(5))), + expected: Expression{ + expressionMap: map[expressionType]string{ + condition: "#0 = :0", + filter: "#1 < :1", + projection: "#0, #1, #2", + keyCondition: "#0 = :2", + update: "SET #0 = :3\n", + }, + namesMap: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + "#2": aws.String("baz"), + }, + valuesMap: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + ":1": { + N: aws.String("6"), + }, + ":2": { + N: aws.String("5"), + }, + ":3": { + N: aws.String("5"), + }, + }, + }, + }, + { + name: "invalid Builder", + input: NewBuilder().WithCondition(Name("").Equal(Value(5))), + err: invalidExpressionBuildOperand, + }, + { + name: "unset Builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestCondition(t *testing.T) { + cases := []struct { + name string + input Builder + expected *string + err exprErrorMode + }{ + { + name: "condition", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + condition: Name("foo").Equal(Value(5)), + }, + }, + expected: aws.String("#0 = :0"), + }, + { + name: "unset builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Condition() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestFilter(t *testing.T) { + cases := []struct { + name string + input Builder + expected *string + err exprErrorMode + }{ + { + name: "filter", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + filter: Name("foo").Equal(Value(5)), + }, + }, + expected: aws.String("#0 = :0"), + }, + { + name: "unset builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Filter() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestProjection(t *testing.T) { + cases := []struct { + name string + input Builder + expected *string + err exprErrorMode + }{ + { + name: "projection", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + projection: NamesList(Name("foo"), Name("bar"), Name("baz")), + }, + }, + expected: aws.String("#0, #1, #2"), + }, + { + name: "unset builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Projection() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestKeyCondition(t *testing.T) { + cases := []struct { + name string + input Builder + expected *string + err exprErrorMode + }{ + { + name: "keyCondition", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + keyCondition: KeyConditionBuilder{ + operandList: []OperandBuilder{ + KeyBuilder{ + key: "foo", + }, + ValueBuilder{ + value: 5, + }, + }, + mode: equalKeyCond, + }, + }, + }, + expected: aws.String("#0 = :0"), + }, + { + name: "empty builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.KeyCondition() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestUpdate(t *testing.T) { + cases := []struct { + name string + input Builder + expected *string + err exprErrorMode + }{ + { + name: "update", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + update: UpdateBuilder{ + operationList: map[operationMode][]operationBuilder{ + setOperation: { + { + name: NameBuilder{ + name: "foo", + }, + value: ValueBuilder{ + value: 5, + }, + mode: setOperation, + }, + }, + }, + }, + }, + }, + expected: aws.String("SET #0 = :0\n"), + }, + { + name: "multiple sets", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + update: UpdateBuilder{ + operationList: map[operationMode][]operationBuilder{ + setOperation: { + { + name: NameBuilder{ + name: "foo", + }, + value: ValueBuilder{ + value: 5, + }, + mode: setOperation, + }, + { + name: NameBuilder{ + name: "bar", + }, + value: ValueBuilder{ + value: 6, + }, + mode: setOperation, + }, + { + name: NameBuilder{ + name: "baz", + }, + value: ValueBuilder{ + value: 7, + }, + mode: setOperation, + }, + }, + }, + }, + }, + }, + expected: aws.String("SET #0 = :0, #1 = :1, #2 = :2\n"), + }, + { + name: "unset builder", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Update() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestNames(t *testing.T) { + cases := []struct { + name string + input Builder + expected map[string]*string + err exprErrorMode + }{ + { + name: "projection", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + projection: NamesList(Name("foo"), Name("bar"), Name("baz")), + }, + }, + expected: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + "#2": aws.String("baz"), + }, + }, + { + name: "aggregate", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + condition: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "foo", + }, + ValueBuilder{ + value: 5, + }, + }, + mode: equalCond, + }, + filter: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "bar", + }, + ValueBuilder{ + value: 6, + }, + }, + mode: lessThanCond, + }, + projection: ProjectionBuilder{ + names: []NameBuilder{ + { + name: "foo", + }, + { + name: "bar", + }, + { + name: "baz", + }, + }, + }, + }, + }, + expected: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + "#2": aws.String("baz"), + }, + }, + { + name: "unset", + input: Builder{}, + err: unsetBuilder, + }, + { + name: "unset ConditionBuilder", + input: NewBuilder().WithCondition(ConditionBuilder{}), + err: unsetConditionBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Names() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestValues(t *testing.T) { + cases := []struct { + name string + input Builder + expected map[string]*dynamodb.AttributeValue + err exprErrorMode + }{ + { + name: "condition", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + condition: Name("foo").Equal(Value(5)), + }, + }, + expected: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + }, + { + name: "aggregate", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + condition: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "foo", + }, + ValueBuilder{ + value: 5, + }, + }, + mode: equalCond, + }, + filter: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "bar", + }, + ValueBuilder{ + value: 6, + }, + }, + mode: lessThanCond, + }, + projection: ProjectionBuilder{ + names: []NameBuilder{ + { + name: "foo", + }, + { + name: "bar", + }, + { + name: "baz", + }, + }, + }, + }, + }, + expected: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + ":1": { + N: aws.String("6"), + }, + }, + }, + { + name: "unset", + input: Builder{}, + err: unsetBuilder, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.Build() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + actual := expr.Values() + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestBuildChildTrees(t *testing.T) { + cases := []struct { + name string + input Builder + expectedaliasList aliasList + expectedStringMap map[expressionType]string + err exprErrorMode + }{ + { + name: "aggregate", + input: Builder{ + expressionMap: map[expressionType]treeBuilder{ + condition: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "foo", + }, + ValueBuilder{ + value: 5, + }, + }, + mode: equalCond, + }, + filter: ConditionBuilder{ + operandList: []OperandBuilder{ + NameBuilder{ + name: "bar", + }, + ValueBuilder{ + value: 6, + }, + }, + mode: lessThanCond, + }, + projection: ProjectionBuilder{ + names: []NameBuilder{ + { + name: "foo", + }, + { + name: "bar", + }, + { + name: "baz", + }, + }, + }, + }, + }, + expectedaliasList: aliasList{ + namesList: []string{"foo", "bar", "baz"}, + valuesList: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + { + N: aws.String("6"), + }, + }, + }, + expectedStringMap: map[expressionType]string{ + condition: "#0 = :0", + filter: "#1 < :1", + projection: "#0, #1, #2", + }, + }, + { + name: "unset", + input: Builder{}, + expectedaliasList: aliasList{}, + expectedStringMap: map[expressionType]string{}, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actualAL, actualSM, err := c.input.buildChildTrees() + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + } + if e, a := c.expectedaliasList, actualAL; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := c.expectedStringMap, actualSM; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestBuildExpressionString(t *testing.T) { + cases := []struct { + name string + input exprNode + expectedNames map[string]*string + expectedValues map[string]*dynamodb.AttributeValue + expectedExpression string + err exprErrorMode + }{ + { + name: "basic name", + input: exprNode{ + names: []string{"foo"}, + fmtExpr: "$n", + }, + + expectedValues: map[string]*dynamodb.AttributeValue{}, + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + }, + expectedExpression: "#0", + }, + { + name: "basic value", + input: exprNode{ + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + expectedNames: map[string]*string{}, + expectedValues: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + expectedExpression: ":0", + }, + { + name: "nested path", + input: exprNode{ + names: []string{"foo", "bar"}, + fmtExpr: "$n.$n", + }, + + expectedValues: map[string]*dynamodb.AttributeValue{}, + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + }, + expectedExpression: "#0.#1", + }, + { + name: "nested path with index", + input: exprNode{ + names: []string{"foo", "bar", "baz"}, + fmtExpr: "$n.$n[0].$n", + }, + expectedValues: map[string]*dynamodb.AttributeValue{}, + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + "#1": aws.String("bar"), + "#2": aws.String("baz"), + }, + expectedExpression: "#0.#1[0].#2", + }, + { + name: "basic size", + input: exprNode{ + names: []string{"foo"}, + fmtExpr: "size ($n)", + }, + expectedValues: map[string]*dynamodb.AttributeValue{}, + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + }, + expectedExpression: "size (#0)", + }, + { + name: "duplicate path name", + input: exprNode{ + names: []string{"foo", "foo"}, + fmtExpr: "$n.$n", + }, + expectedValues: map[string]*dynamodb.AttributeValue{}, + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + }, + expectedExpression: "#0.#0", + }, + { + name: "equal expression", + input: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + + expectedNames: map[string]*string{ + "#0": aws.String("foo"), + }, + expectedValues: map[string]*dynamodb.AttributeValue{ + ":0": { + N: aws.String("5"), + }, + }, + expectedExpression: "#0 = :0", + }, + { + name: "missing char after $", + input: exprNode{ + names: []string{"foo", "foo"}, + fmtExpr: "$n.$", + }, + err: invalidEscChar, + }, + { + name: "names out of range", + input: exprNode{ + names: []string{"foo"}, + fmtExpr: "$n.$n", + }, + err: outOfRange, + }, + { + name: "values out of range", + input: exprNode{ + fmtExpr: "$v", + }, + err: outOfRange, + }, + { + name: "children out of range", + input: exprNode{ + fmtExpr: "$c", + }, + err: outOfRange, + }, + { + name: "invalid escape char", + input: exprNode{ + fmtExpr: "$!", + }, + err: invalidEscChar, + }, + { + name: "unset exprNode", + input: exprNode{}, + expectedExpression: "", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + expr, err := c.input.buildExpressionString(&aliasList{}) + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedExpression, expr; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestAliasValue(t *testing.T) { + cases := []struct { + name string + input *aliasList + expected string + err exprErrorMode + }{ + { + name: "first item", + input: &aliasList{}, + expected: ":0", + }, + { + name: "fifth item", + input: &aliasList{ + valuesList: []dynamodb.AttributeValue{ + {}, + {}, + {}, + {}, + }, + }, + expected: ":4", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + str, err := c.input.aliasValue(dynamodb.AttributeValue{}) + + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestAliasPath(t *testing.T) { + cases := []struct { + name string + inputList *aliasList + inputName string + expected string + err exprErrorMode + }{ + { + name: "new unique item", + inputList: &aliasList{}, + inputName: "foo", + expected: "#0", + }, + { + name: "duplicate item", + inputList: &aliasList{ + namesList: []string{ + "foo", + "bar", + }, + }, + inputName: "foo", + expected: "#0", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + str, err := c.inputList.aliasPath(c.inputName) + + if c.err != noExpressionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, str; e != a { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition.go new file mode 100644 index 00000000..a8bb8317 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition.go @@ -0,0 +1,557 @@ +package expression + +import ( + "fmt" +) + +// keyConditionMode specifies the types of the struct KeyConditionBuilder, +// representing the different types of KeyConditions (i.e. And, Or, Between, ...) +type keyConditionMode int + +const ( + // unsetKeyCond catches errors for unset KeyConditionBuilder structs + unsetKeyCond keyConditionMode = iota + // equalKeyCond represents the Equals KeyCondition + equalKeyCond + // lessThanKeyCond represents the Less Than KeyCondition + lessThanKeyCond + // lessThanEqualKeyCond represents the Less Than Or Equal To KeyCondition + lessThanEqualKeyCond + // greaterThanKeyCond represents the Greater Than KeyCondition + greaterThanKeyCond + // greaterThanEqualKeyCond represents the Greater Than Or Equal To KeyCondition + greaterThanEqualKeyCond + // andKeyCond represents the Logical And KeyCondition + andKeyCond + // betweenKeyCond represents the Between KeyCondition + betweenKeyCond + // beginsWithKeyCond represents the Begins With KeyCondition + beginsWithKeyCond +) + +// KeyConditionBuilder represents Key Condition Expressions in DynamoDB. +// KeyConditionBuilders are the building blocks of Expressions. +// More Information at: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.KeyConditionExpressions +type KeyConditionBuilder struct { + operandList []OperandBuilder + keyConditionList []KeyConditionBuilder + mode keyConditionMode +} + +// KeyEqual returns a KeyConditionBuilder representing the equality clause +// of the two argument OperandBuilders. The resulting KeyConditionBuilder can be +// used as a part of other Key Condition Expressions or as an argument to the +// WithKeyCondition() method for the Builder struct. +// +// Example: +// +// // keyCondition represents the equal clause of the key "foo" and the +// // value 5 +// keyCondition := expression.KeyEqual(expression.Key("foo"), expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithKeyCondition(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyEqual(expression.Key("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo = :five" +func KeyEqual(keyBuilder KeyBuilder, valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: equalKeyCond, + } +} + +// Equal returns a KeyConditionBuilder representing the equality clause of +// the two argument OperandBuilders. The resulting KeyConditionBuilder can be +// used as a part of other Key Condition Expressions or as an argument to the +// WithKeyCondition() method for the Builder struct. +// +// Example: +// +// // keyCondition represents the equal clause of the key "foo" and the +// // value 5 +// keyCondition := expression.Key("foo").Equal(expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// // Used to make an Builder +// builder := expression.NewBuilder().WithKeyCondition(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").Equal(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo = :five" +func (kb KeyBuilder) Equal(valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyEqual(kb, valueBuilder) +} + +// KeyLessThan returns a KeyConditionBuilder representing the less than +// clause of the two argument OperandBuilders. The resulting KeyConditionBuilder +// can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the less than clause of the key "foo" and the +// // value 5 +// keyCondition := expression.KeyLessThan(expression.Key("foo"), expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyLessThan(expression.Key("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo < :five" +func KeyLessThan(keyBuilder KeyBuilder, valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: lessThanKeyCond, + } +} + +// LessThan returns a KeyConditionBuilder representing the less than clause +// of the two argument OperandBuilders. The resulting KeyConditionBuilder can be +// used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the less than clause of the key "foo" and the +// // value 5 +// keyCondition := expression.Key("foo").LessThan(expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").LessThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo < :five" +func (kb KeyBuilder) LessThan(valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyLessThan(kb, valueBuilder) +} + +// KeyLessThanEqual returns a KeyConditionBuilder representing the less than +// equal to clause of the two argument OperandBuilders. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the less than equal to clause of the key +// // "foo" and the value 5 +// keyCondition := expression.KeyLessThanEqual(expression.Key("foo"), expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyLessThanEqual(expression.Key("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <= :five" +func KeyLessThanEqual(keyBuilder KeyBuilder, valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: lessThanEqualKeyCond, + } +} + +// LessThanEqual returns a KeyConditionBuilder representing the less than +// equal to clause of the two argument OperandBuilders. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the less than equal to clause of the key +// // "foo" and the value 5 +// keyCondition := expression.Key("foo").LessThanEqual(expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").LessThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo <= :five" +func (kb KeyBuilder) LessThanEqual(valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyLessThanEqual(kb, valueBuilder) +} + +// KeyGreaterThan returns a KeyConditionBuilder representing the greater +// than clause of the two argument OperandBuilders. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the greater than clause of the key "foo" and +// // the value 5 +// keyCondition := expression.KeyGreaterThan(expression.Key("foo"), expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyGreaterThan(expression.Key("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo > :five" +func KeyGreaterThan(keyBuilder KeyBuilder, valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: greaterThanKeyCond, + } +} + +// GreaterThan returns a KeyConditionBuilder representing the greater than +// clause of the two argument OperandBuilders. The resulting KeyConditionBuilder +// can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // key condition represents the greater than clause of the key "foo" and +// // the value 5 +// keyCondition := expression.Key("foo").GreaterThan(expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").GreaterThan(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo > :five" +func (kb KeyBuilder) GreaterThan(valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyGreaterThan(kb, valueBuilder) +} + +// KeyGreaterThanEqual returns a KeyConditionBuilder representing the +// greater than equal to clause of the two argument OperandBuilders. The +// resulting KeyConditionBuilder can be used as a part of other Key Condition +// Expressions. +// +// Example: +// +// // keyCondition represents the greater than equal to clause of the key +// // "foo" and the value 5 +// keyCondition := expression.KeyGreaterThanEqual(expression.Key("foo"), expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyGreaterThanEqual(expression.Key("foo"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo >= :five" +func KeyGreaterThanEqual(keyBuilder KeyBuilder, valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: greaterThanEqualKeyCond, + } +} + +// GreaterThanEqual returns a KeyConditionBuilder representing the greater +// than equal to clause of the two argument OperandBuilders. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the greater than equal to clause of the key +// // "foo" and the value 5 +// keyCondition := expression.Key("foo").GreaterThanEqual(expression.Value(5)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").GreaterThanEqual(expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "foo >= :five" +func (kb KeyBuilder) GreaterThanEqual(valueBuilder ValueBuilder) KeyConditionBuilder { + return KeyGreaterThanEqual(kb, valueBuilder) +} + +// KeyAnd returns a KeyConditionBuilder representing the logical AND clause +// of the two argument KeyConditionBuilders. The resulting KeyConditionBuilder +// can be used as an argument to the WithKeyCondition() method for the Builder +// struct. +// +// Example: +// +// // keyCondition represents the key condition where the partition key +// // "TeamName" is equal to value "Wildcats" and sort key "Number" is equal +// // to value 1 +// keyCondition := expression.KeyAnd(expression.Key("TeamName").Equal(expression.Value("Wildcats")), expression.Key("Number").Equal(expression.Value(1))) +// +// // Used to make an Builder +// builder := expression.NewBuilder().WithKeyCondition(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyAnd(expression.Key("TeamName").Equal(expression.Value("Wildcats")), expression.Key("Number").Equal(expression.Value(1))) +// // Let #NUMBER, :teamName, and :one be ExpressionAttributeName and +// // ExpressionAttributeValues representing the item attribute "Number", +// // the value "Wildcats", and the value 1 +// "(TeamName = :teamName) AND (#NUMBER = :one)" +func KeyAnd(left, right KeyConditionBuilder) KeyConditionBuilder { + if left.mode != equalKeyCond { + return KeyConditionBuilder{ + mode: andKeyCond, + } + } + if right.mode == andKeyCond { + return KeyConditionBuilder{ + mode: andKeyCond, + } + } + return KeyConditionBuilder{ + keyConditionList: []KeyConditionBuilder{left, right}, + mode: andKeyCond, + } +} + +// And returns a KeyConditionBuilder representing the logical AND clause of +// the two argument KeyConditionBuilders. The resulting KeyConditionBuilder can +// be used as an argument to the WithKeyCondition() method for the Builder +// struct. +// +// Example: +// +// // keyCondition represents the key condition where the partition key +// // "TeamName" is equal to value "Wildcats" and sort key "Number" is equal +// // to value 1 +// keyCondition := expression.Key("TeamName").Equal(expression.Value("Wildcats")).And(expression.Key("Number").Equal(expression.Value(1))) +// +// // Used to make an Builder +// builder := expression.NewBuilder().WithKeyCondition(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("TeamName").Equal(expression.Value("Wildcats")).And(expression.Key("Number").Equal(expression.Value(1))) +// // Let #NUMBER, :teamName, and :one be ExpressionAttributeName and +// // ExpressionAttributeValues representing the item attribute "Number", +// // the value "Wildcats", and the value 1 +// "(TeamName = :teamName) AND (#NUMBER = :one)" +func (kcb KeyConditionBuilder) And(right KeyConditionBuilder) KeyConditionBuilder { + return KeyAnd(kcb, right) +} + +// KeyBetween returns a KeyConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Key Condition Expressions. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the boolean key condition of whether the value +// // of the key "foo" is between values 5 and 10 +// keyCondition := expression.KeyBetween(expression.Key("foo"), expression.Value(5), expression.Value(10)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyBetween(expression.Key("foo"), expression.Value(5), expression.Value(10)) +// // Let :five and :ten be ExpressionAttributeValues representing the +// // values 5 and 10 respectively +// "foo BETWEEN :five AND :ten" +func KeyBetween(keyBuilder KeyBuilder, lower, upper ValueBuilder) KeyConditionBuilder { + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, lower, upper}, + mode: betweenKeyCond, + } +} + +// Between returns a KeyConditionBuilder representing the result of the +// BETWEEN function in DynamoDB Key Condition Expressions. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the boolean key condition of whether the value +// // of the key "foo" is between values 5 and 10 +// keyCondition := expression.Key("foo").Between(expression.Value(5), expression.Value(10)) +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").Between(expression.Value(5), expression.Value(10)) +// // Let :five and :ten be ExpressionAttributeValues representing the +// // values 5 and 10 respectively +// "foo BETWEEN :five AND :ten" +func (kb KeyBuilder) Between(lower, upper ValueBuilder) KeyConditionBuilder { + return KeyBetween(kb, lower, upper) +} + +// KeyBeginsWith returns a KeyConditionBuilder representing the result of +// the begins_with function in DynamoDB Key Condition Expressions. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the boolean key condition of whether the value +// // of the key "foo" is begins with the prefix "bar" +// keyCondition := expression.KeyBeginsWith(expression.Key("foo"), "bar") +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.KeyBeginsWith(expression.Key("foo"), "bar") +// // Let :bar be an ExpressionAttributeValue representing the value "bar" +// "begins_with(foo, :bar)" +func KeyBeginsWith(keyBuilder KeyBuilder, prefix string) KeyConditionBuilder { + valueBuilder := ValueBuilder{ + value: prefix, + } + return KeyConditionBuilder{ + operandList: []OperandBuilder{keyBuilder, valueBuilder}, + mode: beginsWithKeyCond, + } +} + +// BeginsWith returns a KeyConditionBuilder representing the result of the +// begins_with function in DynamoDB Key Condition Expressions. The resulting +// KeyConditionBuilder can be used as a part of other Key Condition Expressions. +// +// Example: +// +// // keyCondition represents the boolean key condition of whether the value +// // of the key "foo" is begins with the prefix "bar" +// keyCondition := expression.Key("foo").BeginsWith("bar") +// +// // Used in another Key Condition Expression +// anotherKeyCondition := expression.Key("partitionKey").Equal(expression.Value("aValue")).And(keyCondition) +// +// Expression Equivalent: +// +// expression.Key("foo").BeginsWith("bar") +// // Let :bar be an ExpressionAttributeValue representing the value "bar" +// "begins_with(foo, :bar)" +func (kb KeyBuilder) BeginsWith(prefix string) KeyConditionBuilder { + return KeyBeginsWith(kb, prefix) +} + +// buildTree builds a tree structure of exprNodes based on the tree +// structure of the input KeyConditionBuilder's child KeyConditions/Operands. +// buildTree() satisfies the treeBuilder interface so KeyConditionBuilder can be +// a part of Expression struct. +func (kcb KeyConditionBuilder) buildTree() (exprNode, error) { + childNodes, err := kcb.buildChildNodes() + if err != nil { + return exprNode{}, err + } + ret := exprNode{ + children: childNodes, + } + + switch kcb.mode { + case equalKeyCond, lessThanKeyCond, lessThanEqualKeyCond, greaterThanKeyCond, greaterThanEqualKeyCond: + return compareBuildKeyCondition(kcb.mode, ret) + case andKeyCond: + return andBuildKeyCondition(kcb, ret) + case betweenKeyCond: + return betweenBuildKeyCondition(ret) + case beginsWithKeyCond: + return beginsWithBuildKeyCondition(ret) + case unsetKeyCond: + return exprNode{}, newUnsetParameterError("buildTree", "KeyConditionBuilder") + default: + return exprNode{}, fmt.Errorf("buildKeyCondition error: unsupported mode: %v", kcb.mode) + } +} + +// compareBuildKeyCondition is the function to make exprNodes from Compare +// KeyConditionBuilders. compareBuildKeyCondition is only called by the +// buildKeyCondition method. This function assumes that the argument +// KeyConditionBuilder has the right format. +func compareBuildKeyCondition(keyConditionMode keyConditionMode, node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + switch keyConditionMode { + case equalKeyCond: + node.fmtExpr = "$c = $c" + case lessThanKeyCond: + node.fmtExpr = "$c < $c" + case lessThanEqualKeyCond: + node.fmtExpr = "$c <= $c" + case greaterThanKeyCond: + node.fmtExpr = "$c > $c" + case greaterThanEqualKeyCond: + node.fmtExpr = "$c >= $c" + default: + return exprNode{}, fmt.Errorf("build compare key condition error: unsupported mode: %v", keyConditionMode) + } + + return node, nil +} + +// andBuildKeyCondition is the function to make exprNodes from And +// KeyConditionBuilders. andBuildKeyCondition is only called by the +// buildKeyCondition method. This function assumes that the argument +// KeyConditionBuilder has the right format. +func andBuildKeyCondition(keyConditionBuilder KeyConditionBuilder, node exprNode) (exprNode, error) { + if len(keyConditionBuilder.keyConditionList) == 0 && len(keyConditionBuilder.operandList) == 0 { + return exprNode{}, newInvalidParameterError("andBuildKeyCondition", "KeyConditionBuilder") + } + // create a string with escaped characters to substitute them with proper + // aliases during runtime + node.fmtExpr = "($c) AND ($c)" + + return node, nil +} + +// betweenBuildKeyCondition is the function to make exprNodes from Between +// KeyConditionBuilders. betweenBuildKeyCondition is only called by the +// buildKeyCondition method. This function assumes that the argument +// KeyConditionBuilder has the right format. +func betweenBuildKeyCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "$c BETWEEN $c AND $c" + + return node, nil +} + +// beginsWithBuildKeyCondition is the function to make exprNodes from +// BeginsWith KeyConditionBuilders. beginsWithBuildKeyCondition is only +// called by the buildKeyCondition method. This function assumes that the argument +// KeyConditionBuilder has the right format. +func beginsWithBuildKeyCondition(node exprNode) (exprNode, error) { + // Create a string with special characters that can be substituted later: $c + node.fmtExpr = "begins_with ($c, $c)" + + return node, nil +} + +// buildChildNodes creates the list of the child exprNodes. This avoids +// duplication of code amongst the various buildConditions. +func (kcb KeyConditionBuilder) buildChildNodes() ([]exprNode, error) { + childNodes := make([]exprNode, 0, len(kcb.keyConditionList)+len(kcb.operandList)) + for _, keyCondition := range kcb.keyConditionList { + node, err := keyCondition.buildTree() + if err != nil { + return []exprNode{}, err + } + childNodes = append(childNodes, node) + } + for _, operand := range kcb.operandList { + ope, err := operand.BuildOperand() + if err != nil { + return []exprNode{}, err + } + childNodes = append(childNodes, ope.exprNode) + } + + return childNodes, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition_test.go new file mode 100644 index 00000000..1d4d4d03 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/key_condition_test.go @@ -0,0 +1,446 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +// keyCondErrorMode will help with error cases and checking error types +type keyCondErrorMode string + +const ( + noKeyConditionError keyCondErrorMode = "" + // unsetKeyCondition error will occur when buildTree() is called on an empty + // KeyConditionBuilder + unsetKeyCondition = "unset parameter: KeyConditionBuilder" + // invalidKeyConditionOperand error will occur when an invalid OperandBuilder is used as + // an argument + invalidKeyConditionOperand = "BuildOperand error" + // invalidAndFormat error will occur when the first key condition is not an equal + // clause or if the second key condition is an and condition. + invalidAndFormat = "invalid parameter: KeyConditionBuilder" +) + +func TestKeyCompare(t *testing.T) { + cases := []struct { + name string + input KeyConditionBuilder + expectedNode exprNode + err keyCondErrorMode + }{ + { + name: "key equal", + input: Key("foo").Equal(Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + { + name: "key less than", + input: Key("foo").LessThan(Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c < $c", + }, + }, + { + name: "key less than equal", + input: Key("foo").LessThanEqual(Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c <= $c", + }, + }, + { + name: "key greater than", + input: Key("foo").GreaterThan(Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c > $c", + }, + }, + { + name: "key greater than equal", + input: Key("foo").GreaterThanEqual(Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c >= $c", + }, + }, + { + name: "unset KeyConditionBuilder", + input: KeyConditionBuilder{}, + err: unsetKeyCondition, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noKeyConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestKeyBetween(t *testing.T) { + cases := []struct { + name string + input KeyConditionBuilder + expectedNode exprNode + err keyCondErrorMode + }{ + { + name: "key between", + input: Key("foo").Between(Value(5), Value(10)), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("10"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c BETWEEN $c AND $c", + }, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noKeyConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestKeyBeginsWith(t *testing.T) { + cases := []struct { + name string + input KeyConditionBuilder + expectedNode exprNode + err keyCondErrorMode + }{ + { + name: "key begins with", + input: Key("foo").BeginsWith("bar"), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "begins_with ($c, $c)", + }, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noKeyConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestKeyAnd(t *testing.T) { + cases := []struct { + name string + input KeyConditionBuilder + expectedNode exprNode + err keyCondErrorMode + }{ + { + name: "key and", + input: Key("foo").Equal(Value(5)).And(Key("bar").BeginsWith("baz")), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("baz"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "begins_with ($c, $c)", + }, + }, + fmtExpr: "($c) AND ($c)", + }, + }, + { + name: "first condition is not equal", + input: Key("foo").LessThan(Value(5)).And(Key("bar").BeginsWith("baz")), + err: invalidAndFormat, + }, + { + name: "second condition is and", + input: Key("foo").Equal(Value(5)).And(Key("bar").Equal(Value(1)).And(Key("baz").BeginsWith("yar"))), + err: invalidAndFormat, + }, + { + name: "operand error", + input: Key("").Equal(Value("yikes")), + err: invalidKeyConditionOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noKeyConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestKeyConditionBuildChildNodes(t *testing.T) { + cases := []struct { + name string + input KeyConditionBuilder + expected []exprNode + err keyCondErrorMode + }{ + { + name: "build child nodes", + input: Key("foo").Equal(Value("bar")).And(Key("baz").LessThan(Value(10))), + expected: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + S: aws.String("bar"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + { + children: []exprNode{ + { + names: []string{"baz"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("10"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c < $c", + }, + }, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildChildNodes() + if c.err != noKeyConditionError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %#v, got %#v", e, a) + } + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand.go new file mode 100644 index 00000000..54e31529 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand.go @@ -0,0 +1,620 @@ +package expression + +import ( + "fmt" + "strings" + + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" +) + +// ValueBuilder represents an item attribute value operand and implements the +// OperandBuilder interface. Methods and functions in the package take +// ValueBuilder as an argument and establishes relationships between operands. +// ValueBuilder should only be initialized using the function Value(). +// +// Example: +// +// // Create a ValueBuilder representing the string "aValue" +// valueBuilder := expression.Value("aValue") +type ValueBuilder struct { + value interface{} +} + +// NameBuilder represents a name of a top level item attribute or a nested +// attribute. Since NameBuilder represents a DynamoDB Operand, it implements the +// OperandBuilder interface. Methods and functions in the package take +// NameBuilder as an argument and establishes relationships between operands. +// NameBuilder should only be initialized using the function Name(). +// +// Example: +// +// // Create a NameBuilder representing the item attribute "aName" +// nameBuilder := expression.Name("aName") +type NameBuilder struct { + name string +} + +// SizeBuilder represents the output of the function size ("someName"), which +// evaluates to the size of the item attribute defined by "someName". Since +// SizeBuilder represents an operand, SizeBuilder implements the OperandBuilder +// interface. Methods and functions in the package take SizeBuilder as an +// argument and establishes relationships between operands. SizeBuilder should +// only be initialized using the function Size(). +// +// Example: +// +// // Create a SizeBuilder representing the size of the item attribute +// // "aName" +// sizeBuilder := expression.Name("aName").Size() +type SizeBuilder struct { + nameBuilder NameBuilder +} + +// KeyBuilder represents either the partition key or the sort key, both of which +// are top level attributes to some item in DynamoDB. Since KeyBuilder +// represents an operand, KeyBuilder implements the OperandBuilder interface. +// Methods and functions in the package take KeyBuilder as an argument and +// establishes relationships between operands. However, KeyBuilder should only +// be used to describe Key Condition Expressions. KeyBuilder should only be +// initialized using the function Key(). +// +// Example: +// +// // Create a KeyBuilder representing the item key "aKey" +// keyBuilder := expression.Key("aKey") +type KeyBuilder struct { + key string +} + +// setValueMode specifies the type of SetValueBuilder. The default value is +// unsetValue so that an UnsetParameterError when BuildOperand() is called on an +// empty SetValueBuilder. +type setValueMode int + +const ( + unsetValue setValueMode = iota + plusValueMode + minusValueMode + listAppendValueMode + ifNotExistsValueMode +) + +// SetValueBuilder represents the outcome of operator functions supported by the +// DynamoDB Set operation. The operator functions are the following: +// Plus() // Represents the "+" operator +// Minus() // Represents the "-" operator +// ListAppend() +// IfNotExists() +// For documentation on the above functions, +// see: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET +// Since SetValueBuilder represents an operand, it implements the OperandBuilder +// interface. SetValueBuilder structs are used as arguments to the Set() +// function. SetValueBuilders should only initialize a SetValueBuilder using the +// functions listed above. +type SetValueBuilder struct { + leftOperand OperandBuilder + rightOperand OperandBuilder + mode setValueMode +} + +// Operand represents an item attribute name or value in DynamoDB. The +// relationship between Operands specified by various builders such as +// ConditionBuilders and UpdateBuilders for example is processed internally to +// write Condition Expressions and Update Expressions respectively. +type Operand struct { + exprNode exprNode +} + +// OperandBuilder represents the idea of Operand which are building blocks to +// DynamoDB Expressions. Package methods and functions can establish +// relationships between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// OperandBuilder and BuildOperand() are exported to allow package functions to +// take an interface as an argument. +type OperandBuilder interface { + BuildOperand() (Operand, error) +} + +// Name creates a NameBuilder. The argument should represent the desired item +// attribute. It is possible to reference nested item attributes by using +// square brackets for lists and dots for maps. For documentation on specifying +// item attributes, +// see: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Attributes.html +// +// Example: +// +// // Specify a top-level attribute +// name := expression.Name("TopLevel") +// // Specify a nested attribute +// nested := expression.Name("Record[6].SongList") +// // Use Name() to create a condition expression +// condition := expression.Name("foo").Equal(expression.Name("bar")) +func Name(name string) NameBuilder { + return NameBuilder{ + name: name, + } +} + +// Value creates a ValueBuilder. The argument should represent the desired item +// attribute. The value is marshalled using the dynamodbattribute package by the +// Build() method for type Builder. +// +// Example: +// +// // Use Value() to create a condition expression +// condition := expression.Name("foo").Equal(expression.Value(10)) +func Value(value interface{}) ValueBuilder { + return ValueBuilder{ + value: value, + } +} + +// Size creates a SizeBuilder representing the size of the item attribute +// specified by the argument NameBuilder. Size() is only valid for certain types +// of item attributes. For documentation, +// see: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html +// SizeBuilder is only a valid operand in Condition Expressions and Filter +// Expressions. +// +// Example: +// +// // Use Size() to create a condition expression +// condition := expression.Name("foo").Size().Equal(expression.Value(10)) +// +// Expression Equivalent: +// +// expression.Name("aName").Size() +// "size (aName)" +func (nb NameBuilder) Size() SizeBuilder { + return SizeBuilder{ + nameBuilder: nb, + } +} + +// Size creates a SizeBuilder representing the size of the item attribute +// specified by the argument NameBuilder. Size() is only valid for certain types +// of item attributes. For documentation, +// see: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html +// SizeBuilder is only a valid operand in Condition Expressions and Filter +// Expressions. +// +// Example: +// +// // Use Size() to create a condition expression +// condition := expression.Size(expression.Name("foo")).Equal(expression.Value(10)) +// +// Expression Equivalent: +// +// expression.Size(expression.Name("aName")) +// "size (aName)" +func Size(nameBuilder NameBuilder) SizeBuilder { + return nameBuilder.Size() +} + +// Key creates a KeyBuilder. The argument should represent the desired partition +// key or sort key value. KeyBuilders should only be used to specify +// relationships for Key Condition Expressions. When referring to the partition +// key or sort key in any other Expression, use Name(). +// +// Example: +// +// // Use Key() to create a key condition expression +// keyCondition := expression.Key("foo").Equal(expression.Value("bar")) +func Key(key string) KeyBuilder { + return KeyBuilder{ + key: key, + } +} + +// Plus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Plus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Plus() to set the value of the item attribute "someName" to 5 + 10 +// update, err := expression.Set(expression.Name("someName"), expression.Plus(expression.Value(5), expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Plus(expression.Value(5), expression.Value(10)) +// // let :five and :ten be ExpressionAttributeValues for the values 5 and +// // 10 respectively. +// ":five + :ten" +func Plus(leftOperand, rightOperand OperandBuilder) SetValueBuilder { + return SetValueBuilder{ + leftOperand: leftOperand, + rightOperand: rightOperand, + mode: plusValueMode, + } +} + +// Plus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Plus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Plus() to set the value of the item attribute "someName" to the +// // numeric value of item attribute "aName" incremented by 10 +// update, err := expression.Set(expression.Name("someName"), expression.Name("aName").Plus(expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Name("aName").Plus(expression.Value(10)) +// // let :ten be ExpressionAttributeValues representing the value 10 +// "aName + :ten" +func (nb NameBuilder) Plus(rightOperand OperandBuilder) SetValueBuilder { + return Plus(nb, rightOperand) +} + +// Plus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Plus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Plus() to set the value of the item attribute "someName" to 5 + 10 +// update, err := expression.Set(expression.Name("someName"), expression.Value(5).Plus(expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Value(5).Plus(expression.Value(10)) +// // let :five and :ten be ExpressionAttributeValues representing the value +// // 5 and 10 respectively +// ":five + :ten" +func (vb ValueBuilder) Plus(rightOperand OperandBuilder) SetValueBuilder { + return Plus(vb, rightOperand) +} + +// Minus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Minus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Minus() to set the value of item attribute "someName" to 5 - 10 +// update, err := expression.Set(expression.Name("someName"), expression.Minus(expression.Value(5), expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Minus(expression.Value(5), expression.Value(10)) +// // let :five and :ten be ExpressionAttributeValues for the values 5 and +// // 10 respectively. +// ":five - :ten" +func Minus(leftOperand, rightOperand OperandBuilder) SetValueBuilder { + return SetValueBuilder{ + leftOperand: leftOperand, + rightOperand: rightOperand, + mode: minusValueMode, + } +} + +// Minus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Minus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Minus() to set the value of item attribute "someName" to the +// // numeric value of "aName" decremented by 10 +// update, err := expression.Set(expression.Name("someName"), expression.Name("aName").Minus(expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Name("aName").Minus(expression.Value(10))) +// // let :ten be ExpressionAttributeValues represent the value 10 +// "aName - :ten" +func (nb NameBuilder) Minus(rightOperand OperandBuilder) SetValueBuilder { + return Minus(nb, rightOperand) +} + +// Minus creates a SetValueBuilder to be used in as an argument to Set(). The +// arguments can either be NameBuilders or ValueBuilders. Minus() only supports +// DynamoDB Number types, so the ValueBuilder must be a Number and the +// NameBuilder must specify an item attribute of type Number. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.IncrementAndDecrement +// +// Example: +// +// // Use Minus() to set the value of item attribute "someName" to 5 - 10 +// update, err := expression.Set(expression.Name("someName"), expression.Value(5).Minus(expression.Value(10))) +// +// Expression Equivalent: +// +// expression.Value(5).Minus(expression.Value(10)) +// // let :five and :ten be ExpressionAttributeValues for the values 5 and +// // 10 respectively. +// ":five - :ten" +func (vb ValueBuilder) Minus(rightOperand OperandBuilder) SetValueBuilder { + return Minus(vb, rightOperand) +} + +// ListAppend creates a SetValueBuilder to be used in as an argument to Set(). +// The arguments can either be NameBuilders or ValueBuilders. ListAppend() only +// supports DynamoDB List types, so the ValueBuilder must be a List and the +// NameBuilder must specify an item attribute of type List. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.UpdatingListElements +// +// Example: +// +// // Use ListAppend() to set item attribute "someName" to the item +// // attribute "nameOfList" with "some" and "list" appended to it +// update, err := expression.Set(expression.Name("someName"), expression.ListAppend(expression.Name("nameOfList"), expression.Value([]string{"some", "list"}))) +// +// Expression Equivalent: +// +// expression.ListAppend(expression.Name("nameOfList"), expression.Value([]string{"some", "list"}) +// // let :list be a ExpressionAttributeValue representing the list +// // containing "some" and "list". +// "list_append (nameOfList, :list)" +func ListAppend(leftOperand, rightOperand OperandBuilder) SetValueBuilder { + return SetValueBuilder{ + leftOperand: leftOperand, + rightOperand: rightOperand, + mode: listAppendValueMode, + } +} + +// ListAppend creates a SetValueBuilder to be used in as an argument to Set(). +// The arguments can either be NameBuilders or ValueBuilders. ListAppend() only +// supports DynamoDB List types, so the ValueBuilder must be a List and the +// NameBuilder must specify an item attribute of type List. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.UpdatingListElements +// +// Example: +// +// // Use ListAppend() to set item attribute "someName" to the item +// // attribute "nameOfList" with "some" and "list" appended to it +// update, err := expression.Set(expression.Name("someName"), expression.Name("nameOfList").ListAppend(expression.Value([]string{"some", "list"}))) +// +// Expression Equivalent: +// +// expression.Name("nameOfList").ListAppend(expression.Value([]string{"some", "list"}) +// // let :list be a ExpressionAttributeValue representing the list +// // containing "some" and "list". +// "list_append (nameOfList, :list)" +func (nb NameBuilder) ListAppend(rightOperand OperandBuilder) SetValueBuilder { + return ListAppend(nb, rightOperand) +} + +// ListAppend creates a SetValueBuilder to be used in as an argument to Set(). +// The arguments can either be NameBuilders or ValueBuilders. ListAppend() only +// supports DynamoDB List types, so the ValueBuilder must be a List and the +// NameBuilder must specify an item attribute of type List. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.UpdatingListElements +// +// Example: +// +// // Use ListAppend() to set item attribute "someName" to a string list +// // equal to {"a", "list", "some", "list"} +// update, err := expression.Set(expression.Name("someName"), expression.Value([]string{"a", "list"}).ListAppend(expression.Value([]string{"some", "list"}))) +// +// Expression Equivalent: +// +// expression.Name([]string{"a", "list"}).ListAppend(expression.Value([]string{"some", "list"}) +// // let :list1 and :list2 be a ExpressionAttributeValue representing the +// // list {"a", "list"} and {"some", "list"} respectively +// "list_append (:list1, :list2)" +func (vb ValueBuilder) ListAppend(rightOperand OperandBuilder) SetValueBuilder { + return ListAppend(vb, rightOperand) +} + +// IfNotExists creates a SetValueBuilder to be used in as an argument to Set(). +// The first argument must be a NameBuilder representing the name where the new +// item attribute is created. The second argument can either be a NameBuilder or +// a ValueBuilder. In the case that it is a NameBuilder, the value of the item +// attribute at the name specified becomes the value of the new item attribute. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.PreventingAttributeOverwrites +// +// Example: +// +// // Use IfNotExists() to set item attribute "someName" to value 5 if +// // "someName" does not exist yet. (Prevents overwrite) +// update, err := expression.Set(expression.Name("someName"), expression.IfNotExists(expression.Name("someName"), expression.Value(5))) +// +// Expression Equivalent: +// +// expression.IfNotExists(expression.Name("someName"), expression.Value(5)) +// // let :five be a ExpressionAttributeValue representing the value 5 +// "if_not_exists (someName, :five)" +func IfNotExists(name NameBuilder, setValue OperandBuilder) SetValueBuilder { + return SetValueBuilder{ + leftOperand: name, + rightOperand: setValue, + mode: ifNotExistsValueMode, + } +} + +// IfNotExists creates a SetValueBuilder to be used in as an argument to Set(). +// The first argument must be a NameBuilder representing the name where the new +// item attribute is created. The second argument can either be a NameBuilder or +// a ValueBuilder. In the case that it is a NameBuilder, the value of the item +// attribute at the name specified becomes the value of the new item attribute. +// More information: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.PreventingAttributeOverwrites +// +// Example: +// +// // Use IfNotExists() to set item attribute "someName" to value 5 if +// // "someName" does not exist yet. (Prevents overwrite) +// update, err := expression.Set(expression.Name("someName"), expression.Name("someName").IfNotExists(expression.Value(5))) +// +// Expression Equivalent: +// +// expression.Name("someName").IfNotExists(expression.Value(5)) +// // let :five be a ExpressionAttributeValue representing the value 5 +// "if_not_exists (someName, :five)" +func (nb NameBuilder) IfNotExists(rightOperand OperandBuilder) SetValueBuilder { + return IfNotExists(nb, rightOperand) +} + +// BuildOperand creates an Operand struct which are building blocks to DynamoDB +// Expressions. Package methods and functions can establish relationships +// between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// BuildOperand() aliases all strings to avoid stepping over DynamoDB's reserved +// words. +// More information on reserved words at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html +func (nb NameBuilder) BuildOperand() (Operand, error) { + if nb.name == "" { + return Operand{}, newUnsetParameterError("BuildOperand", "NameBuilder") + } + + node := exprNode{ + names: []string{}, + } + + nameSplit := strings.Split(nb.name, ".") + fmtNames := make([]string, 0, len(nameSplit)) + + for _, word := range nameSplit { + var substr string + if word == "" { + return Operand{}, newInvalidParameterError("BuildOperand", "NameBuilder") + } + + if word[len(word)-1] == ']' { + for j, char := range word { + if char == '[' { + substr = word[j:] + word = word[:j] + break + } + } + } + + if word == "" { + return Operand{}, newInvalidParameterError("BuildOperand", "NameBuilder") + } + + // Create a string with special characters that can be substituted later: $p + node.names = append(node.names, word) + fmtNames = append(fmtNames, "$n"+substr) + } + node.fmtExpr = strings.Join(fmtNames, ".") + return Operand{ + exprNode: node, + }, nil +} + +// BuildOperand creates an Operand struct which are building blocks to DynamoDB +// Expressions. Package methods and functions can establish relationships +// between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// BuildOperand() aliases all strings to avoid stepping over DynamoDB's reserved +// words. +// More information on reserved words at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html +func (vb ValueBuilder) BuildOperand() (Operand, error) { + expr, err := dynamodbattribute.Marshal(vb.value) + if err != nil { + return Operand{}, newInvalidParameterError("BuildOperand", "ValueBuilder") + } + + // Create a string with special characters that can be substituted later: $v + operand := Operand{ + exprNode: exprNode{ + values: []dynamodb.AttributeValue{*expr}, + fmtExpr: "$v", + }, + } + return operand, nil +} + +// BuildOperand creates an Operand struct which are building blocks to DynamoDB +// Expressions. Package methods and functions can establish relationships +// between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// BuildOperand() aliases all strings to avoid stepping over DynamoDB's reserved +// words. +// More information on reserved words at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html +func (sb SizeBuilder) BuildOperand() (Operand, error) { + operand, err := sb.nameBuilder.BuildOperand() + operand.exprNode.fmtExpr = "size (" + operand.exprNode.fmtExpr + ")" + + return operand, err +} + +// BuildOperand creates an Operand struct which are building blocks to DynamoDB +// Expressions. Package methods and functions can establish relationships +// between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// BuildOperand() aliases all strings to avoid stepping over DynamoDB's reserved +// words. +// More information on reserved words at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html +func (kb KeyBuilder) BuildOperand() (Operand, error) { + if kb.key == "" { + return Operand{}, newUnsetParameterError("BuildOperand", "KeyBuilder") + } + + ret := Operand{ + exprNode: exprNode{ + names: []string{kb.key}, + fmtExpr: "$n", + }, + } + + return ret, nil +} + +// BuildOperand creates an Operand struct which are building blocks to DynamoDB +// Expressions. Package methods and functions can establish relationships +// between operands, representing DynamoDB Expressions. The method +// BuildOperand() is called recursively when the Build() method on the type +// Builder is called. BuildOperand() should never be called externally. +// BuildOperand() aliases all strings to avoid stepping over DynamoDB's reserved +// words. +// More information on reserved words at http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html +func (svb SetValueBuilder) BuildOperand() (Operand, error) { + if svb.mode == unsetValue { + return Operand{}, newUnsetParameterError("BuildOperand", "SetValueBuilder") + } + + left, err := svb.leftOperand.BuildOperand() + if err != nil { + return Operand{}, err + } + leftNode := left.exprNode + + right, err := svb.rightOperand.BuildOperand() + if err != nil { + return Operand{}, err + } + rightNode := right.exprNode + + node := exprNode{ + children: []exprNode{leftNode, rightNode}, + } + + switch svb.mode { + case plusValueMode: + node.fmtExpr = "$c + $c" + case minusValueMode: + node.fmtExpr = "$c - $c" + case listAppendValueMode: + node.fmtExpr = "list_append($c, $c)" + case ifNotExistsValueMode: + node.fmtExpr = "if_not_exists($c, $c)" + default: + return Operand{}, fmt.Errorf("build operand error: unsupported mode: %v", svb.mode) + } + + return Operand{ + exprNode: node, + }, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand_test.go new file mode 100644 index 00000000..4a0dcc3c --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/operand_test.go @@ -0,0 +1,144 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +// opeErrorMode will help with error cases and checking error types +type opeErrorMode string + +const ( + noOperandError opeErrorMode = "" + // unsetName error will occur if an empty string is passed into NameBuilder + unsetName = "unset parameter: NameBuilder" + // invalidName error will occur if a nested name has an empty intermediary + // attribute name (i.e. foo.bar..baz) + invalidName = "invalid parameter: NameBuilder" + // unsetKey error will occur if an empty string is passed into KeyBuilder + unsetKey = "unset parameter: KeyBuilder" +) + +func TestBuildOperand(t *testing.T) { + cases := []struct { + name string + input OperandBuilder + expected exprNode + err opeErrorMode + }{ + { + name: "basic name", + input: Name("foo"), + expected: exprNode{ + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + { + name: "duplicate name name", + input: Name("foo.foo"), + expected: exprNode{ + names: []string{"foo", "foo"}, + fmtExpr: "$n.$n", + }, + }, + { + name: "basic value", + input: Value(5), + expected: exprNode{ + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + { + name: "nested name", + input: Name("foo.bar"), + expected: exprNode{ + names: []string{"foo", "bar"}, + fmtExpr: "$n.$n", + }, + }, + { + name: "nested name with index", + input: Name("foo.bar[0].baz"), + expected: exprNode{ + names: []string{"foo", "bar", "baz"}, + fmtExpr: "$n.$n[0].$n", + }, + }, + { + name: "basic size", + input: Name("foo").Size(), + expected: exprNode{ + names: []string{"foo"}, + fmtExpr: "size ($n)", + }, + }, + { + name: "key", + input: Key("foo"), + expected: exprNode{ + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + { + name: "unset key error", + input: Key(""), + expected: exprNode{}, + err: unsetKey, + }, + { + name: "empty name error", + input: Name(""), + expected: exprNode{}, + err: unsetName, + }, + { + name: "invalid name", + input: Name("foo..bar"), + expected: exprNode{}, + err: invalidName, + }, + { + name: "invalid index", + input: Name("[foo]"), + expected: exprNode{}, + err: invalidName, + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + operand, err := c.input.BuildOperand() + + if c.err != noOperandError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, operand.exprNode; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection.go new file mode 100644 index 00000000..1eb62002 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection.go @@ -0,0 +1,148 @@ +package expression + +import ( + "strings" +) + +// ProjectionBuilder represents Projection Expressions in DynamoDB. +// ProjectionBuilders are the building blocks of Builders. +// More Information at: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ProjectionExpressions.html +type ProjectionBuilder struct { + names []NameBuilder +} + +// NamesList returns a ProjectionBuilder representing the list of item +// attribute names specified by the argument NameBuilders. The resulting +// ProjectionBuilder can be used as a part of other ProjectionBuilders or as an +// argument to the WithProjection() method for the Builder struct. +// +// Example: +// +// // projection represents the list of names {"foo", "bar"} +// projection := expression.NamesList(expression.Name("foo"), expression.Name("bar")) +// +// // Used in another Projection Expression +// anotherProjection := expression.AddNames(projection, expression.Name("baz")) +// // Used to make an Builder +// builder := expression.NewBuilder().WithProjection(newProjection) +// +// Expression Equivalent: +// +// expression.NamesList(expression.Name("foo"), expression.Name("bar")) +// "foo, bar" +func NamesList(nameBuilder NameBuilder, namesList ...NameBuilder) ProjectionBuilder { + namesList = append([]NameBuilder{nameBuilder}, namesList...) + return ProjectionBuilder{ + names: namesList, + } +} + +// NamesList returns a ProjectionBuilder representing the list of item +// attribute names specified by the argument NameBuilders. The resulting +// ProjectionBuilder can be used as a part of other ProjectionBuilders or as an +// argument to the WithProjection() method for the Builder struct. +// +// Example: +// +// // projection represents the list of names {"foo", "bar"} +// projection := expression.Name("foo").NamesList(expression.Name("bar")) +// +// // Used in another Projection Expression +// anotherProjection := expression.AddNames(projection, expression.Name("baz")) +// // Used to make an Builder +// builder := expression.NewBuilder().WithProjection(newProjection) +// +// Expression Equivalent: +// +// expression.Name("foo").NamesList(expression.Name("bar")) +// "foo, bar" +func (nb NameBuilder) NamesList(namesList ...NameBuilder) ProjectionBuilder { + return NamesList(nb, namesList...) +} + +// AddNames returns a ProjectionBuilder representing the list of item +// attribute names equivalent to appending all of the argument item attribute +// names to the argument ProjectionBuilder. The resulting ProjectionBuilder can +// be used as a part of other ProjectionBuilders or as an argument to the +// WithProjection() method for the Builder struct. +// +// Example: +// +// // projection represents the list of names {"foo", "bar", "baz", "qux"} +// oldProj := expression.NamesList(expression.Name("foo"), expression.Name("bar")) +// projection := expression.AddNames(oldProj, expression.Name("baz"), expression.Name("qux")) +// +// // Used in another Projection Expression +// anotherProjection := expression.AddNames(projection, expression.Name("quux")) +// // Used to make an Builder +// builder := expression.NewBuilder().WithProjection(newProjection) +// +// Expression Equivalent: +// +// expression.AddNames(expression.NamesList(expression.Name("foo"), expression.Name("bar")), expression.Name("baz"), expression.Name("qux")) +// "foo, bar, baz, qux" +func AddNames(projectionBuilder ProjectionBuilder, namesList ...NameBuilder) ProjectionBuilder { + projectionBuilder.names = append(projectionBuilder.names, namesList...) + return projectionBuilder +} + +// AddNames returns a ProjectionBuilder representing the list of item +// attribute names equivalent to appending all of the argument item attribute +// names to the argument ProjectionBuilder. The resulting ProjectionBuilder can +// be used as a part of other ProjectionBuilders or as an argument to the +// WithProjection() method for the Builder struct. +// +// Example: +// +// // projection represents the list of names {"foo", "bar", "baz", "qux"} +// oldProj := expression.NamesList(expression.Name("foo"), expression.Name("bar")) +// projection := oldProj.AddNames(expression.Name("baz"), expression.Name("qux")) +// +// // Used in another Projection Expression +// anotherProjection := expression.AddNames(projection, expression.Name("quux")) +// // Used to make an Builder +// builder := expression.NewBuilder().WithProjection(newProjection) +// +// Expression Equivalent: +// +// expression.NamesList(expression.Name("foo"), expression.Name("bar")).AddNames(expression.Name("baz"), expression.Name("qux")) +// "foo, bar, baz, qux" +func (pb ProjectionBuilder) AddNames(namesList ...NameBuilder) ProjectionBuilder { + return AddNames(pb, namesList...) +} + +// buildTree builds a tree structure of exprNodes based on the tree +// structure of the input ProjectionBuilder's child NameBuilders. buildTree() +// satisfies the treeBuilder interface so ProjectionBuilder can be a part of +// Builder and Expression struct. +func (pb ProjectionBuilder) buildTree() (exprNode, error) { + if len(pb.names) == 0 { + return exprNode{}, newUnsetParameterError("buildTree", "ProjectionBuilder") + } + + childNodes, err := pb.buildChildNodes() + if err != nil { + return exprNode{}, err + } + ret := exprNode{ + children: childNodes, + } + + ret.fmtExpr = "$c" + strings.Repeat(", $c", len(pb.names)-1) + + return ret, nil +} + +// buildChildNodes creates the list of the child exprNodes. +func (pb ProjectionBuilder) buildChildNodes() ([]exprNode, error) { + childNodes := make([]exprNode, 0, len(pb.names)) + for _, name := range pb.names { + operand, err := name.BuildOperand() + if err != nil { + return []exprNode{}, err + } + childNodes = append(childNodes, operand.exprNode) + } + + return childNodes, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection_test.go new file mode 100644 index 00000000..7cbec12f --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/projection_test.go @@ -0,0 +1,215 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" +) + +// projErrorMode will help with error cases and checking error types +type projErrorMode string + +const ( + noProjError projErrorMode = "" + // invalidProjectionOperand error will occur when an invalid OperandBuilder is + // used as an argument + invalidProjectionOperand = "BuildOperand error" + // unsetProjection error will occur if the argument ProjectionBuilder is unset + unsetProjection = "unset parameter: ProjectionBuilder" +) + +func TestProjectionBuilder(t *testing.T) { + cases := []struct { + name string + input ProjectionBuilder + expectedNode exprNode + err projErrorMode + }{ + { + name: "names list function call", + input: NamesList(Name("foo"), Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c, $c", + }, + }, + { + name: "names list method call", + input: Name("foo").NamesList(Name("bar")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c, $c", + }, + }, + { + name: "add name", + input: Name("foo").NamesList(Name("bar")).AddNames(Name("baz"), Name("qux")), + expectedNode: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + names: []string{"baz"}, + fmtExpr: "$n", + }, { + names: []string{"qux"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c, $c, $c, $c", + }, + }, + { + name: "invalid operand", + input: NamesList(Name("")), + err: invalidProjectionOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noProjError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBuildProjection(t *testing.T) { + cases := []struct { + name string + input ProjectionBuilder + expected string + err projErrorMode + }{ + { + name: "build projection 3", + input: NamesList(Name("foo"), Name("bar"), Name("baz")), + expected: "$c, $c, $c", + }, + { + name: "build projection 5", + input: NamesList(Name("foo"), Name("bar"), Name("baz")).AddNames(Name("qux"), Name("quux")), + expected: "$c, $c, $c, $c, $c", + }, + { + name: "empty ProjectionBuilder", + input: ProjectionBuilder{}, + err: unsetProjection, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noProjError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expected, actual.fmtExpr; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestBuildProjectionChildNodes(t *testing.T) { + cases := []struct { + name string + input ProjectionBuilder + expected []exprNode + err projErrorMode + }{ + { + name: "build child nodes", + input: NamesList(Name("foo"), Name("bar"), Name("baz")), + expected: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + { + names: []string{"baz"}, + fmtExpr: "$n", + }, + }, + }, + { + name: "operand error", + input: NamesList(Name("")), + err: invalidProjectionOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noProjError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + if e, a := c.expected, actual.children; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update.go new file mode 100644 index 00000000..b82d3d4f --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update.go @@ -0,0 +1,391 @@ +package expression + +import ( + "fmt" + "sort" + "strings" +) + +// operationMode specifies the types of update operations that the +// updateBuilder is going to represent. The const is in a string to use the +// const value as a map key and as a string when creating the formatted +// expression for the exprNodes. +type operationMode string + +const ( + setOperation operationMode = "SET" + removeOperation = "REMOVE" + addOperation = "ADD" + deleteOperation = "DELETE" +) + +// Implementing the Sort interface +type modeList []operationMode + +func (ml modeList) Len() int { + return len(ml) +} + +func (ml modeList) Less(i, j int) bool { + return string(ml[i]) < string(ml[j]) +} + +func (ml modeList) Swap(i, j int) { + ml[i], ml[j] = ml[j], ml[i] +} + +// UpdateBuilder represents Update Expressions in DynamoDB. UpdateBuilders +// are the building blocks of the Builder struct. Note that there are different +// update operations in DynamoDB and an UpdateBuilder can represent multiple +// update operations. +// More Information at: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html +type UpdateBuilder struct { + operationList map[operationMode][]operationBuilder +} + +// operationBuilder represents specific update actions (SET, REMOVE, ADD, +// DELETE). The mode specifies what type of update action the +// operationBuilder represents. +type operationBuilder struct { + name NameBuilder + value OperandBuilder + mode operationMode +} + +// buildOperation builds an exprNode from an operationBuilder. buildOperation +// is called recursively by buildTree in order to create a tree structure +// of exprNodes representing the parent/child relationships between +// UpdateBuilders and operationBuilders. +func (ob operationBuilder) buildOperation() (exprNode, error) { + pathChild, err := ob.name.BuildOperand() + if err != nil { + return exprNode{}, err + } + + node := exprNode{ + children: []exprNode{pathChild.exprNode}, + fmtExpr: "$c", + } + + if ob.mode == removeOperation { + return node, nil + } + + valueChild, err := ob.value.BuildOperand() + if err != nil { + return exprNode{}, err + } + node.children = append(node.children, valueChild.exprNode) + + switch ob.mode { + case setOperation: + node.fmtExpr += " = $c" + case addOperation, deleteOperation: + node.fmtExpr += " $c" + default: + return exprNode{}, fmt.Errorf("build update error: build operation error: unsupported mode: %v", ob.mode) + } + + return node, nil +} + +// Delete returns an UpdateBuilder representing one Delete operation for +// DynamoDB Update Expressions. The argument name should specify the item +// attribute and the argument value should specify the value to be deleted. The +// resulting UpdateBuilder can be used as an argument to the WithUpdate() method +// for the Builder struct. +// +// Example: +// +// // update represents the delete operation to delete the string value +// // "subsetToDelete" from the item attribute "pathToList" +// update := expression.Delete(expression.Name("pathToList"), expression.Value("subsetToDelete")) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// expression.Delete(expression.Name("pathToList"), expression.Value("subsetToDelete")) +// // let :del be an ExpressionAttributeValue representing the value +// // "subsetToDelete" +// "DELETE pathToList :del" +func Delete(name NameBuilder, value ValueBuilder) UpdateBuilder { + emptyUpdateBuilder := UpdateBuilder{} + return emptyUpdateBuilder.Delete(name, value) +} + +// Delete adds a Delete operation to the argument UpdateBuilder. The +// argument name should specify the item attribute and the argument value should +// specify the value to be deleted. The resulting UpdateBuilder can be used as +// an argument to the WithUpdate() method for the Builder struct. +// +// Example: +// +// // Let update represent an already existing update expression. Delete() +// // adds the operation to delete the value "subsetToDelete" from the item +// // attribute "pathToList" +// update := update.Delete(expression.Name("pathToList"), expression.Value("subsetToDelete")) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// Delete(expression.Name("pathToList"), expression.Value("subsetToDelete")) +// // let :del be an ExpressionAttributeValue representing the value +// // "subsetToDelete" +// "DELETE pathToList :del" +func (ub UpdateBuilder) Delete(name NameBuilder, value ValueBuilder) UpdateBuilder { + if ub.operationList == nil { + ub.operationList = map[operationMode][]operationBuilder{} + } + ub.operationList[deleteOperation] = append(ub.operationList[deleteOperation], operationBuilder{ + name: name, + value: value, + mode: deleteOperation, + }) + return ub +} + +// Add returns an UpdateBuilder representing the Add operation for DynamoDB +// Update Expressions. The argument name should specify the item attribute and +// the argument value should specify the value to be added. The resulting +// UpdateBuilder can be used as an argument to the WithUpdate() method for the +// Builder struct. +// +// Example: +// +// // update represents the add operation to add the value 5 to the item +// // attribute "aPath" +// update := expression.Add(expression.Name("aPath"), expression.Value(5)) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// expression.Add(expression.Name("aPath"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "ADD aPath :5" +func Add(name NameBuilder, value ValueBuilder) UpdateBuilder { + emptyUpdateBuilder := UpdateBuilder{} + return emptyUpdateBuilder.Add(name, value) +} + +// Add adds an Add operation to the argument UpdateBuilder. The argument +// name should specify the item attribute and the argument value should specify +// the value to be added. The resulting UpdateBuilder can be used as an argument +// to the WithUpdate() method for the Builder struct. +// +// Example: +// +// // Let update represent an already existing update expression. Add() adds +// // the operation to add the value 5 to the item attribute "aPath" +// update := update.Add(expression.Name("aPath"), expression.Value(5)) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// Add(expression.Name("aPath"), expression.Value(5)) +// // Let :five be an ExpressionAttributeValue representing the value 5 +// "ADD aPath :5" +func (ub UpdateBuilder) Add(name NameBuilder, value ValueBuilder) UpdateBuilder { + if ub.operationList == nil { + ub.operationList = map[operationMode][]operationBuilder{} + } + ub.operationList[addOperation] = append(ub.operationList[addOperation], operationBuilder{ + name: name, + value: value, + mode: addOperation, + }) + return ub +} + +// Remove returns an UpdateBuilder representing the Remove operation for +// DynamoDB Update Expressions. The argument name should specify the item +// attribute to delete. The resulting UpdateBuilder can be used as an argument +// to the WithUpdate() method for the Builder struct. +// +// Example: +// +// // update represents the remove operation to remove the item attribute +// // "itemToRemove" +// update := expression.Remove(expression.Name("itemToRemove")) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// expression.Remove(expression.Name("itemToRemove")) +// "REMOVE itemToRemove" +func Remove(name NameBuilder) UpdateBuilder { + emptyUpdateBuilder := UpdateBuilder{} + return emptyUpdateBuilder.Remove(name) +} + +// Remove adds a Remove operation to the argument UpdateBuilder. The +// argument name should specify the item attribute to delete. The resulting +// UpdateBuilder can be used as an argument to the WithUpdate() method for the +// Builder struct. +// +// Example: +// +// // Let update represent an already existing update expression. Remove() +// // adds the operation to remove the item attribute "itemToRemove" +// update := update.Remove(expression.Name("itemToRemove")) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// Remove(expression.Name("itemToRemove")) +// "REMOVE itemToRemove" +func (ub UpdateBuilder) Remove(name NameBuilder) UpdateBuilder { + if ub.operationList == nil { + ub.operationList = map[operationMode][]operationBuilder{} + } + ub.operationList[removeOperation] = append(ub.operationList[removeOperation], operationBuilder{ + name: name, + mode: removeOperation, + }) + return ub +} + +// Set returns an UpdateBuilder representing the Set operation for DynamoDB +// Update Expressions. The argument name should specify the item attribute to +// modify. The argument OperandBuilder should specify the value to modify the +// the item attribute to. The resulting UpdateBuilder can be used as an argument +// to the WithUpdate() method for the Builder struct. +// +// Example: +// +// // update represents the set operation to set the item attribute +// // "itemToSet" to the value "setValue" if the item attribute does not +// // exist yet. (conditional write) +// update := expression.Set(expression.Name("itemToSet"), expression.IfNotExists(expression.Name("itemToSet"), expression.Value("setValue"))) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// expression.Set(expression.Name("itemToSet"), expression.IfNotExists(expression.Name("itemToSet"), expression.Value("setValue"))) +// // Let :val be an ExpressionAttributeValue representing the value +// // "setValue" +// "SET itemToSet = :val" +func Set(name NameBuilder, operandBuilder OperandBuilder) UpdateBuilder { + emptyUpdateBuilder := UpdateBuilder{} + return emptyUpdateBuilder.Set(name, operandBuilder) +} + +// Set adds a Set operation to the argument UpdateBuilder. The argument name +// should specify the item attribute to modify. The argument OperandBuilder +// should specify the value to modify the the item attribute to. The resulting +// UpdateBuilder can be used as an argument to the WithUpdate() method for the +// Builder struct. +// +// Example: +// +// // Let update represent an already existing update expression. Set() adds +// // the operation to to set the item attribute "itemToSet" to the value +// // "setValue" if the item attribute does not exist yet. (conditional +// // write) +// update := update.Set(expression.Name("itemToSet"), expression.IfNotExists(expression.Name("itemToSet"), expression.Value("setValue"))) +// +// // Adding more update methods +// anotherUpdate := update.Remove(expression.Name("someName")) +// // Creating a Builder +// builder := Update(update) +// +// Expression Equivalent: +// +// Set(expression.Name("itemToSet"), expression.IfNotExists(expression.Name("itemToSet"), expression.Value("setValue"))) +// // Let :val be an ExpressionAttributeValue representing the value +// // "setValue" +// "SET itemToSet = :val" +func (ub UpdateBuilder) Set(name NameBuilder, operandBuilder OperandBuilder) UpdateBuilder { + if ub.operationList == nil { + ub.operationList = map[operationMode][]operationBuilder{} + } + ub.operationList[setOperation] = append(ub.operationList[setOperation], operationBuilder{ + name: name, + value: operandBuilder, + mode: setOperation, + }) + return ub +} + +// buildTree builds a tree structure of exprNodes based on the tree +// structure of the input UpdateBuilder's child UpdateBuilders/Operands. +// buildTree() satisfies the TreeBuilder interface so ProjectionBuilder can be a +// part of Expression struct. +func (ub UpdateBuilder) buildTree() (exprNode, error) { + if ub.operationList == nil { + return exprNode{}, newUnsetParameterError("buildTree", "UpdateBuilder") + } + ret := exprNode{ + children: []exprNode{}, + } + + modes := modeList{} + + for mode := range ub.operationList { + modes = append(modes, mode) + } + + sort.Sort(modes) + + for _, key := range modes { + ret.fmtExpr += string(key) + " $c\n" + + childNode, err := buildChildNodes(ub.operationList[key]) + if err != nil { + return exprNode{}, err + } + + ret.children = append(ret.children, childNode) + } + + return ret, nil +} + +// buildChildNodes creates the list of the child exprNodes. +func buildChildNodes(operationBuilderList []operationBuilder) (exprNode, error) { + if len(operationBuilderList) == 0 { + return exprNode{}, fmt.Errorf("buildChildNodes error: operationBuilder list is empty") + } + + node := exprNode{ + children: make([]exprNode, 0, len(operationBuilderList)), + fmtExpr: "$c" + strings.Repeat(", $c", len(operationBuilderList)-1), + } + + for _, val := range operationBuilderList { + valNode, err := val.buildOperation() + if err != nil { + return exprNode{}, err + } + node.children = append(node.children, valNode) + } + + return node, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update_test.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update_test.go new file mode 100644 index 00000000..2e8a4735 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/expression/update_test.go @@ -0,0 +1,771 @@ +// +build go1.7 + +package expression + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" +) + +// updateErrorMode will help with error cases and checking error types +type updateErrorMode string + +const ( + noUpdateError updateErrorMode = "" + invalidUpdateOperand = "BuildOperand error" + unsetSetValue = "unset parameter: SetValueBuilder" + unsetUpdate = "unset parameter: UpdateBuilder" + emptyOperationBuilderList = "operationBuilder list is empty" +) + +func TestBuildOperation(t *testing.T) { + cases := []struct { + name string + input operationBuilder + expected exprNode + err updateErrorMode + }{ + { + name: "set operation", + input: operationBuilder{ + name: Name("foo"), + value: Value(5), + mode: setOperation, + }, + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + { + name: "add operation", + input: operationBuilder{ + name: Name("foo"), + value: Value(5), + mode: addOperation, + }, + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c $c", + }, + }, + { + name: "remove operation", + input: operationBuilder{ + name: Name("foo"), + mode: removeOperation, + }, + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c", + }, + }, + { + name: "invalid operand", + input: operationBuilder{ + name: Name(""), + mode: removeOperation, + }, + err: invalidUpdateOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildOperation() + if c.err != noUpdateError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestUpdateTree(t *testing.T) { + cases := []struct { + name string + input UpdateBuilder + expectedNode exprNode + err updateErrorMode + }{ + { + name: "set update", + input: Set(Name("foo"), Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "SET $c\n", + }, + }, + { + name: "remove update", + input: Remove(Name("foo")), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "REMOVE $c\n", + }, + }, + { + name: "add update", + input: Add(Name("foo"), Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c $c", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "ADD $c\n", + }, + }, + { + name: "delete update", + input: Delete(Name("foo"), Value(5)), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c $c", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "DELETE $c\n", + }, + }, + { + name: "multiple sets", + input: Set(Name("foo"), Value(5)).Set(Name("bar"), Value(6)).Set(Name("baz"), Name("qux")), + expectedNode: exprNode{ + fmtExpr: "SET $c\n", + children: []exprNode{ + { + fmtExpr: "$c, $c, $c", + children: []exprNode{ + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"foo"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + }, + }, + }, + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"bar"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("6"), + }, + }, + }, + }, + }, + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"baz"}, + }, + { + fmtExpr: "$n", + names: []string{"qux"}, + }, + }, + }, + }, + }, + }, + }, + }, + { + name: "compound update", + input: Add(Name("foo"), Value(5)).Set(Name("foo"), Value(5)).Delete(Name("foo"), Value(5)).Remove(Name("foo")), + expectedNode: exprNode{ + children: []exprNode{ + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c $c", + }, + }, + fmtExpr: "$c", + }, + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c $c", + }, + }, + fmtExpr: "$c", + }, + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "$c", + }, + { + children: []exprNode{ + { + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + }, + fmtExpr: "$c = $c", + }, + }, + fmtExpr: "$c", + }, + }, + fmtExpr: "ADD $c\nDELETE $c\nREMOVE $c\nSET $c\n", + }, + }, + { + name: "empty UpdateBuilder", + input: UpdateBuilder{}, + err: unsetUpdate, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.buildTree() + if c.err != noUpdateError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expectedNode, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestSetValueBuilder(t *testing.T) { + cases := []struct { + name string + input SetValueBuilder + expected exprNode + err updateErrorMode + }{ + { + name: "name plus name", + input: Name("foo").Plus(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c + $c", + }, + }, + { + name: "name minus name", + input: Name("foo").Minus(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c - $c", + }, + }, + { + name: "list append name and name", + input: Name("foo").ListAppend(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "list_append($c, $c)", + }, + }, + { + name: "if not exists name and name", + input: Name("foo").IfNotExists(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + names: []string{"foo"}, + fmtExpr: "$n", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "if_not_exists($c, $c)", + }, + }, + { + name: "value plus name", + input: Value(5).Plus(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c + $c", + }, + }, + { + name: "value minus name", + input: Value(5).Minus(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + fmtExpr: "$v", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "$c - $c", + }, + }, + { + name: "list append list and name", + input: Value([]int{1, 2, 3}).ListAppend(Name("bar")), + expected: exprNode{ + children: []exprNode{ + { + values: []dynamodb.AttributeValue{ + { + L: []*dynamodb.AttributeValue{ + { + N: aws.String("1"), + }, + { + N: aws.String("2"), + }, + { + N: aws.String("3"), + }, + }, + }, + }, + fmtExpr: "$v", + }, + { + names: []string{"bar"}, + fmtExpr: "$n", + }, + }, + fmtExpr: "list_append($c, $c)", + }, + }, + { + name: "unset SetValueBuilder", + input: SetValueBuilder{}, + err: unsetSetValue, + }, + { + name: "invalid operand error", + input: Name("").Plus(Name("foo")), + err: invalidUpdateOperand, + }, + { + name: "invalid operand error", + input: Name("foo").Plus(Name("")), + err: invalidUpdateOperand, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := c.input.BuildOperand() + if c.err != noUpdateError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, actual.exprNode; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} + +func TestUpdateBuildChildNodes(t *testing.T) { + cases := []struct { + name string + input []operationBuilder + expected exprNode + err updateErrorMode + }{ + { + name: "set operand builder", + input: []operationBuilder{ + { + mode: setOperation, + name: NameBuilder{ + name: "foo", + }, + value: ValueBuilder{ + value: 5, + }, + }, + { + mode: setOperation, + name: NameBuilder{ + name: "bar", + }, + value: ValueBuilder{ + value: 6, + }, + }, + { + mode: setOperation, + name: NameBuilder{ + name: "baz", + }, + value: ValueBuilder{ + value: 7, + }, + }, + { + mode: setOperation, + name: NameBuilder{ + name: "qux", + }, + value: ValueBuilder{ + value: 8, + }, + }, + }, + expected: exprNode{ + fmtExpr: "$c, $c, $c, $c", + children: []exprNode{ + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"foo"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("5"), + }, + }, + }, + }, + }, + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"bar"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("6"), + }, + }, + }, + }, + }, + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"baz"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("7"), + }, + }, + }, + }, + }, + { + fmtExpr: "$c = $c", + children: []exprNode{ + { + fmtExpr: "$n", + names: []string{"qux"}, + }, + { + fmtExpr: "$v", + values: []dynamodb.AttributeValue{ + { + N: aws.String("8"), + }, + }, + }, + }, + }, + }, + }, + }, + { + name: "empty operationBuilder list", + input: []operationBuilder{}, + err: emptyOperationBuilderList, + }, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + actual, err := buildChildNodes(c.input) + if c.err != noUpdateError { + if err == nil { + t.Errorf("expect error %q, got no error", c.err) + } else { + if e, a := string(c.err), err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %q error message to be in %q", e, a) + } + } + } else { + if err != nil { + t.Errorf("expect no error, got unexpected Error %q", err) + } + + if e, a := c.expected, actual; !reflect.DeepEqual(a, e) { + t.Errorf("expect %v, got %v", e, a) + } + } + }) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index ccb14369..9d4570d6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -2275,8 +2275,7 @@ func (c *EC2) ConfirmProductInstanceRequest(input *ConfirmProductInstanceInput) // // Determines whether a product code is associated with an instance. This action // can only be used by the owner of the product code. It is useful when a product -// code owner needs to verify whether another user's instance is eligible for -// support. +// code owner must verify whether another user's instance is eligible for support. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2306,6 +2305,80 @@ func (c *EC2) ConfirmProductInstanceWithContext(ctx aws.Context, input *ConfirmP return out, req.Send() } +const opCopyFpgaImage = "CopyFpgaImage" + +// CopyFpgaImageRequest generates a "aws/request.Request" representing the +// client's request for the CopyFpgaImage operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CopyFpgaImage for more information on using the CopyFpgaImage +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CopyFpgaImageRequest method. +// req, resp := client.CopyFpgaImageRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImage +func (c *EC2) CopyFpgaImageRequest(input *CopyFpgaImageInput) (req *request.Request, output *CopyFpgaImageOutput) { + op := &request.Operation{ + Name: opCopyFpgaImage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CopyFpgaImageInput{} + } + + output = &CopyFpgaImageOutput{} + req = c.newRequest(op, input, output) + return +} + +// CopyFpgaImage API operation for Amazon Elastic Compute Cloud. +// +// Copies the specified Amazon FPGA Image (AFI) to the current region. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation CopyFpgaImage for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImage +func (c *EC2) CopyFpgaImage(input *CopyFpgaImageInput) (*CopyFpgaImageOutput, error) { + req, out := c.CopyFpgaImageRequest(input) + return out, req.Send() +} + +// CopyFpgaImageWithContext is the same as CopyFpgaImage with the addition of +// the ability to pass a context and additional request options. +// +// See CopyFpgaImage for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) CopyFpgaImageWithContext(ctx aws.Context, input *CopyFpgaImageInput, opts ...request.Option) (*CopyFpgaImageOutput, error) { + req, out := c.CopyFpgaImageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCopyImage = "CopyImage" // CopyImageRequest generates a "aws/request.Request" representing the @@ -3793,8 +3866,8 @@ func (c *EC2) CreatePlacementGroupRequest(input *CreatePlacementGroupInput) (req // CreatePlacementGroup API operation for Amazon Elastic Compute Cloud. // -// Creates a placement group that you launch cluster instances into. You must -// give the group a name that's unique within the scope of your account. +// Creates a placement group that you launch cluster instances into. Give the +// group a name that's unique within the scope of your account. // // For more information about placement groups and cluster instances, see Cluster // Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html) @@ -4967,8 +5040,7 @@ func (c *EC2) CreateVpnConnectionRequest(input *CreateVpnConnectionInput) (req * // This is an idempotent operation. If you perform the operation more than once, // Amazon EC2 doesn't return an error. // -// For more information about VPN connections, see Adding a Hardware Virtual -// Private Gateway to Your VPC (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html) +// For more information, see AWS Managed VPN Connections (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html) // in the Amazon Virtual Private Cloud User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -5466,6 +5538,80 @@ func (c *EC2) DeleteFlowLogsWithContext(ctx aws.Context, input *DeleteFlowLogsIn return out, req.Send() } +const opDeleteFpgaImage = "DeleteFpgaImage" + +// DeleteFpgaImageRequest generates a "aws/request.Request" representing the +// client's request for the DeleteFpgaImage operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteFpgaImage for more information on using the DeleteFpgaImage +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteFpgaImageRequest method. +// req, resp := client.DeleteFpgaImageRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImage +func (c *EC2) DeleteFpgaImageRequest(input *DeleteFpgaImageInput) (req *request.Request, output *DeleteFpgaImageOutput) { + op := &request.Operation{ + Name: opDeleteFpgaImage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteFpgaImageInput{} + } + + output = &DeleteFpgaImageOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteFpgaImage API operation for Amazon Elastic Compute Cloud. +// +// Deletes the specified Amazon FPGA Image (AFI). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DeleteFpgaImage for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImage +func (c *EC2) DeleteFpgaImage(input *DeleteFpgaImageInput) (*DeleteFpgaImageOutput, error) { + req, out := c.DeleteFpgaImageRequest(input) + return out, req.Send() +} + +// DeleteFpgaImageWithContext is the same as DeleteFpgaImage with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteFpgaImage for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DeleteFpgaImageWithContext(ctx aws.Context, input *DeleteFpgaImageInput, opts ...request.Option) (*DeleteFpgaImageOutput, error) { + req, out := c.DeleteFpgaImageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteInternetGateway = "DeleteInternetGateway" // DeleteInternetGatewayRequest generates a "aws/request.Request" representing the @@ -8219,6 +8365,80 @@ func (c *EC2) DescribeFlowLogsWithContext(ctx aws.Context, input *DescribeFlowLo return out, req.Send() } +const opDescribeFpgaImageAttribute = "DescribeFpgaImageAttribute" + +// DescribeFpgaImageAttributeRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFpgaImageAttribute operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeFpgaImageAttribute for more information on using the DescribeFpgaImageAttribute +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DescribeFpgaImageAttributeRequest method. +// req, resp := client.DescribeFpgaImageAttributeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttribute +func (c *EC2) DescribeFpgaImageAttributeRequest(input *DescribeFpgaImageAttributeInput) (req *request.Request, output *DescribeFpgaImageAttributeOutput) { + op := &request.Operation{ + Name: opDescribeFpgaImageAttribute, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFpgaImageAttributeInput{} + } + + output = &DescribeFpgaImageAttributeOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFpgaImageAttribute API operation for Amazon Elastic Compute Cloud. +// +// Describes the specified attribute of the specified Amazon FPGA Image (AFI). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DescribeFpgaImageAttribute for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttribute +func (c *EC2) DescribeFpgaImageAttribute(input *DescribeFpgaImageAttributeInput) (*DescribeFpgaImageAttributeOutput, error) { + req, out := c.DescribeFpgaImageAttributeRequest(input) + return out, req.Send() +} + +// DescribeFpgaImageAttributeWithContext is the same as DescribeFpgaImageAttribute with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFpgaImageAttribute for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DescribeFpgaImageAttributeWithContext(ctx aws.Context, input *DescribeFpgaImageAttributeInput, opts ...request.Option) (*DescribeFpgaImageAttributeOutput, error) { + req, out := c.DescribeFpgaImageAttributeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeFpgaImages = "DescribeFpgaImages" // DescribeFpgaImagesRequest generates a "aws/request.Request" representing the @@ -14855,7 +15075,7 @@ func (c *EC2) GetConsoleOutputRequest(input *GetConsoleOutputInput) (req *reques // the Amazon EC2 API and command line interface. // // Instance console output is buffered and posted shortly after instance boot, -// reboot, and termination. Amazon EC2 preserves the most recent 64 KB output +// reboot, and termination. Amazon EC2 preserves the most recent 64 KB output, // which is available for at least one hour after the most recent post. // // For Linux instances, the instance console output displays the exact console @@ -15093,20 +15313,24 @@ func (c *EC2) GetPasswordDataRequest(input *GetPasswordDataInput) (req *request. // GetPasswordData API operation for Amazon Elastic Compute Cloud. // -// Retrieves the encrypted administrator password for an instance running Windows. +// Retrieves the encrypted administrator password for a running Windows instance. // -// The Windows password is generated at boot if the EC2Config service plugin, -// Ec2SetPassword, is enabled. This usually only happens the first time an AMI -// is launched, and then Ec2SetPassword is automatically disabled. The password -// is not generated for rebundled AMIs unless Ec2SetPassword is enabled before -// bundling. +// The Windows password is generated at boot by the EC2Config service or EC2Launch +// scripts (Windows Server 2016 and later). This usually only happens the first +// time an instance is launched. For more information, see EC2Config (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html) +// and EC2Launch (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html) +// in the Amazon Elastic Compute Cloud User Guide. +// +// For the EC2Config service, the password is not generated for rebundled AMIs +// unless Ec2SetPassword is enabled before bundling. // // The password is encrypted using the key pair that you specified when you // launched the instance. You must provide the corresponding key pair file. // -// Password generation and encryption takes a few moments. We recommend that -// you wait up to 15 minutes after launching an instance before trying to retrieve -// the generated password. +// When you launch an instance, password generation and encryption may take +// a few minutes. If you try to retrieve the password before it's available, +// the output returns an empty string. We recommend that you wait up to 15 minutes +// after launching an instance before trying to retrieve the generated password. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -15602,6 +15826,80 @@ func (c *EC2) ImportVolumeWithContext(ctx aws.Context, input *ImportVolumeInput, return out, req.Send() } +const opModifyFpgaImageAttribute = "ModifyFpgaImageAttribute" + +// ModifyFpgaImageAttributeRequest generates a "aws/request.Request" representing the +// client's request for the ModifyFpgaImageAttribute operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ModifyFpgaImageAttribute for more information on using the ModifyFpgaImageAttribute +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ModifyFpgaImageAttributeRequest method. +// req, resp := client.ModifyFpgaImageAttributeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttribute +func (c *EC2) ModifyFpgaImageAttributeRequest(input *ModifyFpgaImageAttributeInput) (req *request.Request, output *ModifyFpgaImageAttributeOutput) { + op := &request.Operation{ + Name: opModifyFpgaImageAttribute, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyFpgaImageAttributeInput{} + } + + output = &ModifyFpgaImageAttributeOutput{} + req = c.newRequest(op, input, output) + return +} + +// ModifyFpgaImageAttribute API operation for Amazon Elastic Compute Cloud. +// +// Modifies the specified attribute of the specified Amazon FPGA Image (AFI). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation ModifyFpgaImageAttribute for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttribute +func (c *EC2) ModifyFpgaImageAttribute(input *ModifyFpgaImageAttributeInput) (*ModifyFpgaImageAttributeOutput, error) { + req, out := c.ModifyFpgaImageAttributeRequest(input) + return out, req.Send() +} + +// ModifyFpgaImageAttributeWithContext is the same as ModifyFpgaImageAttribute with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyFpgaImageAttribute for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) ModifyFpgaImageAttributeWithContext(ctx aws.Context, input *ModifyFpgaImageAttributeInput, opts ...request.Option) (*ModifyFpgaImageAttributeOutput, error) { + req, out := c.ModifyFpgaImageAttributeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opModifyHosts = "ModifyHosts" // ModifyHostsRequest generates a "aws/request.Request" representing the @@ -18465,6 +18763,81 @@ func (c *EC2) RequestSpotInstancesWithContext(ctx aws.Context, input *RequestSpo return out, req.Send() } +const opResetFpgaImageAttribute = "ResetFpgaImageAttribute" + +// ResetFpgaImageAttributeRequest generates a "aws/request.Request" representing the +// client's request for the ResetFpgaImageAttribute operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ResetFpgaImageAttribute for more information on using the ResetFpgaImageAttribute +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ResetFpgaImageAttributeRequest method. +// req, resp := client.ResetFpgaImageAttributeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttribute +func (c *EC2) ResetFpgaImageAttributeRequest(input *ResetFpgaImageAttributeInput) (req *request.Request, output *ResetFpgaImageAttributeOutput) { + op := &request.Operation{ + Name: opResetFpgaImageAttribute, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ResetFpgaImageAttributeInput{} + } + + output = &ResetFpgaImageAttributeOutput{} + req = c.newRequest(op, input, output) + return +} + +// ResetFpgaImageAttribute API operation for Amazon Elastic Compute Cloud. +// +// Resets the specified attribute of the specified Amazon FPGA Image (AFI) to +// its default value. You can only reset the load permission attribute. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation ResetFpgaImageAttribute for usage and error information. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttribute +func (c *EC2) ResetFpgaImageAttribute(input *ResetFpgaImageAttributeInput) (*ResetFpgaImageAttributeOutput, error) { + req, out := c.ResetFpgaImageAttributeRequest(input) + return out, req.Send() +} + +// ResetFpgaImageAttributeWithContext is the same as ResetFpgaImageAttribute with the addition of +// the ability to pass a context and additional request options. +// +// See ResetFpgaImageAttribute for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) ResetFpgaImageAttributeWithContext(ctx aws.Context, input *ResetFpgaImageAttributeInput, opts ...request.Option) (*ResetFpgaImageAttributeOutput, error) { + req, out := c.ResetFpgaImageAttributeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opResetImageAttribute = "ResetImageAttribute" // ResetImageAttributeRequest generates a "aws/request.Request" representing the @@ -19115,8 +19488,8 @@ func (c *EC2) RunInstancesRequest(input *RunInstancesInput) (req *request.Reques // not subscribed, the request fails. // // To ensure faster instance launches, break up large requests into smaller -// batches. For example, create 5 separate launch requests for 100 instances -// each instead of 1 launch request for 500 instances. +// batches. For example, create five separate launch requests for 100 instances +// each instead of one launch request for 500 instances. // // An instance is ready for you to use when it's in the running state. You can // check the state of your instance using DescribeInstances. You can tag instances @@ -19290,16 +19663,20 @@ func (c *EC2) StartInstancesRequest(input *StartInstancesInput) (req *request.Re // StartInstances API operation for Amazon Elastic Compute Cloud. // -// Starts an Amazon EBS-backed AMI that you've previously stopped. +// Starts an Amazon EBS-backed instance that you've previously stopped. // // Instances that use Amazon EBS volumes as their root devices can be quickly // stopped and started. When an instance is stopped, the compute resources are -// released and you are not billed for hourly instance usage. However, your -// root partition Amazon EBS volume remains, continues to persist your data, -// and you are charged for Amazon EBS volume usage. You can restart your instance -// at any time. Each time you transition an instance from stopped to started, -// Amazon EC2 charges a full instance hour, even if transitions happen multiple -// times within a single hour. +// released and you are not billed for instance usage. However, your root partition +// Amazon EBS volume remains and continues to persist your data, and you are +// charged for Amazon EBS volume usage. You can restart your instance at any +// time. Every time you start your Windows instance, Amazon EC2 charges you +// for a full instance hour. If you stop and restart your Windows instance, +// a new instance hour begins and Amazon EC2 charges you for another full instance +// hour even if you are still within the same 60-minute period when it was stopped. +// Every time you start your Linux instance, Amazon EC2 charges a one-minute +// minimum for instance usage, and thereafter charges per second for instance +// usage. // // Before stopping an instance, make sure it is in a state from which it can // be restarted. Stopping an instance does not preserve data stored in RAM. @@ -19384,14 +19761,17 @@ func (c *EC2) StopInstancesRequest(input *StopInstancesInput) (req *request.Requ // // Stops an Amazon EBS-backed instance. // -// We don't charge hourly usage for a stopped instance, or data transfer fees; -// however, your root partition Amazon EBS volume remains, continues to persist -// your data, and you are charged for Amazon EBS volume usage. Each time you -// transition an instance from stopped to started, Amazon EC2 charges a full -// instance hour, even if transitions happen multiple times within a single -// hour. +// We don't charge usage for a stopped instance, or data transfer fees; however, +// your root partition Amazon EBS volume remains and continues to persist your +// data, and you are charged for Amazon EBS volume usage. Every time you start +// your Windows instance, Amazon EC2 charges you for a full instance hour. If +// you stop and restart your Windows instance, a new instance hour begins and +// Amazon EC2 charges you for another full instance hour even if you are still +// within the same 60-minute period when it was stopped. Every time you start +// your Linux instance, Amazon EC2 charges a one-minute minimum for instance +// usage, and thereafter charges per second for instance usage. // -// You can't start or stop Spot instances, and you can't stop instance store-backed +// You can't start or stop Spot Instances, and you can't stop instance store-backed // instances. // // When you stop an instance, we shut it down. You can restart your instance @@ -23511,6 +23891,123 @@ func (s *ConversionTask) SetTags(v []*Tag) *ConversionTask { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImageRequest +type CopyFpgaImageInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. For more information, see Ensuring Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html). + ClientToken *string `type:"string"` + + // The description for the new AFI. + Description *string `type:"string"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The name for the new AFI. The default is the name of the source AFI. + Name *string `type:"string"` + + // The ID of the source AFI. + // + // SourceFpgaImageId is a required field + SourceFpgaImageId *string `type:"string" required:"true"` + + // The region that contains the source AFI. + // + // SourceRegion is a required field + SourceRegion *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CopyFpgaImageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CopyFpgaImageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CopyFpgaImageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CopyFpgaImageInput"} + if s.SourceFpgaImageId == nil { + invalidParams.Add(request.NewErrParamRequired("SourceFpgaImageId")) + } + if s.SourceRegion == nil { + invalidParams.Add(request.NewErrParamRequired("SourceRegion")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CopyFpgaImageInput) SetClientToken(v string) *CopyFpgaImageInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CopyFpgaImageInput) SetDescription(v string) *CopyFpgaImageInput { + s.Description = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *CopyFpgaImageInput) SetDryRun(v bool) *CopyFpgaImageInput { + s.DryRun = &v + return s +} + +// SetName sets the Name field's value. +func (s *CopyFpgaImageInput) SetName(v string) *CopyFpgaImageInput { + s.Name = &v + return s +} + +// SetSourceFpgaImageId sets the SourceFpgaImageId field's value. +func (s *CopyFpgaImageInput) SetSourceFpgaImageId(v string) *CopyFpgaImageInput { + s.SourceFpgaImageId = &v + return s +} + +// SetSourceRegion sets the SourceRegion field's value. +func (s *CopyFpgaImageInput) SetSourceRegion(v string) *CopyFpgaImageInput { + s.SourceRegion = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImageResult +type CopyFpgaImageOutput struct { + _ struct{} `type:"structure"` + + // The ID of the new AFI. + FpgaImageId *string `locationName:"fpgaImageId" type:"string"` +} + +// String returns the string representation +func (s CopyFpgaImageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CopyFpgaImageOutput) GoString() string { + return s.String() +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *CopyFpgaImageOutput) SetFpgaImageId(v string) *CopyFpgaImageOutput { + s.FpgaImageId = &v + return s +} + // Contains the parameters for CopyImage. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImageRequest type CopyImageInput struct { @@ -26868,11 +27365,7 @@ type CreateVpnConnectionInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` - // Indicates whether the VPN connection requires static routes. If you are creating - // a VPN connection for a device that does not support BGP, you must specify - // true. - // - // Default: false + // The options for the VPN connection. Options *VpnConnectionOptionsSpecification `locationName:"options" type:"structure"` // The type of VPN connection (ipsec.1). @@ -27471,6 +27964,81 @@ func (s *DeleteFlowLogsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *DeleteFlo return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImageRequest +type DeleteFpgaImageInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the AFI. + // + // FpgaImageId is a required field + FpgaImageId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteFpgaImageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteFpgaImageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFpgaImageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteFpgaImageInput"} + if s.FpgaImageId == nil { + invalidParams.Add(request.NewErrParamRequired("FpgaImageId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *DeleteFpgaImageInput) SetDryRun(v bool) *DeleteFpgaImageInput { + s.DryRun = &v + return s +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *DeleteFpgaImageInput) SetFpgaImageId(v string) *DeleteFpgaImageInput { + s.FpgaImageId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImageResult +type DeleteFpgaImageOutput struct { + _ struct{} `type:"structure"` + + // Is true if the request succeeds, and an error otherwise. + Return *bool `locationName:"return" type:"boolean"` +} + +// String returns the string representation +func (s DeleteFpgaImageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteFpgaImageOutput) GoString() string { + return s.String() +} + +// SetReturn sets the Return field's value. +func (s *DeleteFpgaImageOutput) SetReturn(v bool) *DeleteFpgaImageOutput { + s.Return = &v + return s +} + // Contains the parameters for DeleteInternetGateway. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGatewayRequest type DeleteInternetGatewayInput struct { @@ -30174,6 +30742,95 @@ func (s *DescribeFlowLogsOutput) SetNextToken(v string) *DescribeFlowLogsOutput return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttributeRequest +type DescribeFpgaImageAttributeInput struct { + _ struct{} `type:"structure"` + + // The AFI attribute. + // + // Attribute is a required field + Attribute *string `type:"string" required:"true" enum:"FpgaImageAttributeName"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the AFI. + // + // FpgaImageId is a required field + FpgaImageId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFpgaImageAttributeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFpgaImageAttributeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFpgaImageAttributeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFpgaImageAttributeInput"} + if s.Attribute == nil { + invalidParams.Add(request.NewErrParamRequired("Attribute")) + } + if s.FpgaImageId == nil { + invalidParams.Add(request.NewErrParamRequired("FpgaImageId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *DescribeFpgaImageAttributeInput) SetAttribute(v string) *DescribeFpgaImageAttributeInput { + s.Attribute = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *DescribeFpgaImageAttributeInput) SetDryRun(v bool) *DescribeFpgaImageAttributeInput { + s.DryRun = &v + return s +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *DescribeFpgaImageAttributeInput) SetFpgaImageId(v string) *DescribeFpgaImageAttributeInput { + s.FpgaImageId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttributeResult +type DescribeFpgaImageAttributeOutput struct { + _ struct{} `type:"structure"` + + // Information about the attribute. + FpgaImageAttribute *FpgaImageAttribute `locationName:"fpgaImageAttribute" type:"structure"` +} + +// String returns the string representation +func (s DescribeFpgaImageAttributeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFpgaImageAttributeOutput) GoString() string { + return s.String() +} + +// SetFpgaImageAttribute sets the FpgaImageAttribute field's value. +func (s *DescribeFpgaImageAttributeOutput) SetFpgaImageAttribute(v *FpgaImageAttribute) *DescribeFpgaImageAttributeOutput { + s.FpgaImageAttribute = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImagesRequest type DescribeFpgaImagesInput struct { _ struct{} `type:"structure"` @@ -31500,7 +32157,7 @@ type DescribeInstanceAttributeOutput struct { // EC2 console, CLI, or API; otherwise, you can. DisableApiTermination *AttributeBooleanValue `locationName:"disableApiTermination" type:"structure"` - // Indicates whether the instance is optimized for EBS I/O. + // Indicates whether the instance is optimized for Amazon EBS I/O. EbsOptimized *AttributeBooleanValue `locationName:"ebsOptimized" type:"structure"` // Indicates whether enhanced networking with ENA is enabled. @@ -31532,8 +32189,8 @@ type DescribeInstanceAttributeOutput struct { RootDeviceName *AttributeValue `locationName:"rootDeviceName" type:"structure"` // Indicates whether source/destination checking is enabled. A value of true - // means checking is enabled, and false means checking is disabled. This value - // must be false for a NAT instance to perform NAT. + // means that checking is enabled, and false means that checking is disabled. + // This value must be false for a NAT instance to perform NAT. SourceDestCheck *AttributeBooleanValue `locationName:"sourceDestCheck" type:"structure"` // Indicates whether enhanced networking with the Intel 82599 Virtual Function @@ -31964,10 +32621,10 @@ type DescribeInstancesInput struct { // | in-use). // // * network-interface.source-dest-check - Whether the network interface - // performs source/destination checking. A value of true means checking is - // enabled, and false means checking is disabled. The value must be false - // for the network interface to perform network address translation (NAT) - // in your VPC. + // performs source/destination checking. A value of true means that checking + // is enabled, and false means that checking is disabled. The value must + // be false for the network interface to perform network address translation + // (NAT) in your VPC. // // * network-interface.subnet-id - The ID of the subnet for the network interface. // @@ -32002,9 +32659,9 @@ type DescribeInstancesInput struct { // ID is created any time you launch an instance. A reservation ID has a // one-to-one relationship with an instance launch request, but can be associated // with more than one instance if you launch multiple instances using the - // same launch request. For example, if you launch one instance, you'll get + // same launch request. For example, if you launch one instance, you get // one reservation ID. If you launch ten instances using the same launch - // request, you'll also get one reservation ID. + // request, you also get one reservation ID. // // * root-device-name - The name of the root device for the instance (for // example, /dev/sda1 or /dev/xvda). @@ -32014,10 +32671,10 @@ type DescribeInstancesInput struct { // // * source-dest-check - Indicates whether the instance performs source/destination // checking. A value of true means that checking is enabled, and false means - // checking is disabled. The value must be false for the instance to perform - // network address translation (NAT) in your VPC. + // that checking is disabled. The value must be false for the instance to + // perform network address translation (NAT) in your VPC. // - // * spot-instance-request-id - The ID of the Spot instance request. + // * spot-instance-request-id - The ID of the Spot Instance request. // // * state-reason-code - The reason code for the state change. // @@ -32034,9 +32691,8 @@ type DescribeInstancesInput struct { // independent of the tag-value filter. For example, if you use both the // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources // assigned both the tag key Purpose (regardless of what the tag's value - // is), and the tag value X (regardless of what the tag's key is). If you - // want to list only resources where Purpose is X, see the tag:key=value - // filter. + // is), and the tag value X (regardless of the tag's key). If you want to + // list only resources where Purpose is X, see the tag:key=value filter. // // * tag-value - The value of a tag assigned to the resource. This filter // is independent of the tag-key filter. @@ -35305,34 +35961,34 @@ type DescribeSpotInstanceRequestsInput struct { // // * launch.key-name - The name of the key pair the instance launched with. // - // * launch.monitoring-enabled - Whether monitoring is enabled for the Spot - // instance. + // * launch.monitoring-enabled - Whether detailed monitoring is enabled for + // the Spot instance. // // * launch.ramdisk-id - The RAM disk ID. // - // * network-interface.network-interface-id - The ID of the network interface. + // * launched-availability-zone - The Availability Zone in which the bid + // is launched. // - // * network-interface.device-index - The index of the device for the network - // interface attachment on the instance. - // - // * network-interface.subnet-id - The ID of the subnet for the instance. - // - // * network-interface.description - A description of the network interface. - // - // * network-interface.private-ip-address - The primary private IP address - // of the network interface. + // * network-interface.addresses.primary - Indicates whether the IP address + // is the primary private IP address. // // * network-interface.delete-on-termination - Indicates whether the network // interface is deleted when the instance is terminated. // + // * network-interface.description - A description of the network interface. + // + // * network-interface.device-index - The index of the device for the network + // interface attachment on the instance. + // // * network-interface.group-id - The ID of the security group associated // with the network interface. // - // * network-interface.group-name - The name of the security group associated - // with the network interface. + // * network-interface.network-interface-id - The ID of the network interface. // - // * network-interface.addresses.primary - Indicates whether the IP address - // is the primary private IP address. + // * network-interface.private-ip-address - The primary private IP address + // of the network interface. + // + // * network-interface.subnet-id - The ID of the subnet for the instance. // // * product-description - The product description associated with the instance // (Linux/UNIX | Windows). @@ -35372,9 +36028,6 @@ type DescribeSpotInstanceRequestsInput struct { // // * type - The type of Spot instance request (one-time | persistent). // - // * launched-availability-zone - The Availability Zone in which the bid - // is launched. - // // * valid-from - The start date of the request. // // * valid-until - The end date of the request. @@ -39763,6 +40416,9 @@ type FpgaImage struct { // The product codes for the AFI. ProductCodes []*ProductCode `locationName:"productCodes" locationNameList:"item" type:"list"` + // Indicates whether the AFI is public. + Public *bool `locationName:"public" type:"boolean"` + // The version of the AWS Shell that was used to create the bitstream. ShellVersion *string `locationName:"shellVersion" type:"string"` @@ -39840,6 +40496,12 @@ func (s *FpgaImage) SetProductCodes(v []*ProductCode) *FpgaImage { return s } +// SetPublic sets the Public field's value. +func (s *FpgaImage) SetPublic(v bool) *FpgaImage { + s.Public = &v + return s +} + // SetShellVersion sets the ShellVersion field's value. func (s *FpgaImage) SetShellVersion(v string) *FpgaImage { s.ShellVersion = &v @@ -39864,6 +40526,67 @@ func (s *FpgaImage) SetUpdateTime(v time.Time) *FpgaImage { return s } +// Describes an Amazon FPGA image (AFI) attribute. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FpgaImageAttribute +type FpgaImageAttribute struct { + _ struct{} `type:"structure"` + + // The description of the AFI. + Description *string `locationName:"description" type:"string"` + + // The ID of the AFI. + FpgaImageId *string `locationName:"fpgaImageId" type:"string"` + + // One or more load permissions. + LoadPermissions []*LoadPermission `locationName:"loadPermissions" locationNameList:"item" type:"list"` + + // The name of the AFI. + Name *string `locationName:"name" type:"string"` + + // One or more product codes. + ProductCodes []*ProductCode `locationName:"productCodes" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s FpgaImageAttribute) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FpgaImageAttribute) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *FpgaImageAttribute) SetDescription(v string) *FpgaImageAttribute { + s.Description = &v + return s +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *FpgaImageAttribute) SetFpgaImageId(v string) *FpgaImageAttribute { + s.FpgaImageId = &v + return s +} + +// SetLoadPermissions sets the LoadPermissions field's value. +func (s *FpgaImageAttribute) SetLoadPermissions(v []*LoadPermission) *FpgaImageAttribute { + s.LoadPermissions = v + return s +} + +// SetName sets the Name field's value. +func (s *FpgaImageAttribute) SetName(v string) *FpgaImageAttribute { + s.Name = &v + return s +} + +// SetProductCodes sets the ProductCodes field's value. +func (s *FpgaImageAttribute) SetProductCodes(v []*ProductCode) *FpgaImageAttribute { + s.ProductCodes = v + return s +} + // Describes the state of the bitstream generation process for an Amazon FPGA // image (AFI). // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FpgaImageState @@ -40163,7 +40886,7 @@ type GetHostReservationPurchasePreviewOutput struct { // The purchase information of the Dedicated Host Reservation and the Dedicated // Hosts associated with it. - Purchase []*Purchase `locationName:"purchase" type:"list"` + Purchase []*Purchase `locationName:"purchase" locationNameList:"item" type:"list"` // The potential total hourly price of the reservation per hour. TotalHourlyPrice *string `locationName:"totalHourlyPrice" type:"string"` @@ -40266,7 +40989,8 @@ type GetPasswordDataOutput struct { // The ID of the Windows instance. InstanceId *string `locationName:"instanceId" type:"string"` - // The password of the instance. + // The password of the instance. Returns an empty string if the password is + // not available. PasswordData *string `locationName:"passwordData" type:"string"` // The time the data was last updated. @@ -42690,7 +43414,7 @@ type Instance struct { // The idempotency token you provided when you launched the instance, if applicable. ClientToken *string `locationName:"clientToken" type:"string"` - // Indicates whether the instance is optimized for EBS I/O. This optimization + // Indicates whether the instance is optimized for Amazon EBS I/O. This optimization // provides dedicated throughput to Amazon EBS and an optimized configuration // stack to provide optimal I/O performance. This optimization isn't available // with all instance types. Additional usage charges apply when using an EBS @@ -42715,7 +43439,7 @@ type Instance struct { // The ID of the instance. InstanceId *string `locationName:"instanceId" type:"string"` - // Indicates whether this is a Spot instance or a Scheduled Instance. + // Indicates whether this is a Spot Instance or a Scheduled Instance. InstanceLifecycle *string `locationName:"instanceLifecycle" type:"string" enum:"InstanceLifecycleType"` // The instance type. @@ -42747,7 +43471,7 @@ type Instance struct { // DNS hostname can only be used inside the Amazon EC2 network. This name is // not available until the instance enters the running state. // - // [EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private + // [EC2-VPC] The Amazon-provided DNS server resolves Amazon-provided private // DNS hostnames if you've enabled DNS resolution and DNS hostnames in your // VPC. If you are not using the Amazon-provided DNS server in your VPC, your // custom domain name servers must resolve the hostname as appropriate. @@ -42782,13 +43506,13 @@ type Instance struct { // Specifies whether to enable an instance launched in a VPC to perform NAT. // This controls whether source/destination checking is enabled on the instance. - // A value of true means checking is enabled, and false means checking is disabled. - // The value must be false for the instance to perform NAT. For more information, - // see NAT Instances (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html) + // A value of true means that checking is enabled, and false means that checking + // is disabled. The value must be false for the instance to perform NAT. For + // more information, see NAT Instances (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html) // in the Amazon Virtual Private Cloud User Guide. SourceDestCheck *bool `locationName:"sourceDestCheck" type:"boolean"` - // If the request is a Spot instance request, the ID of the request. + // If the request is a Spot Instance request, the ID of the request. SpotInstanceRequestId *string `locationName:"spotInstanceRequestId" type:"string"` // Specifies whether enhanced networking with the Intel 82599 Virtual Function @@ -44641,6 +45365,259 @@ func (s *LaunchSpecification) SetUserData(v string) *LaunchSpecification { return s } +// Describes a load permission. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermission +type LoadPermission struct { + _ struct{} `type:"structure"` + + // The name of the group. + Group *string `locationName:"group" type:"string" enum:"PermissionGroup"` + + // The AWS account ID. + UserId *string `locationName:"userId" type:"string"` +} + +// String returns the string representation +func (s LoadPermission) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LoadPermission) GoString() string { + return s.String() +} + +// SetGroup sets the Group field's value. +func (s *LoadPermission) SetGroup(v string) *LoadPermission { + s.Group = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *LoadPermission) SetUserId(v string) *LoadPermission { + s.UserId = &v + return s +} + +// Describes modifications to the load permissions of an Amazon FPGA image (AFI). +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermissionModifications +type LoadPermissionModifications struct { + _ struct{} `type:"structure"` + + // The load permissions to add. + Add []*LoadPermissionRequest `locationNameList:"item" type:"list"` + + // The load permissions to remove. + Remove []*LoadPermissionRequest `locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s LoadPermissionModifications) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LoadPermissionModifications) GoString() string { + return s.String() +} + +// SetAdd sets the Add field's value. +func (s *LoadPermissionModifications) SetAdd(v []*LoadPermissionRequest) *LoadPermissionModifications { + s.Add = v + return s +} + +// SetRemove sets the Remove field's value. +func (s *LoadPermissionModifications) SetRemove(v []*LoadPermissionRequest) *LoadPermissionModifications { + s.Remove = v + return s +} + +// Describes a load permission. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermissionRequest +type LoadPermissionRequest struct { + _ struct{} `type:"structure"` + + // The name of the group. + Group *string `type:"string" enum:"PermissionGroup"` + + // The AWS account ID. + UserId *string `type:"string"` +} + +// String returns the string representation +func (s LoadPermissionRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LoadPermissionRequest) GoString() string { + return s.String() +} + +// SetGroup sets the Group field's value. +func (s *LoadPermissionRequest) SetGroup(v string) *LoadPermissionRequest { + s.Group = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *LoadPermissionRequest) SetUserId(v string) *LoadPermissionRequest { + s.UserId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttributeRequest +type ModifyFpgaImageAttributeInput struct { + _ struct{} `type:"structure"` + + // The name of the attribute. + Attribute *string `type:"string" enum:"FpgaImageAttributeName"` + + // A description for the AFI. + Description *string `type:"string"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the AFI. + // + // FpgaImageId is a required field + FpgaImageId *string `type:"string" required:"true"` + + // The load permission for the AFI. + LoadPermission *LoadPermissionModifications `type:"structure"` + + // A name for the AFI. + Name *string `type:"string"` + + // The operation type. + OperationType *string `type:"string" enum:"OperationType"` + + // One or more product codes. After you add a product code to an AFI, it can't + // be removed. This parameter is valid only when modifying the productCodes + // attribute. + ProductCodes []*string `locationName:"ProductCode" locationNameList:"ProductCode" type:"list"` + + // One or more user groups. This parameter is valid only when modifying the + // loadPermission attribute. + UserGroups []*string `locationName:"UserGroup" locationNameList:"UserGroup" type:"list"` + + // One or more AWS account IDs. This parameter is valid only when modifying + // the loadPermission attribute. + UserIds []*string `locationName:"UserId" locationNameList:"UserId" type:"list"` +} + +// String returns the string representation +func (s ModifyFpgaImageAttributeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyFpgaImageAttributeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyFpgaImageAttributeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyFpgaImageAttributeInput"} + if s.FpgaImageId == nil { + invalidParams.Add(request.NewErrParamRequired("FpgaImageId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *ModifyFpgaImageAttributeInput) SetAttribute(v string) *ModifyFpgaImageAttributeInput { + s.Attribute = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ModifyFpgaImageAttributeInput) SetDescription(v string) *ModifyFpgaImageAttributeInput { + s.Description = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *ModifyFpgaImageAttributeInput) SetDryRun(v bool) *ModifyFpgaImageAttributeInput { + s.DryRun = &v + return s +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *ModifyFpgaImageAttributeInput) SetFpgaImageId(v string) *ModifyFpgaImageAttributeInput { + s.FpgaImageId = &v + return s +} + +// SetLoadPermission sets the LoadPermission field's value. +func (s *ModifyFpgaImageAttributeInput) SetLoadPermission(v *LoadPermissionModifications) *ModifyFpgaImageAttributeInput { + s.LoadPermission = v + return s +} + +// SetName sets the Name field's value. +func (s *ModifyFpgaImageAttributeInput) SetName(v string) *ModifyFpgaImageAttributeInput { + s.Name = &v + return s +} + +// SetOperationType sets the OperationType field's value. +func (s *ModifyFpgaImageAttributeInput) SetOperationType(v string) *ModifyFpgaImageAttributeInput { + s.OperationType = &v + return s +} + +// SetProductCodes sets the ProductCodes field's value. +func (s *ModifyFpgaImageAttributeInput) SetProductCodes(v []*string) *ModifyFpgaImageAttributeInput { + s.ProductCodes = v + return s +} + +// SetUserGroups sets the UserGroups field's value. +func (s *ModifyFpgaImageAttributeInput) SetUserGroups(v []*string) *ModifyFpgaImageAttributeInput { + s.UserGroups = v + return s +} + +// SetUserIds sets the UserIds field's value. +func (s *ModifyFpgaImageAttributeInput) SetUserIds(v []*string) *ModifyFpgaImageAttributeInput { + s.UserIds = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttributeResult +type ModifyFpgaImageAttributeOutput struct { + _ struct{} `type:"structure"` + + // Information about the attribute. + FpgaImageAttribute *FpgaImageAttribute `locationName:"fpgaImageAttribute" type:"structure"` +} + +// String returns the string representation +func (s ModifyFpgaImageAttributeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyFpgaImageAttributeOutput) GoString() string { + return s.String() +} + +// SetFpgaImageAttribute sets the FpgaImageAttribute field's value. +func (s *ModifyFpgaImageAttributeOutput) SetFpgaImageAttribute(v *FpgaImageAttribute) *ModifyFpgaImageAttributeOutput { + s.FpgaImageAttribute = v + return s +} + // Contains the parameters for ModifyHosts. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHostsRequest type ModifyHostsInput struct { @@ -45057,7 +46034,7 @@ type ModifyInstanceAttributeInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` - // Specifies whether the instance is optimized for EBS I/O. This optimization + // Specifies whether the instance is optimized for Amazon EBS I/O. This optimization // provides dedicated throughput to Amazon EBS and an optimized configuration // stack to provide optimal EBS I/O performance. This optimization isn't available // with all instance types. Additional usage charges apply when using an EBS @@ -45100,8 +46077,8 @@ type ModifyInstanceAttributeInput struct { Ramdisk *AttributeValue `locationName:"ramdisk" type:"structure"` // Specifies whether source/destination checking is enabled. A value of true - // means that checking is enabled, and false means checking is disabled. This - // value must be false for a NAT instance to perform NAT. + // means that checking is enabled, and false means that checking is disabled. + // This value must be false for a NAT instance to perform NAT. SourceDestCheck *AttributeBooleanValue `type:"structure"` // Set to simple to enable enhanced networking with the Intel 82599 Virtual @@ -45115,8 +46092,8 @@ type ModifyInstanceAttributeInput struct { SriovNetSupport *AttributeValue `locationName:"sriovNetSupport" type:"structure"` // Changes the instance's user data to the specified value. If you are using - // an AWS SDK or command line tool, Base64-encoding is performed for you, and - // you can load the text from a file. Otherwise, you must provide Base64-encoded + // an AWS SDK or command line tool, base64-encoding is performed for you, and + // you can load the text from a file. Otherwise, you must provide base64-encoded // text. UserData *BlobAttributeValue `locationName:"userData" type:"structure"` @@ -48443,7 +49420,7 @@ type PurchaseHostReservationOutput struct { CurrencyCode *string `locationName:"currencyCode" type:"string" enum:"CurrencyCodeValues"` // Describes the details of the purchase. - Purchase []*Purchase `locationName:"purchase" type:"list"` + Purchase []*Purchase `locationName:"purchase" locationNameList:"item" type:"list"` // The total hourly price of the reservation calculated per hour. TotalHourlyPrice *string `locationName:"totalHourlyPrice" type:"string"` @@ -49887,7 +50864,7 @@ type ReportInstanceStatusInput struct { // Instances is a required field Instances []*string `locationName:"instanceId" locationNameList:"InstanceId" type:"list" required:"true"` - // One or more reason codes that describes the health state of your instance. + // One or more reason codes that describe the health state of your instance. // // * instance-stuck-in-state: My instance is stuck in a state. // @@ -49898,13 +50875,13 @@ type ReportInstanceStatusInput struct { // * password-not-available: A password is not available for my instance. // // * performance-network: My instance is experiencing performance problems - // which I believe are network related. + // that I believe are network related. // // * performance-instance-store: My instance is experiencing performance - // problems which I believe are related to the instance stores. + // problems that I believe are related to the instance stores. // // * performance-ebs-volume: My instance is experiencing performance problems - // which I believe are related to an EBS volume. + // that I believe are related to an EBS volume. // // * performance-other: My instance is experiencing performance problems. // @@ -51359,6 +52336,90 @@ func (s *ReservedInstancesOffering) SetUsagePrice(v float64) *ReservedInstancesO return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttributeRequest +type ResetFpgaImageAttributeInput struct { + _ struct{} `type:"structure"` + + // The attribute. + Attribute *string `type:"string" enum:"ResetFpgaImageAttributeName"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the AFI. + // + // FpgaImageId is a required field + FpgaImageId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ResetFpgaImageAttributeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResetFpgaImageAttributeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResetFpgaImageAttributeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResetFpgaImageAttributeInput"} + if s.FpgaImageId == nil { + invalidParams.Add(request.NewErrParamRequired("FpgaImageId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *ResetFpgaImageAttributeInput) SetAttribute(v string) *ResetFpgaImageAttributeInput { + s.Attribute = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *ResetFpgaImageAttributeInput) SetDryRun(v bool) *ResetFpgaImageAttributeInput { + s.DryRun = &v + return s +} + +// SetFpgaImageId sets the FpgaImageId field's value. +func (s *ResetFpgaImageAttributeInput) SetFpgaImageId(v string) *ResetFpgaImageAttributeInput { + s.FpgaImageId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttributeResult +type ResetFpgaImageAttributeOutput struct { + _ struct{} `type:"structure"` + + // Is true if the request succeeds, and an error otherwise. + Return *bool `locationName:"return" type:"boolean"` +} + +// String returns the string representation +func (s ResetFpgaImageAttributeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResetFpgaImageAttributeOutput) GoString() string { + return s.String() +} + +// SetReturn sets the Return field's value. +func (s *ResetFpgaImageAttributeOutput) SetReturn(v bool) *ResetFpgaImageAttributeOutput { + s.Return = &v + return s +} + // Contains the parameters for ResetImageAttribute. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttributeRequest type ResetImageAttributeInput struct { @@ -52341,11 +53402,11 @@ type RunInstancesInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` - // Indicates whether the instance is optimized for EBS I/O. This optimization + // Indicates whether the instance is optimized for Amazon EBS I/O. This optimization // provides dedicated throughput to Amazon EBS and an optimized configuration - // stack to provide optimal EBS I/O performance. This optimization isn't available - // with all instance types. Additional usage charges apply when using an EBS-optimized - // instance. + // stack to provide optimal Amazon EBS I/O performance. This optimization isn't + // available with all instance types. Additional usage charges apply when using + // an EBS-optimized instance. // // Default: false EbsOptimized *bool `locationName:"ebsOptimized" type:"boolean"` @@ -52472,9 +53533,9 @@ type RunInstancesInput struct { // The user data to make available to the instance. For more information, see // Running Commands on Your Linux Instance at Launch (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) // (Linux) and Adding User Data (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data) - // (Windows). If you are using an AWS SDK or command line tool, Base64-encoding + // (Windows). If you are using an AWS SDK or command line tool, base64-encoding // is performed for you, and you can load the text from a file. Otherwise, you - // must provide Base64-encoded text. + // must provide base64-encoded text. UserData *string `type:"string"` } @@ -55845,7 +56906,7 @@ type StateReason struct { // // * Server.ScheduledStop: The instance was stopped due to a scheduled retirement. // - // * Server.SpotInstanceTermination: A Spot instance was terminated due to + // * Server.SpotInstanceTermination: A Spot Instance was terminated due to // an increase in the market price. // // * Client.InternalError: A client error caused the instance to terminate @@ -58534,6 +59595,12 @@ func (s *VpcPeeringConnectionVpcInfo) SetVpcId(v string) *VpcPeeringConnectionVp type VpnConnection struct { _ struct{} `type:"structure"` + // The category of the VPN connection. A value of VPN indicates an AWS VPN connection. + // A value of VPN-Classic indicates an AWS Classic VPN connection. For more + // information, see AWS Managed VPN Categories (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html#vpn-categories) + // in the Amazon Virtual Private Cloud User Guide. + Category *string `locationName:"category" type:"string"` + // The configuration information for the VPN connection's customer gateway (in // the native XML format). This element is always present in the CreateVpnConnection // response; however, it's present in the DescribeVpnConnections response only @@ -58578,6 +59645,12 @@ func (s VpnConnection) GoString() string { return s.String() } +// SetCategory sets the Category field's value. +func (s *VpnConnection) SetCategory(v string) *VpnConnection { + s.Category = &v + return s +} + // SetCustomerGatewayConfiguration sets the CustomerGatewayConfiguration field's value. func (s *VpnConnection) SetCustomerGatewayConfiguration(v string) *VpnConnection { s.CustomerGatewayConfiguration = &v @@ -58669,9 +59742,15 @@ func (s *VpnConnectionOptions) SetStaticRoutesOnly(v bool) *VpnConnectionOptions type VpnConnectionOptionsSpecification struct { _ struct{} `type:"structure"` - // Indicates whether the VPN connection uses static routes only. Static routes - // must be used for devices that don't support BGP. + // Indicate whether the VPN connection uses static routes only. If you are creating + // a VPN connection for a device that does not support BGP, you must specify + // true. + // + // Default: false StaticRoutesOnly *bool `locationName:"staticRoutesOnly" type:"boolean"` + + // The tunnel options for the VPN connection. + TunnelOptions []*VpnTunnelOptionsSpecification `locationNameList:"item" type:"list"` } // String returns the string representation @@ -58690,6 +59769,12 @@ func (s *VpnConnectionOptionsSpecification) SetStaticRoutesOnly(v bool) *VpnConn return s } +// SetTunnelOptions sets the TunnelOptions field's value. +func (s *VpnConnectionOptionsSpecification) SetTunnelOptions(v []*VpnTunnelOptionsSpecification) *VpnConnectionOptionsSpecification { + s.TunnelOptions = v + return s +} + // Describes a virtual private gateway. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnGateway type VpnGateway struct { @@ -58804,6 +59889,63 @@ func (s *VpnStaticRoute) SetState(v string) *VpnStaticRoute { return s } +// The tunnel options for a VPN connection. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnTunnelOptionsSpecification +type VpnTunnelOptionsSpecification struct { + _ struct{} `type:"structure"` + + // The pre-shared key (PSK) to establish initial authentication between the + // virtual private gateway and customer gateway. + // + // Constraints: Allowed characters are alphanumeric characters and ._. Must + // be between 8 and 64 characters in length and cannot start with zero (0). + PreSharedKey *string `type:"string"` + + // The range of inside IP addresses for the tunnel. Any specified CIDR blocks + // must be unique across all VPN connections that use the same virtual private + // gateway. + // + // Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following + // CIDR blocks are reserved and cannot be used: + // + // * 169.254.0.0/30 + // + // * 169.254.1.0/30 + // + // * 169.254.2.0/30 + // + // * 169.254.3.0/30 + // + // * 169.254.4.0/30 + // + // * 169.254.5.0/30 + // + // * 169.254.169.252/30 + TunnelInsideCidr *string `type:"string"` +} + +// String returns the string representation +func (s VpnTunnelOptionsSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpnTunnelOptionsSpecification) GoString() string { + return s.String() +} + +// SetPreSharedKey sets the PreSharedKey field's value. +func (s *VpnTunnelOptionsSpecification) SetPreSharedKey(v string) *VpnTunnelOptionsSpecification { + s.PreSharedKey = &v + return s +} + +// SetTunnelInsideCidr sets the TunnelInsideCidr field's value. +func (s *VpnTunnelOptionsSpecification) SetTunnelInsideCidr(v string) *VpnTunnelOptionsSpecification { + s.TunnelInsideCidr = &v + return s +} + const ( // AccountAttributeNameSupportedPlatforms is a AccountAttributeName enum value AccountAttributeNameSupportedPlatforms = "supported-platforms" @@ -59132,6 +60274,20 @@ const ( FlowLogsResourceTypeNetworkInterface = "NetworkInterface" ) +const ( + // FpgaImageAttributeNameDescription is a FpgaImageAttributeName enum value + FpgaImageAttributeNameDescription = "description" + + // FpgaImageAttributeNameName is a FpgaImageAttributeName enum value + FpgaImageAttributeNameName = "name" + + // FpgaImageAttributeNameLoadPermission is a FpgaImageAttributeName enum value + FpgaImageAttributeNameLoadPermission = "loadPermission" + + // FpgaImageAttributeNameProductCodes is a FpgaImageAttributeName enum value + FpgaImageAttributeNameProductCodes = "productCodes" +) + const ( // FpgaImageStateCodePending is a FpgaImageStateCode enum value FpgaImageStateCodePending = "pending" @@ -59864,6 +61020,11 @@ const ( ReservedInstanceStateRetired = "retired" ) +const ( + // ResetFpgaImageAttributeNameLoadPermission is a ResetFpgaImageAttributeName enum value + ResetFpgaImageAttributeNameLoadPermission = "loadPermission" +) + const ( // ResetImageAttributeNameLaunchPermission is a ResetImageAttributeName enum value ResetImageAttributeNameLaunchPermission = "launchPermission" diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/customizations_test.go index 195d9b55..08ff2cf0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/customizations_test.go @@ -3,22 +3,27 @@ package ec2_test import ( "io/ioutil" "net/url" + "regexp" "testing" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/ec2" - "github.com/stretchr/testify/assert" ) func TestCopySnapshotPresignedURL(t *testing.T) { svc := ec2.New(unit.Session, &aws.Config{Region: aws.String("us-west-2")}) - assert.NotPanics(t, func() { + func() { + defer func() { + if r := recover(); r != nil { + t.Fatalf("expect CopySnapshotRequest with nill") + } + }() // Doesn't panic on nil input req, _ := svc.CopySnapshotRequest(nil) req.Sign() - }) + }() req, _ := svc.CopySnapshotRequest(&ec2.CopySnapshotInput{ SourceRegion: aws.String("us-west-1"), @@ -29,7 +34,15 @@ func TestCopySnapshotPresignedURL(t *testing.T) { b, _ := ioutil.ReadAll(req.HTTPRequest.Body) q, _ := url.ParseQuery(string(b)) u, _ := url.QueryUnescape(q.Get("PresignedUrl")) - assert.Equal(t, "us-west-2", q.Get("DestinationRegion")) - assert.Equal(t, "us-west-1", q.Get("SourceRegion")) - assert.Regexp(t, `^https://ec2\.us-west-1\.amazonaws\.com/.+&DestinationRegion=us-west-2`, u) + if e, a := "us-west-2", q.Get("DestinationRegion"); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "us-west-1", q.Get("SourceRegion"); e != a { + t.Errorf("expect %v, got %v", e, a) + } + + r := regexp.MustCompile(`^https://ec2\.us-west-1\.amazonaws\.com/.+&DestinationRegion=us-west-2`) + if !r.MatchString(u) { + t.Errorf("expect %v to match, got %v", r.String(), u) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go index c4964a3d..a52ea148 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go @@ -172,6 +172,10 @@ type EC2API interface { ConfirmProductInstanceWithContext(aws.Context, *ec2.ConfirmProductInstanceInput, ...request.Option) (*ec2.ConfirmProductInstanceOutput, error) ConfirmProductInstanceRequest(*ec2.ConfirmProductInstanceInput) (*request.Request, *ec2.ConfirmProductInstanceOutput) + CopyFpgaImage(*ec2.CopyFpgaImageInput) (*ec2.CopyFpgaImageOutput, error) + CopyFpgaImageWithContext(aws.Context, *ec2.CopyFpgaImageInput, ...request.Option) (*ec2.CopyFpgaImageOutput, error) + CopyFpgaImageRequest(*ec2.CopyFpgaImageInput) (*request.Request, *ec2.CopyFpgaImageOutput) + CopyImage(*ec2.CopyImageInput) (*ec2.CopyImageOutput, error) CopyImageWithContext(aws.Context, *ec2.CopyImageInput, ...request.Option) (*ec2.CopyImageOutput, error) CopyImageRequest(*ec2.CopyImageInput) (*request.Request, *ec2.CopyImageOutput) @@ -320,6 +324,10 @@ type EC2API interface { DeleteFlowLogsWithContext(aws.Context, *ec2.DeleteFlowLogsInput, ...request.Option) (*ec2.DeleteFlowLogsOutput, error) DeleteFlowLogsRequest(*ec2.DeleteFlowLogsInput) (*request.Request, *ec2.DeleteFlowLogsOutput) + DeleteFpgaImage(*ec2.DeleteFpgaImageInput) (*ec2.DeleteFpgaImageOutput, error) + DeleteFpgaImageWithContext(aws.Context, *ec2.DeleteFpgaImageInput, ...request.Option) (*ec2.DeleteFpgaImageOutput, error) + DeleteFpgaImageRequest(*ec2.DeleteFpgaImageInput) (*request.Request, *ec2.DeleteFpgaImageOutput) + DeleteInternetGateway(*ec2.DeleteInternetGatewayInput) (*ec2.DeleteInternetGatewayOutput, error) DeleteInternetGatewayWithContext(aws.Context, *ec2.DeleteInternetGatewayInput, ...request.Option) (*ec2.DeleteInternetGatewayOutput, error) DeleteInternetGatewayRequest(*ec2.DeleteInternetGatewayInput) (*request.Request, *ec2.DeleteInternetGatewayOutput) @@ -460,6 +468,10 @@ type EC2API interface { DescribeFlowLogsWithContext(aws.Context, *ec2.DescribeFlowLogsInput, ...request.Option) (*ec2.DescribeFlowLogsOutput, error) DescribeFlowLogsRequest(*ec2.DescribeFlowLogsInput) (*request.Request, *ec2.DescribeFlowLogsOutput) + DescribeFpgaImageAttribute(*ec2.DescribeFpgaImageAttributeInput) (*ec2.DescribeFpgaImageAttributeOutput, error) + DescribeFpgaImageAttributeWithContext(aws.Context, *ec2.DescribeFpgaImageAttributeInput, ...request.Option) (*ec2.DescribeFpgaImageAttributeOutput, error) + DescribeFpgaImageAttributeRequest(*ec2.DescribeFpgaImageAttributeInput) (*request.Request, *ec2.DescribeFpgaImageAttributeOutput) + DescribeFpgaImages(*ec2.DescribeFpgaImagesInput) (*ec2.DescribeFpgaImagesOutput, error) DescribeFpgaImagesWithContext(aws.Context, *ec2.DescribeFpgaImagesInput, ...request.Option) (*ec2.DescribeFpgaImagesOutput, error) DescribeFpgaImagesRequest(*ec2.DescribeFpgaImagesInput) (*request.Request, *ec2.DescribeFpgaImagesOutput) @@ -833,6 +845,10 @@ type EC2API interface { ImportVolumeWithContext(aws.Context, *ec2.ImportVolumeInput, ...request.Option) (*ec2.ImportVolumeOutput, error) ImportVolumeRequest(*ec2.ImportVolumeInput) (*request.Request, *ec2.ImportVolumeOutput) + ModifyFpgaImageAttribute(*ec2.ModifyFpgaImageAttributeInput) (*ec2.ModifyFpgaImageAttributeOutput, error) + ModifyFpgaImageAttributeWithContext(aws.Context, *ec2.ModifyFpgaImageAttributeInput, ...request.Option) (*ec2.ModifyFpgaImageAttributeOutput, error) + ModifyFpgaImageAttributeRequest(*ec2.ModifyFpgaImageAttributeInput) (*request.Request, *ec2.ModifyFpgaImageAttributeOutput) + ModifyHosts(*ec2.ModifyHostsInput) (*ec2.ModifyHostsOutput, error) ModifyHostsWithContext(aws.Context, *ec2.ModifyHostsInput, ...request.Option) (*ec2.ModifyHostsOutput, error) ModifyHostsRequest(*ec2.ModifyHostsInput) (*request.Request, *ec2.ModifyHostsOutput) @@ -969,6 +985,10 @@ type EC2API interface { RequestSpotInstancesWithContext(aws.Context, *ec2.RequestSpotInstancesInput, ...request.Option) (*ec2.RequestSpotInstancesOutput, error) RequestSpotInstancesRequest(*ec2.RequestSpotInstancesInput) (*request.Request, *ec2.RequestSpotInstancesOutput) + ResetFpgaImageAttribute(*ec2.ResetFpgaImageAttributeInput) (*ec2.ResetFpgaImageAttributeOutput, error) + ResetFpgaImageAttributeWithContext(aws.Context, *ec2.ResetFpgaImageAttributeInput, ...request.Option) (*ec2.ResetFpgaImageAttributeOutput, error) + ResetFpgaImageAttributeRequest(*ec2.ResetFpgaImageAttributeInput) (*request.Request, *ec2.ResetFpgaImageAttributeOutput) + ResetImageAttribute(*ec2.ResetImageAttributeInput) (*ec2.ResetImageAttributeOutput, error) ResetImageAttributeWithContext(aws.Context, *ec2.ResetImageAttributeInput, ...request.Option) (*ec2.ResetImageAttributeOutput, error) ResetImageAttributeRequest(*ec2.ResetImageAttributeInput) (*request.Request, *ec2.ResetImageAttributeOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/waiters.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/waiters.go index 6914a666..0469f0f0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/waiters.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/waiters.go @@ -1025,6 +1025,11 @@ func (c *EC2) WaitUntilSpotInstanceRequestFulfilledWithContext(ctx aws.Context, Matcher: request.PathAllWaiterMatch, Argument: "SpotInstanceRequests[].Status.Code", Expected: "fulfilled", }, + { + State: request.SuccessWaiterState, + Matcher: request.PathAllWaiterMatch, Argument: "SpotInstanceRequests[].Status.Code", + Expected: "request-canceled-and-instance-running", + }, { State: request.FailureWaiterState, Matcher: request.PathAnyWaiterMatch, Argument: "SpotInstanceRequests[].Status.Code", diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go b/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go index 19abc2d0..4108e46c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go @@ -3870,15 +3870,18 @@ type ContainerDefinition struct { // The image used to start a container. This string is passed directly to the // Docker daemon. Images in the Docker Hub registry are available by default. - // Other repositories are specified with repository-url/image:tag. Up to 255 - // letters (uppercase and lowercase), numbers, hyphens, underscores, colons, - // periods, forward slashes, and number signs are allowed. This parameter maps - // to Image in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container) + // Other repositories are specified with either repository-url/image:tag or + // repository-url/image@digest. Up to 255 letters (uppercase and lowercase), + // numbers, hyphens, underscores, colons, periods, forward slashes, and number + // signs are allowed. This parameter maps to Image in the Create a container + // (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container) // section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/) // and the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/). // - // * Images in Amazon ECR repositories use the full registry and repository - // URI (for example, 012345678910.dkr.ecr..amazonaws.com/). + // * Images in Amazon ECR repositories can be specified by either using the + // full registry/repository:tag or registry/repository@digest. For example, + // 012345678910.dkr.ecr..amazonaws.com/:latest + // or 012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. // // // * Images in official repositories on Docker Hub use a single name (for @@ -3908,6 +3911,10 @@ type ContainerDefinition struct { // and VPC settings. Links []*string `locationName:"links" type:"list"` + // Linux-specific modifications that are applied to the container, such as Linux + // KernelCapabilities. + LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"` + // The log configuration specification for the container. This parameter maps // to LogConfig in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container) // section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/) @@ -4182,6 +4189,12 @@ func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition { return s } +// SetLinuxParameters sets the LinuxParameters field's value. +func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition { + s.LinuxParameters = v + return s +} + // SetLogConfiguration sets the LogConfiguration field's value. func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition { s.LogConfiguration = v @@ -4576,18 +4589,18 @@ type CreateServiceInput struct { // After you create a service, the load balancer name or target group ARN, container // name, and container port specified in the service definition are immutable. // - // For Elastic Load Balancing Classic load balancers, this object must contain - // the load balancer name, the container name (as it appears in a container - // definition), and the container port to access from the load balancer. When - // a task from this service is placed on a container instance, the container - // instance is registered with the load balancer specified here. + // For Classic Load Balancers, this object must contain the load balancer name, + // the container name (as it appears in a container definition), and the container + // port to access from the load balancer. When a task from this service is placed + // on a container instance, the container instance is registered with the load + // balancer specified here. // - // For Elastic Load Balancing Application load balancers, this object must contain - // the load balancer target group ARN, the container name (as it appears in - // a container definition), and the container port to access from the load balancer. - // When a task from this service is placed on a container instance, the container - // instance and port combination is registered as a target in the target group - // specified here. + // For Application Load Balancers and Network Load Balancers, this object must + // contain the load balancer target group ARN, the container name (as it appears + // in a container definition), and the container port to access from the load + // balancer. When a task from this service is placed on a container instance, + // the container instance and port combination is registered as a target in + // the target group specified here. LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"` // An array of placement constraint objects to use for tasks in your service. @@ -5127,7 +5140,7 @@ type DeregisterContainerInstanceInput struct { // of that task, on a different container instance if possible. // // Any containers in orphaned service tasks that are registered with a Classic - // load balancer or an Application load balancer target group are deregistered, + // Load Balancer or an Application Load Balancer target group are deregistered, // and they will begin connection draining according to the settings on the // load balancer or target group. Force *bool `locationName:"force" type:"boolean"` @@ -5826,6 +5839,54 @@ func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties { return s } +// The Linux capabilities for the container that are added to or dropped from +// the default configuration provided by Docker. For more information on the +// default capabilities and the non-default available capabilities, see Runtime +// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) +// in the Docker run reference. For more detailed information on these Linux +// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html) +// Linux manual page. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KernelCapabilities +type KernelCapabilities struct { + _ struct{} `type:"structure"` + + // The Linux capabilities for the container that have been added to the default + // configuration provided by Docker. This parameter maps to CapAdd in the Create + // a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/) + // and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/). + Add []*string `locationName:"add" type:"list"` + + // The Linux capabilities for the container that have been removed from the + // default configuration provided by Docker. This parameter maps to CapDrop + // in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/) + // and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/). + Drop []*string `locationName:"drop" type:"list"` +} + +// String returns the string representation +func (s KernelCapabilities) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s KernelCapabilities) GoString() string { + return s.String() +} + +// SetAdd sets the Add field's value. +func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities { + s.Add = v + return s +} + +// SetDrop sets the Drop field's value. +func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities { + s.Drop = v + return s +} + // A key and value pair object. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KeyValuePair type KeyValuePair struct { @@ -5862,6 +5923,32 @@ func (s *KeyValuePair) SetValue(v string) *KeyValuePair { return s } +// Linux-specific options that are applied to the container, such as Linux KernelCapabilities. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LinuxParameters +type LinuxParameters struct { + _ struct{} `type:"structure"` + + // The Linux capabilities for the container that are added to or dropped from + // the default configuration provided by Docker. + Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"` +} + +// String returns the string representation +func (s LinuxParameters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LinuxParameters) GoString() string { + return s.String() +} + +// SetCapabilities sets the Capabilities field's value. +func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters { + s.Capabilities = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributesRequest type ListAttributesInput struct { _ struct{} `type:"structure"` @@ -6687,7 +6774,7 @@ type LoadBalancer struct { // mapping. ContainerPort *int64 `locationName:"containerPort" type:"integer"` - // The name of a Classic load balancer. + // The name of a load balancer. LoadBalancerName *string `locationName:"loadBalancerName" type:"string"` // The full Amazon Resource Name (ARN) of the Elastic Load Balancing target diff --git a/vendor/github.com/aws/aws-sdk-go/service/glacier/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/glacier/customizations_test.go index 15b7a8ec..06ba110b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/glacier/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/glacier/customizations_test.go @@ -6,8 +6,6 @@ import ( "bytes" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/awstesting/unit" @@ -32,20 +30,30 @@ func TestCustomizations(t *testing.T) { Body: payloadBuf, }) err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no err, got %v", err) + } // Sets API version - assert.Equal(t, req.ClientInfo.APIVersion, req.HTTPRequest.Header.Get("x-amz-glacier-version")) + if e, a := req.ClientInfo.APIVersion, req.HTTPRequest.Header.Get("x-amz-glacier-version"); e != a { + t.Errorf("expect %v, got %v", e, a) + } // Sets Account ID v, _ := awsutil.ValuesAtPath(req.Params, "AccountId") - assert.Equal(t, "-", *(v[0].(*string))) + if e, a := "-", *(v[0].(*string)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // Computes checksums linear := "68aff0c5a91aa0491752bfb96e3fef33eb74953804f6a2f7b708d5bcefa8ff6b" tree := "154e26c78fd74d0c2c9b3cc4644191619dc4f2cd539ae2a74d5fd07957a3ee6a" - assert.Equal(t, linear, req.HTTPRequest.Header.Get("x-amz-content-sha256")) - assert.Equal(t, tree, req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash")) + if e, a := linear, req.HTTPRequest.Header.Get("x-amz-content-sha256"); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := tree, req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestShortcircuitTreehash(t *testing.T) { @@ -55,25 +63,37 @@ func TestShortcircuitTreehash(t *testing.T) { Checksum: aws.String("000"), }) err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no err, got %v", err) + } - assert.Equal(t, "000", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash")) + if e, a := "000", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestFillAccountIDWithNilStruct(t *testing.T) { req, _ := svc.ListVaultsRequest(nil) err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no err, got %v", err) + } empty := "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" // Sets Account ID v, _ := awsutil.ValuesAtPath(req.Params, "AccountId") - assert.Equal(t, "-", *(v[0].(*string))) + if e, a := "-", *(v[0].(*string)); e != a { + t.Errorf("expect %v, got %v", e, a) + } // Does not set tree hash - assert.Equal(t, empty, req.HTTPRequest.Header.Get("x-amz-content-sha256")) - assert.Equal(t, "", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash")) + if e, a := empty, req.HTTPRequest.Header.Get("x-amz-content-sha256"); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestHashOnce(t *testing.T) { @@ -84,7 +104,11 @@ func TestHashOnce(t *testing.T) { req.HTTPRequest.Header.Set("X-Amz-Sha256-Tree-Hash", "0") err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no err, got %v", err) + } - assert.Equal(t, "0", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash")) + if e, a := "0", req.HTTPRequest.Header.Get("x-amz-sha256-tree-hash"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/greengrass/api.go b/vendor/github.com/aws/aws-sdk-go/service/greengrass/api.go index 4ba48359..f1992a49 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/greengrass/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/greengrass/api.go @@ -68,7 +68,7 @@ func (c *Greengrass) AssociateRoleToGroupRequest(input *AssociateRoleToGroupInpu // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/AssociateRoleToGroup func (c *Greengrass) AssociateRoleToGroup(input *AssociateRoleToGroupInput) (*AssociateRoleToGroupOutput, error) { @@ -153,7 +153,7 @@ func (c *Greengrass) AssociateServiceRoleToAccountRequest(input *AssociateServic // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/AssociateServiceRoleToAccount func (c *Greengrass) AssociateServiceRoleToAccount(input *AssociateServiceRoleToAccountInput) (*AssociateServiceRoleToAccountOutput, error) { @@ -877,7 +877,7 @@ func (c *Greengrass) CreateGroupCertificateAuthorityRequest(input *CreateGroupCe // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/CreateGroupCertificateAuthority func (c *Greengrass) CreateGroupCertificateAuthority(input *CreateGroupCertificateAuthorityInput) (*CreateGroupCertificateAuthorityOutput, error) { @@ -1837,7 +1837,7 @@ func (c *Greengrass) DisassociateRoleFromGroupRequest(input *DisassociateRoleFro // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/DisassociateRoleFromGroup func (c *Greengrass) DisassociateRoleFromGroup(input *DisassociateRoleFromGroupInput) (*DisassociateRoleFromGroupOutput, error) { @@ -1917,7 +1917,7 @@ func (c *Greengrass) DisassociateServiceRoleFromAccountRequest(input *Disassocia // // Returned Error Codes: // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/DisassociateServiceRoleFromAccount func (c *Greengrass) DisassociateServiceRoleFromAccount(input *DisassociateServiceRoleFromAccountInput) (*DisassociateServiceRoleFromAccountOutput, error) { @@ -1999,7 +1999,7 @@ func (c *Greengrass) GetAssociatedRoleRequest(input *GetAssociatedRoleInput) (re // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GetAssociatedRole func (c *Greengrass) GetAssociatedRole(input *GetAssociatedRoleInput) (*GetAssociatedRoleOutput, error) { @@ -2081,7 +2081,7 @@ func (c *Greengrass) GetConnectivityInfoRequest(input *GetConnectivityInfoInput) // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GetConnectivityInfo func (c *Greengrass) GetConnectivityInfo(input *GetConnectivityInfoInput) (*GetConnectivityInfoOutput, error) { @@ -2797,7 +2797,7 @@ func (c *Greengrass) GetGroupCertificateAuthorityRequest(input *GetGroupCertific // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GetGroupCertificateAuthority func (c *Greengrass) GetGroupCertificateAuthority(input *GetGroupCertificateAuthorityInput) (*GetGroupCertificateAuthorityOutput, error) { @@ -2879,7 +2879,7 @@ func (c *Greengrass) GetGroupCertificateConfigurationRequest(input *GetGroupCert // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GetGroupCertificateConfiguration func (c *Greengrass) GetGroupCertificateConfiguration(input *GetGroupCertificateConfigurationInput) (*GetGroupCertificateConfigurationOutput, error) { @@ -3195,7 +3195,7 @@ func (c *Greengrass) GetServiceRoleForAccountRequest(input *GetServiceRoleForAcc // // Returned Error Codes: // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GetServiceRoleForAccount func (c *Greengrass) GetServiceRoleForAccount(input *GetServiceRoleForAccountInput) (*GetServiceRoleForAccountOutput, error) { @@ -3973,7 +3973,7 @@ func (c *Greengrass) ListGroupCertificateAuthoritiesRequest(input *ListGroupCert // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/ListGroupCertificateAuthorities func (c *Greengrass) ListGroupCertificateAuthorities(input *ListGroupCertificateAuthoritiesInput) (*ListGroupCertificateAuthoritiesOutput, error) { @@ -4456,6 +4456,85 @@ func (c *Greengrass) ListSubscriptionDefinitionsWithContext(ctx aws.Context, inp return out, req.Send() } +const opResetDeployments = "ResetDeployments" + +// ResetDeploymentsRequest generates a "aws/request.Request" representing the +// client's request for the ResetDeployments operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ResetDeployments for more information on using the ResetDeployments +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ResetDeploymentsRequest method. +// req, resp := client.ResetDeploymentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/ResetDeployments +func (c *Greengrass) ResetDeploymentsRequest(input *ResetDeploymentsInput) (req *request.Request, output *ResetDeploymentsOutput) { + op := &request.Operation{ + Name: opResetDeployments, + HTTPMethod: "POST", + HTTPPath: "/greengrass/groups/{GroupId}/deployments/$reset", + } + + if input == nil { + input = &ResetDeploymentsInput{} + } + + output = &ResetDeploymentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ResetDeployments API operation for AWS Greengrass. +// +// Resets a group's deployments. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Greengrass's +// API operation ResetDeployments for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// user error +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/ResetDeployments +func (c *Greengrass) ResetDeployments(input *ResetDeploymentsInput) (*ResetDeploymentsOutput, error) { + req, out := c.ResetDeploymentsRequest(input) + return out, req.Send() +} + +// ResetDeploymentsWithContext is the same as ResetDeployments with the addition of +// the ability to pass a context and additional request options. +// +// See ResetDeployments for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Greengrass) ResetDeploymentsWithContext(ctx aws.Context, input *ResetDeploymentsInput, opts ...request.Option) (*ResetDeploymentsOutput, error) { + req, out := c.ResetDeploymentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateConnectivityInfo = "UpdateConnectivityInfo" // UpdateConnectivityInfoRequest generates a "aws/request.Request" representing the @@ -4516,7 +4595,7 @@ func (c *Greengrass) UpdateConnectivityInfoRequest(input *UpdateConnectivityInfo // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/UpdateConnectivityInfo func (c *Greengrass) UpdateConnectivityInfo(input *UpdateConnectivityInfoInput) (*UpdateConnectivityInfoOutput, error) { @@ -4914,7 +4993,7 @@ func (c *Greengrass) UpdateGroupCertificateConfigurationRequest(input *UpdateGro // user error // // * ErrCodeInternalServerErrorException "InternalServerErrorException" -// This request was invalid. +// Server Error // // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/UpdateGroupCertificateConfiguration func (c *Greengrass) UpdateGroupCertificateConfiguration(input *UpdateGroupCertificateConfigurationInput) (*UpdateGroupCertificateConfigurationOutput, error) { @@ -5565,7 +5644,8 @@ type CreateDeploymentInput struct { // Id of the deployment if you wish to redeploy a previous deployment. DeploymentId *string `type:"string"` - // Type of deployment + // Type of deployment. When used in CreateDeployment, only NewDeployment and + // Redeployment are valid. DeploymentType *string `type:"string" enum:"DeploymentType"` // GroupId is a required field @@ -5632,10 +5712,10 @@ func (s *CreateDeploymentInput) SetGroupVersionId(v string) *CreateDeploymentInp type CreateDeploymentOutput struct { _ struct{} `type:"structure"` - // Arn of the deployment. + // The arn of the deployment. DeploymentArn *string `type:"string"` - // Id of the deployment. + // The id of the deployment. DeploymentId *string `type:"string"` } @@ -7222,6 +7302,9 @@ type Deployment struct { // Id of the deployment. DeploymentId *string `type:"string"` + // The type of deployment. + DeploymentType *string `type:"string" enum:"DeploymentType"` + // Arn of the group for this deployment. GroupArn *string `type:"string"` } @@ -7254,6 +7337,12 @@ func (s *Deployment) SetDeploymentId(v string) *Deployment { return s } +// SetDeploymentType sets the DeploymentType field's value. +func (s *Deployment) SetDeploymentType(v string) *Deployment { + s.DeploymentType = &v + return s +} + // SetGroupArn sets the GroupArn field's value. func (s *Deployment) SetGroupArn(v string) *Deployment { s.GroupArn = &v @@ -7748,7 +7837,7 @@ func (s *GetConnectivityInfoInput) SetThingName(v string) *GetConnectivityInfoIn type GetConnectivityInfoOutput struct { _ struct{} `type:"structure"` - // Connectivity info array + // Connectivity info list ConnectivityInfo []*ConnectivityInfo `type:"list"` Message *string `locationName:"message" type:"string"` @@ -8050,6 +8139,12 @@ type GetDeploymentStatusOutput struct { // Status of the deployment. DeploymentStatus *string `type:"string"` + // The type of the deployment. + DeploymentType *string `type:"string" enum:"DeploymentType"` + + // The error Details + ErrorDetails []*ErrorDetail `type:"list"` + // Error Message ErrorMessage *string `type:"string"` @@ -8073,6 +8168,18 @@ func (s *GetDeploymentStatusOutput) SetDeploymentStatus(v string) *GetDeployment return s } +// SetDeploymentType sets the DeploymentType field's value. +func (s *GetDeploymentStatusOutput) SetDeploymentType(v string) *GetDeploymentStatusOutput { + s.DeploymentType = &v + return s +} + +// SetErrorDetails sets the ErrorDetails field's value. +func (s *GetDeploymentStatusOutput) SetErrorDetails(v []*ErrorDetail) *GetDeploymentStatusOutput { + s.ErrorDetails = v + return s +} + // SetErrorMessage sets the ErrorMessage field's value. func (s *GetDeploymentStatusOutput) SetErrorMessage(v string) *GetDeploymentStatusOutput { s.ErrorMessage = &v @@ -9424,7 +9531,7 @@ func (s *GroupCertificateAuthorityProperties) SetGroupCertificateAuthorityId(v s return s } -// Information of a group +// Information on the group // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/GroupInformation type GroupInformation struct { _ struct{} `type:"structure"` @@ -9767,7 +9874,7 @@ func (s *ListDeploymentsInput) SetNextToken(v string) *ListDeploymentsInput { type ListDeploymentsOutput struct { _ struct{} `type:"structure"` - // Information on deployments + // List of deployments for the requested groups Deployments []*Deployment `type:"list"` // The token for the next set of results, or ''null'' if there are no additional @@ -10678,6 +10785,94 @@ func (s *LoggerDefinitionVersion) SetLoggers(v []*Logger) *LoggerDefinitionVersi return s } +// Information needed to perform a reset of a group's deployments. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/ResetDeploymentsRequest +type ResetDeploymentsInput struct { + _ struct{} `type:"structure"` + + AmznClientToken *string `location:"header" locationName:"X-Amzn-Client-Token" type:"string"` + + // When set to true, perform a best-effort only core reset. + Force *bool `type:"boolean"` + + // GroupId is a required field + GroupId *string `location:"uri" locationName:"GroupId" type:"string" required:"true"` +} + +// String returns the string representation +func (s ResetDeploymentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResetDeploymentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResetDeploymentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResetDeploymentsInput"} + if s.GroupId == nil { + invalidParams.Add(request.NewErrParamRequired("GroupId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAmznClientToken sets the AmznClientToken field's value. +func (s *ResetDeploymentsInput) SetAmznClientToken(v string) *ResetDeploymentsInput { + s.AmznClientToken = &v + return s +} + +// SetForce sets the Force field's value. +func (s *ResetDeploymentsInput) SetForce(v bool) *ResetDeploymentsInput { + s.Force = &v + return s +} + +// SetGroupId sets the GroupId field's value. +func (s *ResetDeploymentsInput) SetGroupId(v string) *ResetDeploymentsInput { + s.GroupId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/ResetDeploymentsResponse +type ResetDeploymentsOutput struct { + _ struct{} `type:"structure"` + + // The arn of the reset deployment. + DeploymentArn *string `type:"string"` + + // The id of the reset deployment. + DeploymentId *string `type:"string"` +} + +// String returns the string representation +func (s ResetDeploymentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResetDeploymentsOutput) GoString() string { + return s.String() +} + +// SetDeploymentArn sets the DeploymentArn field's value. +func (s *ResetDeploymentsOutput) SetDeploymentArn(v string) *ResetDeploymentsOutput { + s.DeploymentArn = &v + return s +} + +// SetDeploymentId sets the DeploymentId field's value. +func (s *ResetDeploymentsOutput) SetDeploymentId(v string) *ResetDeploymentsOutput { + s.DeploymentId = &v + return s +} + // Information on subscription // Please also see https://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/Subscription type Subscription struct { @@ -10760,7 +10955,7 @@ func (s *SubscriptionDefinitionVersion) SetSubscriptions(v []*Subscription) *Sub type UpdateConnectivityInfoInput struct { _ struct{} `type:"structure"` - // Connectivity info array + // Connectivity info list ConnectivityInfo []*ConnectivityInfo `type:"list"` // ThingName is a required field @@ -11337,6 +11532,12 @@ const ( // DeploymentTypeRedeployment is a DeploymentType enum value DeploymentTypeRedeployment = "Redeployment" + + // DeploymentTypeResetDeployment is a DeploymentType enum value + DeploymentTypeResetDeployment = "ResetDeployment" + + // DeploymentTypeForceResetDeployment is a DeploymentType enum value + DeploymentTypeForceResetDeployment = "ForceResetDeployment" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/greengrass/errors.go b/vendor/github.com/aws/aws-sdk-go/service/greengrass/errors.go index c4f0fc41..e9af6690 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/greengrass/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/greengrass/errors.go @@ -13,6 +13,6 @@ const ( // ErrCodeInternalServerErrorException for service response error code // "InternalServerErrorException". // - // This request was invalid. + // Server Error ErrCodeInternalServerErrorException = "InternalServerErrorException" ) diff --git a/vendor/github.com/aws/aws-sdk-go/service/greengrass/greengrassiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/greengrass/greengrassiface/interface.go index 2e66f296..c5ba2bdd 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/greengrass/greengrassiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/greengrass/greengrassiface/interface.go @@ -284,6 +284,10 @@ type GreengrassAPI interface { ListSubscriptionDefinitionsWithContext(aws.Context, *greengrass.ListSubscriptionDefinitionsInput, ...request.Option) (*greengrass.ListSubscriptionDefinitionsOutput, error) ListSubscriptionDefinitionsRequest(*greengrass.ListSubscriptionDefinitionsInput) (*request.Request, *greengrass.ListSubscriptionDefinitionsOutput) + ResetDeployments(*greengrass.ResetDeploymentsInput) (*greengrass.ResetDeploymentsOutput, error) + ResetDeploymentsWithContext(aws.Context, *greengrass.ResetDeploymentsInput, ...request.Option) (*greengrass.ResetDeploymentsOutput, error) + ResetDeploymentsRequest(*greengrass.ResetDeploymentsInput) (*request.Request, *greengrass.ResetDeploymentsOutput) + UpdateConnectivityInfo(*greengrass.UpdateConnectivityInfoInput) (*greengrass.UpdateConnectivityInfoOutput, error) UpdateConnectivityInfoWithContext(aws.Context, *greengrass.UpdateConnectivityInfoInput, ...request.Option) (*greengrass.UpdateConnectivityInfoOutput, error) UpdateConnectivityInfoRequest(*greengrass.UpdateConnectivityInfoInput) (*request.Request, *greengrass.UpdateConnectivityInfoOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/iotdataplane/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/iotdataplane/customizations_test.go index edc9ac44..64f6ce49 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/iotdataplane/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/iotdataplane/customizations_test.go @@ -4,8 +4,6 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/iotdataplane" @@ -19,9 +17,15 @@ func TestRequireEndpointIfRegionProvided(t *testing.T) { req, _ := svc.GetThingShadowRequest(nil) err := req.Build() - assert.Equal(t, "", svc.Endpoint) - assert.Error(t, err) - assert.Equal(t, aws.ErrMissingEndpoint, err) + if e, a := "", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err == nil { + t.Errorf("expect error, got none") + } + if e, a := aws.ErrMissingEndpoint, err; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestRequireEndpointIfNoRegionProvided(t *testing.T) { @@ -33,9 +37,15 @@ func TestRequireEndpointIfNoRegionProvided(t *testing.T) { req, _ := svc.GetThingShadowRequest(nil) err := req.Build() - assert.Equal(t, "", svc.Endpoint) - assert.Error(t, err) - assert.Equal(t, aws.ErrMissingEndpoint, err) + if e, a := "", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err == nil { + t.Errorf("expect error, got none") + } + if e, a := aws.ErrMissingEndpoint, err; e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestRequireEndpointUsed(t *testing.T) { @@ -47,6 +57,10 @@ func TestRequireEndpointUsed(t *testing.T) { req, _ := svc.GetThingShadowRequest(nil) err := req.Build() - assert.Equal(t, "https://endpoint", svc.Endpoint) - assert.NoError(t, err) + if e, a := "https://endpoint", svc.Endpoint; e != a { + t.Errorf("expect %v, got %v", e, a) + } + if err != nil { + t.Errorf("expect no error, got %v", err) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/api.go b/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/api.go index 71980c88..31903ea8 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/api.go @@ -209,6 +209,98 @@ func (c *KinesisAnalytics) AddApplicationInputWithContext(ctx aws.Context, input return out, req.Send() } +const opAddApplicationInputProcessingConfiguration = "AddApplicationInputProcessingConfiguration" + +// AddApplicationInputProcessingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the AddApplicationInputProcessingConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See AddApplicationInputProcessingConfiguration for more information on using the AddApplicationInputProcessingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the AddApplicationInputProcessingConfigurationRequest method. +// req, resp := client.AddApplicationInputProcessingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfiguration +func (c *KinesisAnalytics) AddApplicationInputProcessingConfigurationRequest(input *AddApplicationInputProcessingConfigurationInput) (req *request.Request, output *AddApplicationInputProcessingConfigurationOutput) { + op := &request.Operation{ + Name: opAddApplicationInputProcessingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddApplicationInputProcessingConfigurationInput{} + } + + output = &AddApplicationInputProcessingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddApplicationInputProcessingConfiguration API operation for Amazon Kinesis Analytics. +// +// Adds an InputProcessingConfiguration to an application. An input processor +// preprocesses records on the input stream before the application's SQL code +// executes. Currently, the only input processor available is AWS Lambda (https://aws.amazon.com/documentation/lambda/). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Kinesis Analytics's +// API operation AddApplicationInputProcessingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// Specified application can't be found. +// +// * ErrCodeResourceInUseException "ResourceInUseException" +// Application is not available for this operation. +// +// * ErrCodeInvalidArgumentException "InvalidArgumentException" +// Specified input parameter value is invalid. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfiguration +func (c *KinesisAnalytics) AddApplicationInputProcessingConfiguration(input *AddApplicationInputProcessingConfigurationInput) (*AddApplicationInputProcessingConfigurationOutput, error) { + req, out := c.AddApplicationInputProcessingConfigurationRequest(input) + return out, req.Send() +} + +// AddApplicationInputProcessingConfigurationWithContext is the same as AddApplicationInputProcessingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See AddApplicationInputProcessingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *KinesisAnalytics) AddApplicationInputProcessingConfigurationWithContext(ctx aws.Context, input *AddApplicationInputProcessingConfigurationInput, opts ...request.Option) (*AddApplicationInputProcessingConfigurationOutput, error) { + req, out := c.AddApplicationInputProcessingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAddApplicationOutput = "AddApplicationOutput" // AddApplicationOutputRequest generates a "aws/request.Request" representing the @@ -723,6 +815,96 @@ func (c *KinesisAnalytics) DeleteApplicationCloudWatchLoggingOptionWithContext(c return out, req.Send() } +const opDeleteApplicationInputProcessingConfiguration = "DeleteApplicationInputProcessingConfiguration" + +// DeleteApplicationInputProcessingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteApplicationInputProcessingConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteApplicationInputProcessingConfiguration for more information on using the DeleteApplicationInputProcessingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteApplicationInputProcessingConfigurationRequest method. +// req, resp := client.DeleteApplicationInputProcessingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfiguration +func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfigurationRequest(input *DeleteApplicationInputProcessingConfigurationInput) (req *request.Request, output *DeleteApplicationInputProcessingConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteApplicationInputProcessingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteApplicationInputProcessingConfigurationInput{} + } + + output = &DeleteApplicationInputProcessingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteApplicationInputProcessingConfiguration API operation for Amazon Kinesis Analytics. +// +// Deletes an InputProcessingConfiguration from an input. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Kinesis Analytics's +// API operation DeleteApplicationInputProcessingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// Specified application can't be found. +// +// * ErrCodeResourceInUseException "ResourceInUseException" +// Application is not available for this operation. +// +// * ErrCodeInvalidArgumentException "InvalidArgumentException" +// Specified input parameter value is invalid. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfiguration +func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfiguration(input *DeleteApplicationInputProcessingConfigurationInput) (*DeleteApplicationInputProcessingConfigurationOutput, error) { + req, out := c.DeleteApplicationInputProcessingConfigurationRequest(input) + return out, req.Send() +} + +// DeleteApplicationInputProcessingConfigurationWithContext is the same as DeleteApplicationInputProcessingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteApplicationInputProcessingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfigurationWithContext(ctx aws.Context, input *DeleteApplicationInputProcessingConfigurationInput, opts ...request.Option) (*DeleteApplicationInputProcessingConfigurationOutput, error) { + req, out := c.DeleteApplicationInputProcessingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteApplicationOutput = "DeleteApplicationOutput" // DeleteApplicationOutputRequest generates a "aws/request.Request" representing the @@ -1594,9 +1776,7 @@ type AddApplicationInputInput struct { // CurrentApplicationVersionId is a required field CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"` - // When you configure the application input, you specify the streaming source, - // the in-application stream name that is created, and the mapping between the - // two. For more information, see Configuring Application Input (http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html). + // The Input to add. // // Input is a required field Input *Input `type:"structure" required:"true"` @@ -1675,6 +1855,121 @@ func (s AddApplicationInputOutput) GoString() string { return s.String() } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfigurationRequest +type AddApplicationInputProcessingConfigurationInput struct { + _ struct{} `type:"structure"` + + // Name of the application to which you want to add the input processing configuration. + // + // ApplicationName is a required field + ApplicationName *string `min:"1" type:"string" required:"true"` + + // Version of the application to which you want to add the input processing + // configuration. You can use the DescribeApplication operation to get the current + // application version. If the version specified is not the current version, + // the ConcurrentModificationException is returned. + // + // CurrentApplicationVersionId is a required field + CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"` + + // The ID of the input configuration to which to add the input configuration. + // You can get a list of the input IDs for an application using the DescribeApplication + // operation. + // + // InputId is a required field + InputId *string `min:"1" type:"string" required:"true"` + + // The InputProcessingConfiguration to add to the application. + // + // InputProcessingConfiguration is a required field + InputProcessingConfiguration *InputProcessingConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation +func (s AddApplicationInputProcessingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddApplicationInputProcessingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddApplicationInputProcessingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddApplicationInputProcessingConfigurationInput"} + if s.ApplicationName == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationName")) + } + if s.ApplicationName != nil && len(*s.ApplicationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1)) + } + if s.CurrentApplicationVersionId == nil { + invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId")) + } + if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 { + invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1)) + } + if s.InputId == nil { + invalidParams.Add(request.NewErrParamRequired("InputId")) + } + if s.InputId != nil && len(*s.InputId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InputId", 1)) + } + if s.InputProcessingConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("InputProcessingConfiguration")) + } + if s.InputProcessingConfiguration != nil { + if err := s.InputProcessingConfiguration.Validate(); err != nil { + invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationName sets the ApplicationName field's value. +func (s *AddApplicationInputProcessingConfigurationInput) SetApplicationName(v string) *AddApplicationInputProcessingConfigurationInput { + s.ApplicationName = &v + return s +} + +// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value. +func (s *AddApplicationInputProcessingConfigurationInput) SetCurrentApplicationVersionId(v int64) *AddApplicationInputProcessingConfigurationInput { + s.CurrentApplicationVersionId = &v + return s +} + +// SetInputId sets the InputId field's value. +func (s *AddApplicationInputProcessingConfigurationInput) SetInputId(v string) *AddApplicationInputProcessingConfigurationInput { + s.InputId = &v + return s +} + +// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value. +func (s *AddApplicationInputProcessingConfigurationInput) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *AddApplicationInputProcessingConfigurationInput { + s.InputProcessingConfiguration = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfigurationResponse +type AddApplicationInputProcessingConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AddApplicationInputProcessingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddApplicationInputProcessingConfigurationOutput) GoString() string { + return s.String() +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationOutputRequest type AddApplicationOutputInput struct { _ struct{} `type:"structure"` @@ -2764,6 +3059,99 @@ func (s *DeleteApplicationInput) SetCreateTimestamp(v time.Time) *DeleteApplicat return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfigurationRequest +type DeleteApplicationInputProcessingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Kinesis Analytics application name. + // + // ApplicationName is a required field + ApplicationName *string `min:"1" type:"string" required:"true"` + + // The version ID of the Kinesis Analytics application. + // + // CurrentApplicationVersionId is a required field + CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"` + + // The ID of the input configuration from which to delete the input configuration. + // You can get a list of the input IDs for an application using the DescribeApplication + // operation. + // + // InputId is a required field + InputId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteApplicationInputProcessingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteApplicationInputProcessingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApplicationInputProcessingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInputProcessingConfigurationInput"} + if s.ApplicationName == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationName")) + } + if s.ApplicationName != nil && len(*s.ApplicationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1)) + } + if s.CurrentApplicationVersionId == nil { + invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId")) + } + if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 { + invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1)) + } + if s.InputId == nil { + invalidParams.Add(request.NewErrParamRequired("InputId")) + } + if s.InputId != nil && len(*s.InputId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InputId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationName sets the ApplicationName field's value. +func (s *DeleteApplicationInputProcessingConfigurationInput) SetApplicationName(v string) *DeleteApplicationInputProcessingConfigurationInput { + s.ApplicationName = &v + return s +} + +// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value. +func (s *DeleteApplicationInputProcessingConfigurationInput) SetCurrentApplicationVersionId(v int64) *DeleteApplicationInputProcessingConfigurationInput { + s.CurrentApplicationVersionId = &v + return s +} + +// SetInputId sets the InputId field's value. +func (s *DeleteApplicationInputProcessingConfigurationInput) SetInputId(v string) *DeleteApplicationInputProcessingConfigurationInput { + s.InputId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfigurationResponse +type DeleteApplicationInputProcessingConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteApplicationInputProcessingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteApplicationInputProcessingConfigurationOutput) GoString() string { + return s.String() +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationResponse type DeleteApplicationOutput struct { _ struct{} `type:"structure"` @@ -3073,22 +3461,22 @@ func (s *DestinationSchema) SetRecordFormatType(v string) *DestinationSchema { type DiscoverInputSchemaInput struct { _ struct{} `type:"structure"` + // The InputProcessingConfiguration to use to preprocess the records before + // discovering the schema of the records. + InputProcessingConfiguration *InputProcessingConfiguration `type:"structure"` + // Point at which you want Amazon Kinesis Analytics to start reading records // from the specified streaming source discovery purposes. - // - // InputStartingPositionConfiguration is a required field - InputStartingPositionConfiguration *InputStartingPositionConfiguration `type:"structure" required:"true"` + InputStartingPositionConfiguration *InputStartingPositionConfiguration `type:"structure"` // Amazon Resource Name (ARN) of the streaming source. - // - // ResourceARN is a required field - ResourceARN *string `min:"1" type:"string" required:"true"` + ResourceARN *string `min:"1" type:"string"` // ARN of the IAM role that Amazon Kinesis Analytics can assume to access the // stream on your behalf. - // - // RoleARN is a required field - RoleARN *string `min:"1" type:"string" required:"true"` + RoleARN *string `min:"1" type:"string"` + + S3Configuration *S3Configuration `type:"structure"` } // String returns the string representation @@ -3104,21 +3492,22 @@ func (s DiscoverInputSchemaInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *DiscoverInputSchemaInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DiscoverInputSchemaInput"} - if s.InputStartingPositionConfiguration == nil { - invalidParams.Add(request.NewErrParamRequired("InputStartingPositionConfiguration")) - } - if s.ResourceARN == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceARN")) - } if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1)) } - if s.RoleARN == nil { - invalidParams.Add(request.NewErrParamRequired("RoleARN")) - } if s.RoleARN != nil && len(*s.RoleARN) < 1 { invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1)) } + if s.InputProcessingConfiguration != nil { + if err := s.InputProcessingConfiguration.Validate(); err != nil { + invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.S3Configuration != nil { + if err := s.S3Configuration.Validate(); err != nil { + invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -3126,6 +3515,12 @@ func (s *DiscoverInputSchemaInput) Validate() error { return nil } +// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value. +func (s *DiscoverInputSchemaInput) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *DiscoverInputSchemaInput { + s.InputProcessingConfiguration = v + return s +} + // SetInputStartingPositionConfiguration sets the InputStartingPositionConfiguration field's value. func (s *DiscoverInputSchemaInput) SetInputStartingPositionConfiguration(v *InputStartingPositionConfiguration) *DiscoverInputSchemaInput { s.InputStartingPositionConfiguration = v @@ -3144,6 +3539,12 @@ func (s *DiscoverInputSchemaInput) SetRoleARN(v string) *DiscoverInputSchemaInpu return s } +// SetS3Configuration sets the S3Configuration field's value. +func (s *DiscoverInputSchemaInput) SetS3Configuration(v *S3Configuration) *DiscoverInputSchemaInput { + s.S3Configuration = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DiscoverInputSchemaResponse type DiscoverInputSchemaOutput struct { _ struct{} `type:"structure"` @@ -3157,6 +3558,10 @@ type DiscoverInputSchemaOutput struct { // record (a stream record can have more than one row). ParsedInputRecords [][]*string `type:"list"` + // Stream data that was modified by the processor specified in the InputProcessingConfiguration + // parameter. + ProcessedInputRecords []*string `type:"list"` + // Raw stream data that was sampled to infer the schema. RawInputRecords []*string `type:"list"` } @@ -3183,6 +3588,12 @@ func (s *DiscoverInputSchemaOutput) SetParsedInputRecords(v [][]*string) *Discov return s } +// SetProcessedInputRecords sets the ProcessedInputRecords field's value. +func (s *DiscoverInputSchemaOutput) SetProcessedInputRecords(v []*string) *DiscoverInputSchemaOutput { + s.ProcessedInputRecords = v + return s +} + // SetRawInputRecords sets the RawInputRecords field's value. func (s *DiscoverInputSchemaOutput) SetRawInputRecords(v []*string) *DiscoverInputSchemaOutput { s.RawInputRecords = v @@ -3203,6 +3614,12 @@ type Input struct { // (see Configuring Application Input (http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html). InputParallelism *InputParallelism `type:"structure"` + // The InputProcessingConfiguration for the Input. An input processor transforms + // records as they are received from the stream, before the application's SQL + // code executes. Currently, the only input processing configuration available + // is InputLambdaProcessor. + InputProcessingConfiguration *InputProcessingConfiguration `type:"structure"` + // Describes the format of the data in the streaming source, and how each data // element maps to corresponding columns in the in-application stream that is // being created. @@ -3263,6 +3680,11 @@ func (s *Input) Validate() error { invalidParams.AddNested("InputParallelism", err.(request.ErrInvalidParams)) } } + if s.InputProcessingConfiguration != nil { + if err := s.InputProcessingConfiguration.Validate(); err != nil { + invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams)) + } + } if s.InputSchema != nil { if err := s.InputSchema.Validate(); err != nil { invalidParams.AddNested("InputSchema", err.(request.ErrInvalidParams)) @@ -3291,6 +3713,12 @@ func (s *Input) SetInputParallelism(v *InputParallelism) *Input { return s } +// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value. +func (s *Input) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *Input { + s.InputProcessingConfiguration = v + return s +} + // SetInputSchema sets the InputSchema field's value. func (s *Input) SetInputSchema(v *SourceSchema) *Input { s.InputSchema = v @@ -3392,8 +3820,13 @@ type InputDescription struct { // to the streaming source). InputParallelism *InputParallelism `type:"structure"` + // The description of the preprocessor that executes on records in this input + // before the application's code is run. + InputProcessingConfigurationDescription *InputProcessingConfigurationDescription `type:"structure"` + // Describes the format of the data in the streaming source, and how each data - // element maps to corresponding columns created in the in-application stream. + // element maps to corresponding columns in the in-application stream that is + // being created. InputSchema *SourceSchema `type:"structure"` // Point at which the application is configured to read from the input stream. @@ -3442,6 +3875,12 @@ func (s *InputDescription) SetInputParallelism(v *InputParallelism) *InputDescri return s } +// SetInputProcessingConfigurationDescription sets the InputProcessingConfigurationDescription field's value. +func (s *InputDescription) SetInputProcessingConfigurationDescription(v *InputProcessingConfigurationDescription) *InputDescription { + s.InputProcessingConfigurationDescription = v + return s +} + // SetInputSchema sets the InputSchema field's value. func (s *InputDescription) SetInputSchema(v *SourceSchema) *InputDescription { s.InputSchema = v @@ -3472,6 +3911,158 @@ func (s *InputDescription) SetNamePrefix(v string) *InputDescription { return s } +// An object that contains the ARN of the AWS Lambda (https://aws.amazon.com/documentation/lambda/) +// function that is used to preprocess records in the stream, and the ARN of +// the IAM role used to access the AWS Lambda function. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputLambdaProcessor +type InputLambdaProcessor struct { + _ struct{} `type:"structure"` + + // The ARN of the AWS Lambda (https://aws.amazon.com/documentation/lambda/) + // function that operates on records in the stream. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` + + // The ARN of the IAM role used to access the AWS Lambda function. + // + // RoleARN is a required field + RoleARN *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s InputLambdaProcessor) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputLambdaProcessor) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InputLambdaProcessor) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InputLambdaProcessor"} + if s.ResourceARN == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1)) + } + if s.RoleARN == nil { + invalidParams.Add(request.NewErrParamRequired("RoleARN")) + } + if s.RoleARN != nil && len(*s.RoleARN) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceARN sets the ResourceARN field's value. +func (s *InputLambdaProcessor) SetResourceARN(v string) *InputLambdaProcessor { + s.ResourceARN = &v + return s +} + +// SetRoleARN sets the RoleARN field's value. +func (s *InputLambdaProcessor) SetRoleARN(v string) *InputLambdaProcessor { + s.RoleARN = &v + return s +} + +// An object that contains the ARN of the AWS Lambda (https://aws.amazon.com/documentation/lambda/) +// function that is used to preprocess records in the stream, and the ARN of +// the IAM role used to access the AWS Lambda expression. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputLambdaProcessorDescription +type InputLambdaProcessorDescription struct { + _ struct{} `type:"structure"` + + // The ARN of the AWS Lambda (https://aws.amazon.com/documentation/lambda/) + // function that is used to preprocess the records in the stream. + ResourceARN *string `min:"1" type:"string"` + + // The ARN of the IAM role used to access the AWS Lambda function. + RoleARN *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s InputLambdaProcessorDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputLambdaProcessorDescription) GoString() string { + return s.String() +} + +// SetResourceARN sets the ResourceARN field's value. +func (s *InputLambdaProcessorDescription) SetResourceARN(v string) *InputLambdaProcessorDescription { + s.ResourceARN = &v + return s +} + +// SetRoleARN sets the RoleARN field's value. +func (s *InputLambdaProcessorDescription) SetRoleARN(v string) *InputLambdaProcessorDescription { + s.RoleARN = &v + return s +} + +// Represents an update to the InputLambdaProcessor that is used to preprocess +// the records in the stream. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputLambdaProcessorUpdate +type InputLambdaProcessorUpdate struct { + _ struct{} `type:"structure"` + + // The ARN of the new AWS Lambda (https://aws.amazon.com/documentation/lambda/) + // function that is used to preprocess the records in the stream. + ResourceARNUpdate *string `min:"1" type:"string"` + + // The ARN of the new IAM role used to access the AWS Lambda function. + RoleARNUpdate *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s InputLambdaProcessorUpdate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputLambdaProcessorUpdate) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InputLambdaProcessorUpdate) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InputLambdaProcessorUpdate"} + if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1)) + } + if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceARNUpdate sets the ResourceARNUpdate field's value. +func (s *InputLambdaProcessorUpdate) SetResourceARNUpdate(v string) *InputLambdaProcessorUpdate { + s.ResourceARNUpdate = &v + return s +} + +// SetRoleARNUpdate sets the RoleARNUpdate field's value. +func (s *InputLambdaProcessorUpdate) SetRoleARNUpdate(v string) *InputLambdaProcessorUpdate { + s.RoleARNUpdate = &v + return s +} + // Describes the number of in-application streams to create for a given streaming // source. For information about parallelism, see Configuring Application Input // (http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html). @@ -3551,6 +4142,125 @@ func (s *InputParallelismUpdate) SetCountUpdate(v int64) *InputParallelismUpdate return s } +// Provides a description of a processor that is used to preprocess the records +// in the stream prior to being processed by your application code. Currently, +// the only input processor available is AWS Lambda (https://aws.amazon.com/documentation/lambda/). +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputProcessingConfiguration +type InputProcessingConfiguration struct { + _ struct{} `type:"structure"` + + // The InputLambdaProcessor that is used to preprocess the records in the stream + // prior to being processed by your application code. + // + // InputLambdaProcessor is a required field + InputLambdaProcessor *InputLambdaProcessor `type:"structure" required:"true"` +} + +// String returns the string representation +func (s InputProcessingConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputProcessingConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InputProcessingConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InputProcessingConfiguration"} + if s.InputLambdaProcessor == nil { + invalidParams.Add(request.NewErrParamRequired("InputLambdaProcessor")) + } + if s.InputLambdaProcessor != nil { + if err := s.InputLambdaProcessor.Validate(); err != nil { + invalidParams.AddNested("InputLambdaProcessor", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInputLambdaProcessor sets the InputLambdaProcessor field's value. +func (s *InputProcessingConfiguration) SetInputLambdaProcessor(v *InputLambdaProcessor) *InputProcessingConfiguration { + s.InputLambdaProcessor = v + return s +} + +// Provides configuration information about an input processor. Currently, the +// only input processor available is AWS Lambda (https://aws.amazon.com/documentation/lambda/). +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputProcessingConfigurationDescription +type InputProcessingConfigurationDescription struct { + _ struct{} `type:"structure"` + + // Provides configuration information about the associated InputLambdaProcessorDescription. + InputLambdaProcessorDescription *InputLambdaProcessorDescription `type:"structure"` +} + +// String returns the string representation +func (s InputProcessingConfigurationDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputProcessingConfigurationDescription) GoString() string { + return s.String() +} + +// SetInputLambdaProcessorDescription sets the InputLambdaProcessorDescription field's value. +func (s *InputProcessingConfigurationDescription) SetInputLambdaProcessorDescription(v *InputLambdaProcessorDescription) *InputProcessingConfigurationDescription { + s.InputLambdaProcessorDescription = v + return s +} + +// Describes updates to an InputProcessingConfiguration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputProcessingConfigurationUpdate +type InputProcessingConfigurationUpdate struct { + _ struct{} `type:"structure"` + + // Provides update information for an InputLambdaProcessor. + // + // InputLambdaProcessorUpdate is a required field + InputLambdaProcessorUpdate *InputLambdaProcessorUpdate `type:"structure" required:"true"` +} + +// String returns the string representation +func (s InputProcessingConfigurationUpdate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InputProcessingConfigurationUpdate) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InputProcessingConfigurationUpdate) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InputProcessingConfigurationUpdate"} + if s.InputLambdaProcessorUpdate == nil { + invalidParams.Add(request.NewErrParamRequired("InputLambdaProcessorUpdate")) + } + if s.InputLambdaProcessorUpdate != nil { + if err := s.InputLambdaProcessorUpdate.Validate(); err != nil { + invalidParams.AddNested("InputLambdaProcessorUpdate", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInputLambdaProcessorUpdate sets the InputLambdaProcessorUpdate field's value. +func (s *InputProcessingConfigurationUpdate) SetInputLambdaProcessorUpdate(v *InputLambdaProcessorUpdate) *InputProcessingConfigurationUpdate { + s.InputLambdaProcessorUpdate = v + return s +} + // Describes updates for the application's input schema. // Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/InputSchemaUpdate type InputSchemaUpdate struct { @@ -3675,6 +4385,9 @@ type InputUpdate struct { // Kinesis Analytics creates for the specific streaming source). InputParallelismUpdate *InputParallelismUpdate `type:"structure"` + // Describes updates for an input processing configuration. + InputProcessingConfigurationUpdate *InputProcessingConfigurationUpdate `type:"structure"` + // Describes the data format on the streaming source, and how record elements // on the streaming source map to columns of the in-application stream that // is created. @@ -3721,6 +4434,11 @@ func (s *InputUpdate) Validate() error { invalidParams.AddNested("InputParallelismUpdate", err.(request.ErrInvalidParams)) } } + if s.InputProcessingConfigurationUpdate != nil { + if err := s.InputProcessingConfigurationUpdate.Validate(); err != nil { + invalidParams.AddNested("InputProcessingConfigurationUpdate", err.(request.ErrInvalidParams)) + } + } if s.InputSchemaUpdate != nil { if err := s.InputSchemaUpdate.Validate(); err != nil { invalidParams.AddNested("InputSchemaUpdate", err.(request.ErrInvalidParams)) @@ -3755,6 +4473,12 @@ func (s *InputUpdate) SetInputParallelismUpdate(v *InputParallelismUpdate) *Inpu return s } +// SetInputProcessingConfigurationUpdate sets the InputProcessingConfigurationUpdate field's value. +func (s *InputUpdate) SetInputProcessingConfigurationUpdate(v *InputProcessingConfigurationUpdate) *InputUpdate { + s.InputProcessingConfigurationUpdate = v + return s +} + // SetInputSchemaUpdate sets the InputSchemaUpdate field's value. func (s *InputUpdate) SetInputSchemaUpdate(v *InputSchemaUpdate) *InputUpdate { s.InputSchemaUpdate = v @@ -3788,7 +4512,7 @@ type JSONMappingParameters struct { // Path to the top-level parent that contains the records. // // RecordRowPath is a required field - RecordRowPath *string `type:"string" required:"true"` + RecordRowPath *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -3807,6 +4531,9 @@ func (s *JSONMappingParameters) Validate() error { if s.RecordRowPath == nil { invalidParams.Add(request.NewErrParamRequired("RecordRowPath")) } + if s.RecordRowPath != nil && len(*s.RecordRowPath) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RecordRowPath", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -4857,7 +5584,7 @@ type RecordColumn struct { // Type of column created in the in-application input stream or reference table. // // SqlType is a required field - SqlType *string `type:"string" required:"true"` + SqlType *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -4879,6 +5606,9 @@ func (s *RecordColumn) Validate() error { if s.SqlType == nil { invalidParams.Add(request.NewErrParamRequired("SqlType")) } + if s.SqlType != nil && len(*s.SqlType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SqlType", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -5204,6 +5934,76 @@ func (s *ReferenceDataSourceUpdate) SetTableNameUpdate(v string) *ReferenceDataS return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/S3Configuration +type S3Configuration struct { + _ struct{} `type:"structure"` + + // BucketARN is a required field + BucketARN *string `min:"1" type:"string" required:"true"` + + // FileKey is a required field + FileKey *string `min:"1" type:"string" required:"true"` + + // RoleARN is a required field + RoleARN *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s S3Configuration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s S3Configuration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Configuration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3Configuration"} + if s.BucketARN == nil { + invalidParams.Add(request.NewErrParamRequired("BucketARN")) + } + if s.BucketARN != nil && len(*s.BucketARN) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1)) + } + if s.FileKey == nil { + invalidParams.Add(request.NewErrParamRequired("FileKey")) + } + if s.FileKey != nil && len(*s.FileKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FileKey", 1)) + } + if s.RoleARN == nil { + invalidParams.Add(request.NewErrParamRequired("RoleARN")) + } + if s.RoleARN != nil && len(*s.RoleARN) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucketARN sets the BucketARN field's value. +func (s *S3Configuration) SetBucketARN(v string) *S3Configuration { + s.BucketARN = &v + return s +} + +// SetFileKey sets the FileKey field's value. +func (s *S3Configuration) SetFileKey(v string) *S3Configuration { + s.FileKey = &v + return s +} + +// SetRoleARN sets the RoleARN field's value. +func (s *S3Configuration) SetRoleARN(v string) *S3Configuration { + s.RoleARN = &v + return s +} + // Identifies the S3 bucket and object that contains the reference data. Also // identifies the IAM role Amazon Kinesis Analytics can assume to read this // object on your behalf. @@ -5223,7 +6023,7 @@ type S3ReferenceDataSource struct { // Object key name containing reference data. // // FileKey is a required field - FileKey *string `type:"string" required:"true"` + FileKey *string `min:"1" type:"string" required:"true"` // ARN of the IAM role that the service can assume to read data on your behalf. // This role must have permission for the s3:GetObject action on the object @@ -5256,6 +6056,9 @@ func (s *S3ReferenceDataSource) Validate() error { if s.FileKey == nil { invalidParams.Add(request.NewErrParamRequired("FileKey")) } + if s.FileKey != nil && len(*s.FileKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FileKey", 1)) + } if s.ReferenceRoleARN == nil { invalidParams.Add(request.NewErrParamRequired("ReferenceRoleARN")) } @@ -5300,7 +6103,7 @@ type S3ReferenceDataSourceDescription struct { // Amazon S3 object key name. // // FileKey is a required field - FileKey *string `type:"string" required:"true"` + FileKey *string `min:"1" type:"string" required:"true"` // ARN of the IAM role that Amazon Kinesis Analytics can assume to read the // Amazon S3 object on your behalf to populate the in-application reference @@ -5349,7 +6152,7 @@ type S3ReferenceDataSourceUpdate struct { BucketARNUpdate *string `min:"1" type:"string"` // Object key name. - FileKeyUpdate *string `type:"string"` + FileKeyUpdate *string `min:"1" type:"string"` // ARN of the IAM role that Amazon Kinesis Analytics can assume to read the // Amazon S3 object and populate the in-application. @@ -5372,6 +6175,9 @@ func (s *S3ReferenceDataSourceUpdate) Validate() error { if s.BucketARNUpdate != nil && len(*s.BucketARNUpdate) < 1 { invalidParams.Add(request.NewErrParamMinLen("BucketARNUpdate", 1)) } + if s.FileKeyUpdate != nil && len(*s.FileKeyUpdate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FileKeyUpdate", 1)) + } if s.ReferenceRoleARNUpdate != nil && len(*s.ReferenceRoleARNUpdate) < 1 { invalidParams.Add(request.NewErrParamMinLen("ReferenceRoleARNUpdate", 1)) } diff --git a/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/kinesisanalyticsiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/kinesisanalyticsiface/interface.go index 5db74f32..a6c7c96b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/kinesisanalyticsiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kinesisanalytics/kinesisanalyticsiface/interface.go @@ -68,6 +68,10 @@ type KinesisAnalyticsAPI interface { AddApplicationInputWithContext(aws.Context, *kinesisanalytics.AddApplicationInputInput, ...request.Option) (*kinesisanalytics.AddApplicationInputOutput, error) AddApplicationInputRequest(*kinesisanalytics.AddApplicationInputInput) (*request.Request, *kinesisanalytics.AddApplicationInputOutput) + AddApplicationInputProcessingConfiguration(*kinesisanalytics.AddApplicationInputProcessingConfigurationInput) (*kinesisanalytics.AddApplicationInputProcessingConfigurationOutput, error) + AddApplicationInputProcessingConfigurationWithContext(aws.Context, *kinesisanalytics.AddApplicationInputProcessingConfigurationInput, ...request.Option) (*kinesisanalytics.AddApplicationInputProcessingConfigurationOutput, error) + AddApplicationInputProcessingConfigurationRequest(*kinesisanalytics.AddApplicationInputProcessingConfigurationInput) (*request.Request, *kinesisanalytics.AddApplicationInputProcessingConfigurationOutput) + AddApplicationOutput(*kinesisanalytics.AddApplicationOutputInput) (*kinesisanalytics.AddApplicationOutputOutput, error) AddApplicationOutputWithContext(aws.Context, *kinesisanalytics.AddApplicationOutputInput, ...request.Option) (*kinesisanalytics.AddApplicationOutputOutput, error) AddApplicationOutputRequest(*kinesisanalytics.AddApplicationOutputInput) (*request.Request, *kinesisanalytics.AddApplicationOutputOutput) @@ -88,6 +92,10 @@ type KinesisAnalyticsAPI interface { DeleteApplicationCloudWatchLoggingOptionWithContext(aws.Context, *kinesisanalytics.DeleteApplicationCloudWatchLoggingOptionInput, ...request.Option) (*kinesisanalytics.DeleteApplicationCloudWatchLoggingOptionOutput, error) DeleteApplicationCloudWatchLoggingOptionRequest(*kinesisanalytics.DeleteApplicationCloudWatchLoggingOptionInput) (*request.Request, *kinesisanalytics.DeleteApplicationCloudWatchLoggingOptionOutput) + DeleteApplicationInputProcessingConfiguration(*kinesisanalytics.DeleteApplicationInputProcessingConfigurationInput) (*kinesisanalytics.DeleteApplicationInputProcessingConfigurationOutput, error) + DeleteApplicationInputProcessingConfigurationWithContext(aws.Context, *kinesisanalytics.DeleteApplicationInputProcessingConfigurationInput, ...request.Option) (*kinesisanalytics.DeleteApplicationInputProcessingConfigurationOutput, error) + DeleteApplicationInputProcessingConfigurationRequest(*kinesisanalytics.DeleteApplicationInputProcessingConfigurationInput) (*request.Request, *kinesisanalytics.DeleteApplicationInputProcessingConfigurationOutput) + DeleteApplicationOutput(*kinesisanalytics.DeleteApplicationOutputInput) (*kinesisanalytics.DeleteApplicationOutputOutput, error) DeleteApplicationOutputWithContext(aws.Context, *kinesisanalytics.DeleteApplicationOutputInput, ...request.Option) (*kinesisanalytics.DeleteApplicationOutputOutput, error) DeleteApplicationOutputRequest(*kinesisanalytics.DeleteApplicationOutputInput) (*request.Request, *kinesisanalytics.DeleteApplicationOutputOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/api.go index 864a3ee0..4790f854 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/api.go @@ -59,8 +59,12 @@ func (c *LexRuntimeService) PostContentRequest(input *PostContentInput) (req *re // PostContent API operation for Amazon Lex Runtime Service. // // Sends user input (text or speech) to Amazon Lex. Clients use this API to -// send requests to Amazon Lex at runtime. Amazon Lex interprets the user input -// using the machine learning model that it built for the bot. +// send text and audio requests to Amazon Lex at runtime. Amazon Lex interprets +// the user input using the machine learning model that it built for the bot. +// +// The PostContent operation supports audio input at 8kHz and 16kHz. You can +// use 8kHz audio to achieve higher speech recognition accuracy in telephone +// audio applications. // // In response, Amazon Lex returns the next message to convey to the user. Consider // the following example messages: @@ -124,7 +128,7 @@ func (c *LexRuntimeService) PostContentRequest(input *PostContentInput) (req *re // // * ErrCodeBadRequestException "BadRequestException" // Request validation failed, there is no usable message in the context, or -// the bot build failed. +// the bot build failed, is still in progress, or contains unbuilt changes. // // * ErrCodeLimitExceededException "LimitExceededException" // Exceeded a limit. @@ -145,17 +149,23 @@ func (c *LexRuntimeService) PostContentRequest(input *PostContentInput) (req *re // The input speech is too long. // // * ErrCodeDependencyFailedException "DependencyFailedException" -// One of the downstream dependencies, such as AWS Lambda or Amazon Polly, threw -// an exception. For example, if Amazon Lex does not have sufficient permissions -// to call a Lambda function, it results in Lambda throwing an exception. +// One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. +// For example, +// +// * If Amazon Lex does not have sufficient permissions to call a Lambda +// function. +// +// * If a Lambda function takes longer than 30 seconds to execute. +// +// * If a fulfillment Lambda function returns a Delegate dialog action without +// removing any slot values. // // * ErrCodeBadGatewayException "BadGatewayException" // Either the Amazon Lex bot is still building, or one of the dependent services // (Amazon Polly, AWS Lambda) failed with an internal service error. // // * ErrCodeLoopDetectedException "LoopDetectedException" -// Lambda fulfilment function returned DelegateDialogAction to Amazon Lex without -// changing any slot values. +// This exception is not used. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/runtime.lex-2016-11-28/PostContent func (c *LexRuntimeService) PostContent(input *PostContentInput) (*PostContentOutput, error) { @@ -287,7 +297,7 @@ func (c *LexRuntimeService) PostTextRequest(input *PostTextInput) (req *request. // // * ErrCodeBadRequestException "BadRequestException" // Request validation failed, there is no usable message in the context, or -// the bot build failed. +// the bot build failed, is still in progress, or contains unbuilt changes. // // * ErrCodeLimitExceededException "LimitExceededException" // Exceeded a limit. @@ -299,17 +309,23 @@ func (c *LexRuntimeService) PostTextRequest(input *PostTextInput) (req *request. // Two clients are using the same AWS account, Amazon Lex bot, and user ID. // // * ErrCodeDependencyFailedException "DependencyFailedException" -// One of the downstream dependencies, such as AWS Lambda or Amazon Polly, threw -// an exception. For example, if Amazon Lex does not have sufficient permissions -// to call a Lambda function, it results in Lambda throwing an exception. +// One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. +// For example, +// +// * If Amazon Lex does not have sufficient permissions to call a Lambda +// function. +// +// * If a Lambda function takes longer than 30 seconds to execute. +// +// * If a fulfillment Lambda function returns a Delegate dialog action without +// removing any slot values. // // * ErrCodeBadGatewayException "BadGatewayException" // Either the Amazon Lex bot is still building, or one of the dependent services // (Amazon Polly, AWS Lambda) failed with an internal service error. // // * ErrCodeLoopDetectedException "LoopDetectedException" -// Lambda fulfilment function returned DelegateDialogAction to Amazon Lex without -// changing any slot values. +// This exception is not used. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/runtime.lex-2016-11-28/PostText func (c *LexRuntimeService) PostText(input *PostTextInput) (*PostTextOutput, error) { @@ -476,20 +492,23 @@ type PostContentInput struct { // BotName is a required field BotName *string `location:"uri" locationName:"botName" type:"string" required:"true"` - // You pass this values as the Content-Type HTTP header. + // You pass this value as the Content-Type HTTP header. // // Indicates the audio format or text. The header value must start with one // of the following prefixes: // - // * PCM format + // * PCM format, audio data must be in little-endian byte order. // // audio/l16; rate=16000; channels=1 // // audio/x-l16; sample-rate=16000; channel-count=1 // + // audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false + // + // // * Opus format // - // audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=1; frame-size-milliseconds=1.1 + // audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=256000; frame-size-milliseconds=4 // // * Text format // @@ -501,70 +520,59 @@ type PostContentInput struct { // User input in PCM or Opus audio format or text format as described in the // Content-Type HTTP header. // + // You can stream audio data to Amazon Lex or you can create a local buffer + // that captures all of the audio data before sending. In general, you get better + // performance if you stream audio data rather than buffering the data locally. + // // InputStream is a required field InputStream io.ReadSeeker `locationName:"inputStream" type:"blob" required:"true"` - // You pass this value in the x-amz-lex-session-attributes HTTP header. The - // value must be map (keys and values must be strings) that is JSON serialized - // and then base64 encoded. + // You pass this value as the x-amz-lex-request-attributes HTTP header. // - // A session represents dialog between a user and Amazon Lex. At runtime, a - // client application can pass contextual information, in the request to Amazon - // Lex. For example, + // Request-specific information passed between Amazon Lex and a client application. + // The value must be a JSON serialized and base64 encoded map with string keys + // and values. The total size of the requestAttributes and sessionAttributes + // headers is limited to 12 KB. // - // * You might use session attributes to track the requestID of user requests. + // The namespace x-amz-lex: is reserved for special attributes. Don't create + // any request attributes with the prefix x-amz-lex:. // - // * In Getting Started Exercise 1, the example bot uses the price session - // attribute to maintain the price of flowers ordered (for example, "price":25). - // The code hook (Lambda function) sets this attribute based on the type - // of flowers ordered. For more information, see Review the Details of Information - // Flow (http://docs.aws.amazon.com/lex/latest/dg/gs-bp-details-after-lambda.html). + // For more information, see Setting Request Attributes (http://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs). + RequestAttributes aws.JSONValue `location:"header" locationName:"x-amz-lex-request-attributes" type:"jsonvalue"` + + // You pass this value as the x-amz-lex-session-attributes HTTP header. // + // Application-specific information passed between Amazon Lex and a client application. + // The value must be a JSON serialized and base64 encoded map with string keys + // and values. The total size of the sessionAttributes and requestAttributes + // headers is limited to 12 KB. // - // * In the BookTrip bot exercise, the bot uses the currentReservation session - // attribute to maintains the slot data during the in-progress conversation - // to book a hotel or book a car. For more information, see Details of Information - // Flow (http://docs.aws.amazon.com/lex/latest/dg/book-trip-detail-flow.html). - // - // - // Amazon Lex passes these session attributes to the Lambda functions configured - // for the intent In the your Lambda function, you can use the session attributes - // for initialization and customization (prompts). Some examples are: - // - // * Initialization - In a pizza ordering bot, if you pass user location - // (for example, "Location : 111 Maple Street"), then your Lambda function - // might use this information to determine the closest pizzeria to place - // the order (and perhaps set the storeAddress slot value as well). - // - // Personalized prompts - For example, you can configure prompts to refer to - // the user by name (for example, "Hey [firstName], what toppings would you - // like?"). You can pass the user's name as a session attribute ("firstName": - // "Joe") so that Amazon Lex can substitute the placeholder to provide a - // personalized prompt to the user ("Hey Joe, what toppings would you like?"). - // - // - // Amazon Lex does not persist session attributes. - // - // If you configured a code hook for the intent, Amazon Lex passes the incoming - // session attributes to the Lambda function. The Lambda function must return - // these session attributes if you want Amazon Lex to return them to the client. - // - // If there is no code hook configured for the intent Amazon Lex simply returns - // the session attributes to the client application. + // For more information, see Setting Session Attributes (http://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs). SessionAttributes aws.JSONValue `location:"header" locationName:"x-amz-lex-session-attributes" type:"jsonvalue"` - // ID of the client application user. Typically, each of your application users - // should have a unique ID. The application developer decides the user IDs. - // At runtime, each request must include the user ID. Note the following considerations: + // The ID of the client application user. Amazon Lex uses this to identify a + // user's conversation with your bot. At runtime, each request must contain + // the userID field. // - // * If you want a user to start conversation on one device and continue - // the conversation on another device, you might choose a user-specific identifier, - // such as the user's login, or Amazon Cognito user ID (assuming your application - // is using Amazon Cognito). + // To decide the user ID to use for your application, consider the following + // factors. // - // * If you want the same user to be able to have two independent conversations - // on two different devices, you might choose device-specific identifier, - // such as device ID, or some globally unique identifier. + // * The userID field must not contain any personally identifiable information + // of the user, for example, name, personal identification numbers, or other + // end user personal information. + // + // * If you want a user to start a conversation on one device and continue + // on another device, use a user-specific identifier. + // + // * If you want the same user to be able to have two independent conversations + // on two different devices, choose a device-specific identifier. + // + // * A user can't have two independent conversations with two different versions + // of the same bot. For example, a user can't have a conversation with the + // PROD and BETA versions of the same bot. If you anticipate that a user + // will need to have conversation with two different versions, for example, + // while testing, include the bot alias in the user ID to separate the two + // conversations. // // UserId is a required field UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"` @@ -638,6 +646,12 @@ func (s *PostContentInput) SetInputStream(v io.ReadSeeker) *PostContentInput { return s } +// SetRequestAttributes sets the RequestAttributes field's value. +func (s *PostContentInput) SetRequestAttributes(v aws.JSONValue) *PostContentInput { + s.RequestAttributes = v + return s +} + // SetSessionAttributes sets the SessionAttributes field's value. func (s *PostContentInput) SetSessionAttributes(v aws.JSONValue) *PostContentInput { s.SessionAttributes = v @@ -670,14 +684,14 @@ type PostContentOutput struct { // one of the following values as dialogState. The client can optionally use // this information to customize the user interface. // - // * ElicitIntent – Amazon Lex wants to elicit the user's intent. Consider + // * ElicitIntent - Amazon Lex wants to elicit the user's intent. Consider // the following examples: // // For example, a user might utter an intent ("I want to order a pizza"). If // Amazon Lex cannot infer the user intent from this utterance, it will return // this dialog state. // - // * ConfirmIntent – Amazon Lex is expecting a "yes" or "no" response. + // * ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response. // // For example, Amazon Lex wants user confirmation before fulfilling an intent. // Instead of a simple "yes" or "no" response, a user might respond with @@ -686,7 +700,7 @@ type PostContentOutput struct { // information (in these examples, update the crust type slot or change the // intent from OrderPizza to OrderDrink). // - // * ElicitSlot – Amazon Lex is expecting the value of a slot for the current + // * ElicitSlot - Amazon Lex is expecting the value of a slot for the current // intent. // // For example, suppose that in the response Amazon Lex sends this message: @@ -695,13 +709,13 @@ type PostContentOutput struct { // the response (e.g., "medium thick crust pizza"). Amazon Lex can process // such additional information appropriately. // - // * Fulfilled – Conveys that the Lambda function has successfully fulfilled + // * Fulfilled - Conveys that the Lambda function has successfully fulfilled // the intent. // - // * ReadyForFulfillment – Conveys that the client has to fullfill the request. + // * ReadyForFulfillment - Conveys that the client has to fulfill the request. // // - // * Failed – Conveys that the conversation with the user failed. + // * Failed - Conveys that the conversation with the user failed. // // This can happen for various reasons, including that the user does not provide // an appropriate response to prompts from the service (you can configure @@ -709,7 +723,12 @@ type PostContentOutput struct { // or if the Lambda function fails to fulfill the intent. DialogState *string `location:"header" locationName:"x-amz-lex-dialog-state" type:"string" enum:"DialogState"` - // Transcript of the voice input to the operation. + // The text used to process the request. + // + // If the input was an audio stream, the inputTranscript field contains the + // text extracted from the audio stream. This is the text that is actually processed + // to recognize intents and slot values. You can use this information to determine + // if Amazon Lex is correctly processing the audio that you send. InputTranscript *string `location:"header" locationName:"x-amz-lex-input-transcript" type:"string"` // Current user intent that Amazon Lex is aware of. @@ -738,6 +757,15 @@ type PostContentOutput struct { // Map of zero or more intent slots (name/value pairs) Amazon Lex detected from // the user input during the conversation. + // + // Amazon Lex creates a resolution list containing likely values for a slot. + // The value that it returns is determined by the valueSelectionStrategy selected + // when the slot type was created or updated. If valueSelectionStrategy is set + // to ORIGINAL_VALUE, the value provided by the user is returned, if the user + // value is similar to the slot values. If valueSelectionStrategy is set to + // TOP_RESOLUTION Amazon Lex returns the first value in the resolution list + // or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, + // the default is ORIGINAL_VALUE. Slots aws.JSONValue `location:"header" locationName:"x-amz-lex-slots" type:"jsonvalue"` } @@ -824,68 +852,42 @@ type PostTextInput struct { // InputText is a required field InputText *string `locationName:"inputText" min:"1" type:"string" required:"true"` - // By using session attributes, a client application can pass contextual information - // in the request to Amazon Lex For example, + // Request-specific information passed between Amazon Lex and a client application. // - // * In Getting Started Exercise 1, the example bot uses the price session - // attribute to maintain the price of the flowers ordered (for example, "Price":25). - // The code hook (the Lambda function) sets this attribute based on the type - // of flowers ordered. For more information, see Review the Details of Information - // Flow (http://docs.aws.amazon.com/lex/latest/dg/gs-bp-details-after-lambda.html). + // The namespace x-amz-lex: is reserved for special attributes. Don't create + // any request attributes with the prefix x-amz-lex:. // + // For more information, see Setting Request Attributes (http://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs). + RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` + + // Application-specific information passed between Amazon Lex and a client application. // - // * In the BookTrip bot exercise, the bot uses the currentReservation session - // attribute to maintain slot data during the in-progress conversation to - // book a hotel or book a car. For more information, see Details of Information - // Flow (http://docs.aws.amazon.com/lex/latest/dg/book-trip-detail-flow.html). - // - // - // * You might use the session attributes (key, value pairs) to track the - // requestID of user requests. - // - // Amazon Lex simply passes these session attributes to the Lambda functions - // configured for the intent. - // - // In your Lambda function, you can also use the session attributes for initialization - // and customization (prompts and response cards). Some examples are: - // - // * Initialization - In a pizza ordering bot, if you can pass the user - // location as a session attribute (for example, "Location" : "111 Maple - // street"), then your Lambda function might use this information to determine - // the closest pizzeria to place the order (perhaps to set the storeAddress - // slot value). - // - // * Personalize prompts - For example, you can configure prompts to refer - // to the user name. (For example, "Hey [FirstName], what toppings would - // you like?"). You can pass the user name as a session attribute ("FirstName" - // : "Joe") so that Amazon Lex can substitute the placeholder to provide - // a personalize prompt to the user ("Hey Joe, what toppings would you like?"). - // - // - // Amazon Lex does not persist session attributes. - // - // If you configure a code hook for the intent, Amazon Lex passes the incoming - // session attributes to the Lambda function. If you want Amazon Lex to return - // these session attributes back to the client, the Lambda function must return - // them. - // - // If there is no code hook configured for the intent, Amazon Lex simply returns - // the session attributes back to the client application. + // For more information, see Setting Session Attributes (http://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs). SessionAttributes map[string]*string `locationName:"sessionAttributes" type:"map"` - // The ID of the client application user. The application developer decides - // the user IDs. At runtime, each request must include the user ID. Typically, - // each of your application users should have a unique ID. Note the following - // considerations: + // The ID of the client application user. Amazon Lex uses this to identify a + // user's conversation with your bot. At runtime, each request must contain + // the userID field. // - // * If you want a user to start a conversation on one device and continue - // the conversation on another device, you might choose a user-specific identifier, - // such as a login or Amazon Cognito user ID (assuming your application is - // using Amazon Cognito). + // To decide the user ID to use for your application, consider the following + // factors. // - // * If you want the same user to be able to have two independent conversations - // on two different devices, you might choose a device-specific identifier, - // such as device ID, or some globally unique identifier. + // * The userID field must not contain any personally identifiable information + // of the user, for example, name, personal identification numbers, or other + // end user personal information. + // + // * If you want a user to start a conversation on one device and continue + // on another device, use a user-specific identifier. + // + // * If you want the same user to be able to have two independent conversations + // on two different devices, choose a device-specific identifier. + // + // * A user can't have two independent conversations with two different versions + // of the same bot. For example, a user can't have a conversation with the + // PROD and BETA versions of the same bot. If you anticipate that a user + // will need to have conversation with two different versions, for example, + // while testing, include the bot alias in the user ID to separate the two + // conversations. // // UserId is a required field UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"` @@ -947,6 +949,12 @@ func (s *PostTextInput) SetInputText(v string) *PostTextInput { return s } +// SetRequestAttributes sets the RequestAttributes field's value. +func (s *PostTextInput) SetRequestAttributes(v map[string]*string) *PostTextInput { + s.RequestAttributes = v + return s +} + // SetSessionAttributes sets the SessionAttributes field's value. func (s *PostTextInput) SetSessionAttributes(v map[string]*string) *PostTextInput { s.SessionAttributes = v @@ -967,13 +975,13 @@ type PostTextOutput struct { // one of the following values as dialogState. The client can optionally use // this information to customize the user interface. // - // * ElicitIntent – Amazon Lex wants to elicit user intent. + // * ElicitIntent - Amazon Lex wants to elicit user intent. // // For example, a user might utter an intent ("I want to order a pizza"). If // Amazon Lex cannot infer the user intent from this utterance, it will return // this dialogState. // - // * ConfirmIntent – Amazon Lex is expecting a "yes" or "no" response. + // * ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response. // // For example, Amazon Lex wants user confirmation before fulfilling an intent. // @@ -984,7 +992,7 @@ type PostTextOutput struct { // examples, update the crust type slot value, or change intent from OrderPizza // to OrderDrink). // - // * ElicitSlot – Amazon Lex is expecting a slot value for the current intent. + // * ElicitSlot - Amazon Lex is expecting a slot value for the current intent. // // // For example, suppose that in the response Amazon Lex sends this message: @@ -993,13 +1001,13 @@ type PostTextOutput struct { // the response (e.g., "medium thick crust pizza"). Amazon Lex can process // such additional information appropriately. // - // * Fulfilled – Conveys that the Lambda function configured for the intent + // * Fulfilled - Conveys that the Lambda function configured for the intent // has successfully fulfilled the intent. // - // * ReadyForFulfillment – Conveys that the client has to fulfill the intent. + // * ReadyForFulfillment - Conveys that the client has to fulfill the intent. // // - // * Failed – Conveys that the conversation with the user failed. + // * Failed - Conveys that the conversation with the user failed. // // This can happen for various reasons including that the user did not provide // an appropriate response to prompts from the service (you can configure @@ -1036,8 +1044,16 @@ type PostTextOutput struct { // which Amazon Lex is eliciting a value. SlotToElicit *string `locationName:"slotToElicit" type:"string"` - // The intent slots (name/value pairs) that Amazon Lex detected so far from - // the user input in the conversation. + // The intent slots that Amazon Lex detected from the user input in the conversation. + // + // Amazon Lex creates a resolution list containing likely values for a slot. + // The value that it returns is determined by the valueSelectionStrategy selected + // when the slot type was created or updated. If valueSelectionStrategy is set + // to ORIGINAL_VALUE, the value provided by the user is returned, if the user + // value is similar to the slot values. If valueSelectionStrategy is set to + // TOP_RESOLUTION Amazon Lex returns the first value in the resolution list + // or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, + // the default is ORIGINAL_VALUE. Slots map[string]*string `locationName:"slots" type:"map"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/errors.go b/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/errors.go index 75193ca5..8cb079f0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lexruntimeservice/errors.go @@ -15,7 +15,7 @@ const ( // "BadRequestException". // // Request validation failed, there is no usable message in the context, or - // the bot build failed. + // the bot build failed, is still in progress, or contains unbuilt changes. ErrCodeBadRequestException = "BadRequestException" // ErrCodeConflictException for service response error code @@ -27,9 +27,16 @@ const ( // ErrCodeDependencyFailedException for service response error code // "DependencyFailedException". // - // One of the downstream dependencies, such as AWS Lambda or Amazon Polly, threw - // an exception. For example, if Amazon Lex does not have sufficient permissions - // to call a Lambda function, it results in Lambda throwing an exception. + // One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. + // For example, + // + // * If Amazon Lex does not have sufficient permissions to call a Lambda + // function. + // + // * If a Lambda function takes longer than 30 seconds to execute. + // + // * If a fulfillment Lambda function returns a Delegate dialog action without + // removing any slot values. ErrCodeDependencyFailedException = "DependencyFailedException" // ErrCodeInternalFailureException for service response error code @@ -47,8 +54,7 @@ const ( // ErrCodeLoopDetectedException for service response error code // "LoopDetectedException". // - // Lambda fulfilment function returned DelegateDialogAction to Amazon Lex without - // changing any slot values. + // This exception is not used. ErrCodeLoopDetectedException = "LoopDetectedException" // ErrCodeNotAcceptableException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/machinelearning/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/machinelearning/customizations_test.go index 734de65e..7dc639a3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/machinelearning/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/machinelearning/customizations_test.go @@ -6,8 +6,6 @@ import ( "net/http" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/awstesting/unit" @@ -32,6 +30,10 @@ func TestPredictEndpoint(t *testing.T) { }) err := req.Send() - assert.Nil(t, err) - assert.Equal(t, "https://localhost/endpoint", req.HTTPRequest.URL.String()) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "https://localhost/endpoint", req.HTTPRequest.URL.String(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/mturk/api.go b/vendor/github.com/aws/aws-sdk-go/service/mturk/api.go index 0e5f4922..8ac841b8 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mturk/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mturk/api.go @@ -4457,7 +4457,7 @@ type BonusPayment struct { // The ID of the assignment associated with this bonus payment. AssignmentId *string `min:"1" type:"string"` - // A string representing a numeric value. + // A string representing a currency amount. BonusAmount *string `type:"string"` // The date and time of when the bonus was granted. @@ -4520,7 +4520,9 @@ type CreateAdditionalAssignmentsForHITInput struct { HITId *string `min:"1" type:"string" required:"true"` // The number of additional assignments to request for this HIT. - NumberOfAdditionalAssignments *int64 `type:"integer"` + // + // NumberOfAdditionalAssignments is a required field + NumberOfAdditionalAssignments *int64 `type:"integer" required:"true"` // A unique identifier for this request, which allows you to retry the call // on error without extending the HIT multiple times. This is useful in cases @@ -4550,6 +4552,9 @@ func (s *CreateAdditionalAssignmentsForHITInput) Validate() error { if s.HITId != nil && len(*s.HITId) < 1 { invalidParams.Add(request.NewErrParamMinLen("HITId", 1)) } + if s.NumberOfAdditionalAssignments == nil { + invalidParams.Add(request.NewErrParamRequired("NumberOfAdditionalAssignments")) + } if s.UniqueRequestToken != nil && len(*s.UniqueRequestToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("UniqueRequestToken", 1)) } @@ -4742,6 +4747,26 @@ func (s *CreateHITInput) Validate() error { if s.UniqueRequestToken != nil && len(*s.UniqueRequestToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("UniqueRequestToken", 1)) } + if s.AssignmentReviewPolicy != nil { + if err := s.AssignmentReviewPolicy.Validate(); err != nil { + invalidParams.AddNested("AssignmentReviewPolicy", err.(request.ErrInvalidParams)) + } + } + if s.HITLayoutParameters != nil { + for i, v := range s.HITLayoutParameters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HITLayoutParameters", i), err.(request.ErrInvalidParams)) + } + } + } + if s.HITReviewPolicy != nil { + if err := s.HITReviewPolicy.Validate(); err != nil { + invalidParams.AddNested("HITReviewPolicy", err.(request.ErrInvalidParams)) + } + } if s.QualificationRequirements != nil { for i, v := range s.QualificationRequirements { if v == nil { @@ -5141,6 +5166,26 @@ func (s *CreateHITWithHITTypeInput) Validate() error { if s.UniqueRequestToken != nil && len(*s.UniqueRequestToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("UniqueRequestToken", 1)) } + if s.AssignmentReviewPolicy != nil { + if err := s.AssignmentReviewPolicy.Validate(); err != nil { + invalidParams.AddNested("AssignmentReviewPolicy", err.(request.ErrInvalidParams)) + } + } + if s.HITLayoutParameters != nil { + for i, v := range s.HITLayoutParameters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HITLayoutParameters", i), err.(request.ErrInvalidParams)) + } + } + } + if s.HITReviewPolicy != nil { + if err := s.HITReviewPolicy.Validate(); err != nil { + invalidParams.AddNested("HITReviewPolicy", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -5778,10 +5823,10 @@ func (s GetAccountBalanceInput) GoString() string { type GetAccountBalanceOutput struct { _ struct{} `type:"structure"` - // A string representing a numeric value. + // A string representing a currency amount. AvailableBalance *string `type:"string"` - // A string representing a numeric value. + // A string representing a currency amount. OnHoldBalance *string `type:"string"` } @@ -6259,7 +6304,7 @@ type HIT struct { // is visible only to the creator of the HIT. RequesterAnnotation *string `type:"string"` - // A string representing a numeric value. + // A string representing a currency amount. Reward *string `type:"string"` // The title of the HIT. @@ -6410,10 +6455,14 @@ type HITLayoutParameter struct { _ struct{} `type:"structure"` // The name of the parameter in the HITLayout. - Name *string `type:"string"` + // + // Name is a required field + Name *string `type:"string" required:"true"` // The value substituted for the parameter referenced in the HITLayout. - Value *string `type:"string"` + // + // Value is a required field + Value *string `type:"string" required:"true"` } // String returns the string representation @@ -6426,6 +6475,22 @@ func (s HITLayoutParameter) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *HITLayoutParameter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "HITLayoutParameter"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetName sets the Name field's value. func (s *HITLayoutParameter) SetName(v string) *HITLayoutParameter { s.Name = &v @@ -7690,10 +7755,14 @@ func (s *Locale) SetSubdivision(v string) *Locale { type NotificationSpecification struct { _ struct{} `type:"structure"` - // The destination for notification messages. or email notifications (if Transport - // is Email), this is an email address. For Amazon Simple Queue Service (Amazon - // SQS) notifications (if Transport is SQS), this is the URL for your Amazon - // SQS queue. + // The target for notification messages. The Destination’s format is determined + // by the specified Transport: + // + // * When Transport is Email, the Destination is your email address. + // + // * When Transport is SQS, the Destination is your queue URL. + // + // * When Transport is SNS, the Destination is the ARN of your topic. // // Destination is a required field Destination *string `type:"string" required:"true"` @@ -7703,16 +7772,20 @@ type NotificationSpecification struct { // | AssignmentRejected | AssignmentApproved | HITCreated | HITExtended | HITDisposed // | HITReviewable | HITExpired | Ping. The Ping event is only valid for the // SendTestEventNotification operation. - EventTypes []*string `type:"list"` + // + // EventTypes is a required field + EventTypes []*string `type:"list" required:"true"` // The method Amazon Mechanical Turk uses to send the notification. Valid Values: - // Email | SQS. + // Email | SQS | SNS. // // Transport is a required field Transport *string `type:"string" required:"true" enum:"NotificationTransport"` // The version of the Notification API to use. Valid value is 2006-05-05. - Version *string `type:"string"` + // + // Version is a required field + Version *string `type:"string" required:"true"` } // String returns the string representation @@ -7731,9 +7804,15 @@ func (s *NotificationSpecification) Validate() error { if s.Destination == nil { invalidParams.Add(request.NewErrParamRequired("Destination")) } + if s.EventTypes == nil { + invalidParams.Add(request.NewErrParamRequired("EventTypes")) + } if s.Transport == nil { invalidParams.Add(request.NewErrParamRequired("Transport")) } + if s.Version == nil { + invalidParams.Add(request.NewErrParamRequired("Version")) + } if invalidParams.Len() > 0 { return invalidParams @@ -8429,7 +8508,9 @@ type RejectAssignmentInput struct { // A message for the Worker, which the Worker can see in the Status section // of the web site. - RequesterFeedback *string `type:"string"` + // + // RequesterFeedback is a required field + RequesterFeedback *string `type:"string" required:"true"` } // String returns the string representation @@ -8451,6 +8532,9 @@ func (s *RejectAssignmentInput) Validate() error { if s.AssignmentId != nil && len(*s.AssignmentId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AssignmentId", 1)) } + if s.RequesterFeedback == nil { + invalidParams.Add(request.NewErrParamRequired("RequesterFeedback")) + } if invalidParams.Len() > 0 { return invalidParams @@ -8652,7 +8736,9 @@ type ReviewPolicy struct { Parameters []*PolicyParameter `type:"list"` // Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 - PolicyName *string `type:"string"` + // + // PolicyName is a required field + PolicyName *string `type:"string" required:"true"` } // String returns the string representation @@ -8665,6 +8751,19 @@ func (s ReviewPolicy) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReviewPolicy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ReviewPolicy"} + if s.PolicyName == nil { + invalidParams.Add(request.NewErrParamRequired("PolicyName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetParameters sets the Parameters field's value. func (s *ReviewPolicy) SetParameters(v []*PolicyParameter) *ReviewPolicy { s.Parameters = v @@ -8808,7 +8907,9 @@ type SendBonusInput struct { // A message that explains the reason for the bonus payment. The Worker receiving // the bonus can see this message. - Reason *string `type:"string"` + // + // Reason is a required field + Reason *string `type:"string" required:"true"` // A unique identifier for this request, which allows you to retry the call // on error without granting multiple bonuses. This is useful in cases such @@ -8846,6 +8947,9 @@ func (s *SendBonusInput) Validate() error { if s.BonusAmount == nil { invalidParams.Add(request.NewErrParamRequired("BonusAmount")) } + if s.Reason == nil { + invalidParams.Add(request.NewErrParamRequired("Reason")) + } if s.UniqueRequestToken != nil && len(*s.UniqueRequestToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("UniqueRequestToken", 1)) } @@ -8990,7 +9094,9 @@ type UpdateExpirationForHITInput struct { _ struct{} `type:"structure"` // The date and time at which you want the HIT to expire - ExpireAt *time.Time `type:"timestamp" timestampFormat:"unix"` + // + // ExpireAt is a required field + ExpireAt *time.Time `type:"timestamp" timestampFormat:"unix" required:"true"` // The HIT to update. // @@ -9011,6 +9117,9 @@ func (s UpdateExpirationForHITInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateExpirationForHITInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateExpirationForHITInput"} + if s.ExpireAt == nil { + invalidParams.Add(request.NewErrParamRequired("ExpireAt")) + } if s.HITId == nil { invalidParams.Add(request.NewErrParamRequired("HITId")) } @@ -9591,6 +9700,9 @@ const ( // NotificationTransportSqs is a NotificationTransport enum value NotificationTransportSqs = "SQS" + + // NotificationTransportSns is a NotificationTransport enum value + NotificationTransportSns = "SNS" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go b/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go index dab5de4e..1319e2ee 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go @@ -9674,7 +9674,7 @@ type DisablePolicyTypeInput struct { PolicyType *string `type:"string" required:"true" enum:"PolicyType"` // The unique identifier (ID) of the root in which you want to disable a policy - // type. You can get the ID from the ListPolicies operation. + // type. You can get the ID from the ListRoots operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for a root ID string // requires "r-" followed by from 4 to 32 lower-case letters or digits. @@ -10046,10 +10046,14 @@ type HandshakeParty struct { // // The regex pattern (http://wikipedia.org/wiki/regex) for handshake ID string // requires "h-" followed by from 8 to 32 lower-case letters or digits. - Id *string `min:"1" type:"string"` + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` // The type of party. - Type *string `type:"string" enum:"HandshakePartyType"` + // + // Type is a required field + Type *string `type:"string" required:"true" enum:"HandshakePartyType"` } // String returns the string representation @@ -10065,9 +10069,15 @@ func (s HandshakeParty) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *HandshakeParty) Validate() error { invalidParams := request.ErrInvalidParams{Context: "HandshakeParty"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } if s.Id != nil && len(*s.Id) < 1 { invalidParams.Add(request.NewErrParamMinLen("Id", 1)) } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go index 4d017757..c70682c9 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go @@ -32,6 +32,8 @@ const opCreateApp = "CreateApp" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateApp func (c *Pinpoint) CreateAppRequest(input *CreateAppInput) (req *request.Request, output *CreateAppOutput) { op := &request.Operation{ Name: opCreateApp, @@ -50,7 +52,7 @@ func (c *Pinpoint) CreateAppRequest(input *CreateAppInput) (req *request.Request // CreateApp API operation for Amazon Pinpoint. // -// Used to create an app. +// Creates or updates an app. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -72,6 +74,7 @@ func (c *Pinpoint) CreateAppRequest(input *CreateAppInput) (req *request.Request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateApp func (c *Pinpoint) CreateApp(input *CreateAppInput) (*CreateAppOutput, error) { req, out := c.CreateAppRequest(input) return out, req.Send() @@ -117,6 +120,8 @@ const opCreateCampaign = "CreateCampaign" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateCampaign func (c *Pinpoint) CreateCampaignRequest(input *CreateCampaignInput) (req *request.Request, output *CreateCampaignOutput) { op := &request.Operation{ Name: opCreateCampaign, @@ -157,6 +162,7 @@ func (c *Pinpoint) CreateCampaignRequest(input *CreateCampaignInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateCampaign func (c *Pinpoint) CreateCampaign(input *CreateCampaignInput) (*CreateCampaignOutput, error) { req, out := c.CreateCampaignRequest(input) return out, req.Send() @@ -202,6 +208,8 @@ const opCreateImportJob = "CreateImportJob" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateImportJob func (c *Pinpoint) CreateImportJobRequest(input *CreateImportJobInput) (req *request.Request, output *CreateImportJobOutput) { op := &request.Operation{ Name: opCreateImportJob, @@ -242,6 +250,7 @@ func (c *Pinpoint) CreateImportJobRequest(input *CreateImportJobInput) (req *req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateImportJob func (c *Pinpoint) CreateImportJob(input *CreateImportJobInput) (*CreateImportJobOutput, error) { req, out := c.CreateImportJobRequest(input) return out, req.Send() @@ -287,6 +296,8 @@ const opCreateSegment = "CreateSegment" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateSegment func (c *Pinpoint) CreateSegmentRequest(input *CreateSegmentInput) (req *request.Request, output *CreateSegmentOutput) { op := &request.Operation{ Name: opCreateSegment, @@ -327,6 +338,7 @@ func (c *Pinpoint) CreateSegmentRequest(input *CreateSegmentInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateSegment func (c *Pinpoint) CreateSegment(input *CreateSegmentInput) (*CreateSegmentOutput, error) { req, out := c.CreateSegmentRequest(input) return out, req.Send() @@ -348,6 +360,94 @@ func (c *Pinpoint) CreateSegmentWithContext(ctx aws.Context, input *CreateSegmen return out, req.Send() } +const opDeleteAdmChannel = "DeleteAdmChannel" + +// DeleteAdmChannelRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAdmChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteAdmChannel for more information on using the DeleteAdmChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteAdmChannelRequest method. +// req, resp := client.DeleteAdmChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAdmChannel +func (c *Pinpoint) DeleteAdmChannelRequest(input *DeleteAdmChannelInput) (req *request.Request, output *DeleteAdmChannelOutput) { + op := &request.Operation{ + Name: opDeleteAdmChannel, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apps/{application-id}/channels/adm", + } + + if input == nil { + input = &DeleteAdmChannelInput{} + } + + output = &DeleteAdmChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteAdmChannel API operation for Amazon Pinpoint. +// +// Delete an ADM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation DeleteAdmChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAdmChannel +func (c *Pinpoint) DeleteAdmChannel(input *DeleteAdmChannelInput) (*DeleteAdmChannelOutput, error) { + req, out := c.DeleteAdmChannelRequest(input) + return out, req.Send() +} + +// DeleteAdmChannelWithContext is the same as DeleteAdmChannel with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAdmChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) DeleteAdmChannelWithContext(ctx aws.Context, input *DeleteAdmChannelInput, opts ...request.Option) (*DeleteAdmChannelOutput, error) { + req, out := c.DeleteAdmChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteApnsChannel = "DeleteApnsChannel" // DeleteApnsChannelRequest generates a "aws/request.Request" representing the @@ -372,6 +472,8 @@ const opDeleteApnsChannel = "DeleteApnsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsChannel func (c *Pinpoint) DeleteApnsChannelRequest(input *DeleteApnsChannelInput) (req *request.Request, output *DeleteApnsChannelOutput) { op := &request.Operation{ Name: opDeleteApnsChannel, @@ -412,6 +514,7 @@ func (c *Pinpoint) DeleteApnsChannelRequest(input *DeleteApnsChannelInput) (req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsChannel func (c *Pinpoint) DeleteApnsChannel(input *DeleteApnsChannelInput) (*DeleteApnsChannelOutput, error) { req, out := c.DeleteApnsChannelRequest(input) return out, req.Send() @@ -457,6 +560,8 @@ const opDeleteApnsSandboxChannel = "DeleteApnsSandboxChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsSandboxChannel func (c *Pinpoint) DeleteApnsSandboxChannelRequest(input *DeleteApnsSandboxChannelInput) (req *request.Request, output *DeleteApnsSandboxChannelOutput) { op := &request.Operation{ Name: opDeleteApnsSandboxChannel, @@ -497,6 +602,7 @@ func (c *Pinpoint) DeleteApnsSandboxChannelRequest(input *DeleteApnsSandboxChann // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsSandboxChannel func (c *Pinpoint) DeleteApnsSandboxChannel(input *DeleteApnsSandboxChannelInput) (*DeleteApnsSandboxChannelOutput, error) { req, out := c.DeleteApnsSandboxChannelRequest(input) return out, req.Send() @@ -542,6 +648,8 @@ const opDeleteApp = "DeleteApp" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApp func (c *Pinpoint) DeleteAppRequest(input *DeleteAppInput) (req *request.Request, output *DeleteAppOutput) { op := &request.Operation{ Name: opDeleteApp, @@ -582,6 +690,7 @@ func (c *Pinpoint) DeleteAppRequest(input *DeleteAppInput) (req *request.Request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApp func (c *Pinpoint) DeleteApp(input *DeleteAppInput) (*DeleteAppOutput, error) { req, out := c.DeleteAppRequest(input) return out, req.Send() @@ -603,6 +712,94 @@ func (c *Pinpoint) DeleteAppWithContext(ctx aws.Context, input *DeleteAppInput, return out, req.Send() } +const opDeleteBaiduChannel = "DeleteBaiduChannel" + +// DeleteBaiduChannelRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBaiduChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteBaiduChannel for more information on using the DeleteBaiduChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteBaiduChannelRequest method. +// req, resp := client.DeleteBaiduChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteBaiduChannel +func (c *Pinpoint) DeleteBaiduChannelRequest(input *DeleteBaiduChannelInput) (req *request.Request, output *DeleteBaiduChannelOutput) { + op := &request.Operation{ + Name: opDeleteBaiduChannel, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apps/{application-id}/channels/baidu", + } + + if input == nil { + input = &DeleteBaiduChannelInput{} + } + + output = &DeleteBaiduChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteBaiduChannel API operation for Amazon Pinpoint. +// +// Delete a BAIDU GCM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation DeleteBaiduChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteBaiduChannel +func (c *Pinpoint) DeleteBaiduChannel(input *DeleteBaiduChannelInput) (*DeleteBaiduChannelOutput, error) { + req, out := c.DeleteBaiduChannelRequest(input) + return out, req.Send() +} + +// DeleteBaiduChannelWithContext is the same as DeleteBaiduChannel with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteBaiduChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) DeleteBaiduChannelWithContext(ctx aws.Context, input *DeleteBaiduChannelInput, opts ...request.Option) (*DeleteBaiduChannelOutput, error) { + req, out := c.DeleteBaiduChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteCampaign = "DeleteCampaign" // DeleteCampaignRequest generates a "aws/request.Request" representing the @@ -627,6 +824,8 @@ const opDeleteCampaign = "DeleteCampaign" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteCampaign func (c *Pinpoint) DeleteCampaignRequest(input *DeleteCampaignInput) (req *request.Request, output *DeleteCampaignOutput) { op := &request.Operation{ Name: opDeleteCampaign, @@ -667,6 +866,7 @@ func (c *Pinpoint) DeleteCampaignRequest(input *DeleteCampaignInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteCampaign func (c *Pinpoint) DeleteCampaign(input *DeleteCampaignInput) (*DeleteCampaignOutput, error) { req, out := c.DeleteCampaignRequest(input) return out, req.Send() @@ -712,6 +912,8 @@ const opDeleteEmailChannel = "DeleteEmailChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEmailChannel func (c *Pinpoint) DeleteEmailChannelRequest(input *DeleteEmailChannelInput) (req *request.Request, output *DeleteEmailChannelOutput) { op := &request.Operation{ Name: opDeleteEmailChannel, @@ -752,6 +954,7 @@ func (c *Pinpoint) DeleteEmailChannelRequest(input *DeleteEmailChannelInput) (re // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEmailChannel func (c *Pinpoint) DeleteEmailChannel(input *DeleteEmailChannelInput) (*DeleteEmailChannelOutput, error) { req, out := c.DeleteEmailChannelRequest(input) return out, req.Send() @@ -797,6 +1000,8 @@ const opDeleteEventStream = "DeleteEventStream" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEventStream func (c *Pinpoint) DeleteEventStreamRequest(input *DeleteEventStreamInput) (req *request.Request, output *DeleteEventStreamOutput) { op := &request.Operation{ Name: opDeleteEventStream, @@ -837,6 +1042,7 @@ func (c *Pinpoint) DeleteEventStreamRequest(input *DeleteEventStreamInput) (req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEventStream func (c *Pinpoint) DeleteEventStream(input *DeleteEventStreamInput) (*DeleteEventStreamOutput, error) { req, out := c.DeleteEventStreamRequest(input) return out, req.Send() @@ -882,6 +1088,8 @@ const opDeleteGcmChannel = "DeleteGcmChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteGcmChannel func (c *Pinpoint) DeleteGcmChannelRequest(input *DeleteGcmChannelInput) (req *request.Request, output *DeleteGcmChannelOutput) { op := &request.Operation{ Name: opDeleteGcmChannel, @@ -922,6 +1130,7 @@ func (c *Pinpoint) DeleteGcmChannelRequest(input *DeleteGcmChannelInput) (req *r // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteGcmChannel func (c *Pinpoint) DeleteGcmChannel(input *DeleteGcmChannelInput) (*DeleteGcmChannelOutput, error) { req, out := c.DeleteGcmChannelRequest(input) return out, req.Send() @@ -967,6 +1176,8 @@ const opDeleteSegment = "DeleteSegment" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSegment func (c *Pinpoint) DeleteSegmentRequest(input *DeleteSegmentInput) (req *request.Request, output *DeleteSegmentOutput) { op := &request.Operation{ Name: opDeleteSegment, @@ -1007,6 +1218,7 @@ func (c *Pinpoint) DeleteSegmentRequest(input *DeleteSegmentInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSegment func (c *Pinpoint) DeleteSegment(input *DeleteSegmentInput) (*DeleteSegmentOutput, error) { req, out := c.DeleteSegmentRequest(input) return out, req.Send() @@ -1052,6 +1264,8 @@ const opDeleteSmsChannel = "DeleteSmsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSmsChannel func (c *Pinpoint) DeleteSmsChannelRequest(input *DeleteSmsChannelInput) (req *request.Request, output *DeleteSmsChannelOutput) { op := &request.Operation{ Name: opDeleteSmsChannel, @@ -1092,6 +1306,7 @@ func (c *Pinpoint) DeleteSmsChannelRequest(input *DeleteSmsChannelInput) (req *r // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSmsChannel func (c *Pinpoint) DeleteSmsChannel(input *DeleteSmsChannelInput) (*DeleteSmsChannelOutput, error) { req, out := c.DeleteSmsChannelRequest(input) return out, req.Send() @@ -1113,6 +1328,94 @@ func (c *Pinpoint) DeleteSmsChannelWithContext(ctx aws.Context, input *DeleteSms return out, req.Send() } +const opGetAdmChannel = "GetAdmChannel" + +// GetAdmChannelRequest generates a "aws/request.Request" representing the +// client's request for the GetAdmChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetAdmChannel for more information on using the GetAdmChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetAdmChannelRequest method. +// req, resp := client.GetAdmChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAdmChannel +func (c *Pinpoint) GetAdmChannelRequest(input *GetAdmChannelInput) (req *request.Request, output *GetAdmChannelOutput) { + op := &request.Operation{ + Name: opGetAdmChannel, + HTTPMethod: "GET", + HTTPPath: "/v1/apps/{application-id}/channels/adm", + } + + if input == nil { + input = &GetAdmChannelInput{} + } + + output = &GetAdmChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAdmChannel API operation for Amazon Pinpoint. +// +// Get an ADM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation GetAdmChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAdmChannel +func (c *Pinpoint) GetAdmChannel(input *GetAdmChannelInput) (*GetAdmChannelOutput, error) { + req, out := c.GetAdmChannelRequest(input) + return out, req.Send() +} + +// GetAdmChannelWithContext is the same as GetAdmChannel with the addition of +// the ability to pass a context and additional request options. +// +// See GetAdmChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) GetAdmChannelWithContext(ctx aws.Context, input *GetAdmChannelInput, opts ...request.Option) (*GetAdmChannelOutput, error) { + req, out := c.GetAdmChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetApnsChannel = "GetApnsChannel" // GetApnsChannelRequest generates a "aws/request.Request" representing the @@ -1137,6 +1440,8 @@ const opGetApnsChannel = "GetApnsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsChannel func (c *Pinpoint) GetApnsChannelRequest(input *GetApnsChannelInput) (req *request.Request, output *GetApnsChannelOutput) { op := &request.Operation{ Name: opGetApnsChannel, @@ -1177,6 +1482,7 @@ func (c *Pinpoint) GetApnsChannelRequest(input *GetApnsChannelInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsChannel func (c *Pinpoint) GetApnsChannel(input *GetApnsChannelInput) (*GetApnsChannelOutput, error) { req, out := c.GetApnsChannelRequest(input) return out, req.Send() @@ -1222,6 +1528,8 @@ const opGetApnsSandboxChannel = "GetApnsSandboxChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsSandboxChannel func (c *Pinpoint) GetApnsSandboxChannelRequest(input *GetApnsSandboxChannelInput) (req *request.Request, output *GetApnsSandboxChannelOutput) { op := &request.Operation{ Name: opGetApnsSandboxChannel, @@ -1262,6 +1570,7 @@ func (c *Pinpoint) GetApnsSandboxChannelRequest(input *GetApnsSandboxChannelInpu // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsSandboxChannel func (c *Pinpoint) GetApnsSandboxChannel(input *GetApnsSandboxChannelInput) (*GetApnsSandboxChannelOutput, error) { req, out := c.GetApnsSandboxChannelRequest(input) return out, req.Send() @@ -1307,6 +1616,8 @@ const opGetApp = "GetApp" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApp func (c *Pinpoint) GetAppRequest(input *GetAppInput) (req *request.Request, output *GetAppOutput) { op := &request.Operation{ Name: opGetApp, @@ -1347,6 +1658,7 @@ func (c *Pinpoint) GetAppRequest(input *GetAppInput) (req *request.Request, outp // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApp func (c *Pinpoint) GetApp(input *GetAppInput) (*GetAppOutput, error) { req, out := c.GetAppRequest(input) return out, req.Send() @@ -1392,6 +1704,8 @@ const opGetApplicationSettings = "GetApplicationSettings" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApplicationSettings func (c *Pinpoint) GetApplicationSettingsRequest(input *GetApplicationSettingsInput) (req *request.Request, output *GetApplicationSettingsOutput) { op := &request.Operation{ Name: opGetApplicationSettings, @@ -1432,6 +1746,7 @@ func (c *Pinpoint) GetApplicationSettingsRequest(input *GetApplicationSettingsIn // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApplicationSettings func (c *Pinpoint) GetApplicationSettings(input *GetApplicationSettingsInput) (*GetApplicationSettingsOutput, error) { req, out := c.GetApplicationSettingsRequest(input) return out, req.Send() @@ -1477,6 +1792,8 @@ const opGetApps = "GetApps" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApps func (c *Pinpoint) GetAppsRequest(input *GetAppsInput) (req *request.Request, output *GetAppsOutput) { op := &request.Operation{ Name: opGetApps, @@ -1517,6 +1834,7 @@ func (c *Pinpoint) GetAppsRequest(input *GetAppsInput) (req *request.Request, ou // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApps func (c *Pinpoint) GetApps(input *GetAppsInput) (*GetAppsOutput, error) { req, out := c.GetAppsRequest(input) return out, req.Send() @@ -1538,6 +1856,94 @@ func (c *Pinpoint) GetAppsWithContext(ctx aws.Context, input *GetAppsInput, opts return out, req.Send() } +const opGetBaiduChannel = "GetBaiduChannel" + +// GetBaiduChannelRequest generates a "aws/request.Request" representing the +// client's request for the GetBaiduChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetBaiduChannel for more information on using the GetBaiduChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetBaiduChannelRequest method. +// req, resp := client.GetBaiduChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetBaiduChannel +func (c *Pinpoint) GetBaiduChannelRequest(input *GetBaiduChannelInput) (req *request.Request, output *GetBaiduChannelOutput) { + op := &request.Operation{ + Name: opGetBaiduChannel, + HTTPMethod: "GET", + HTTPPath: "/v1/apps/{application-id}/channels/baidu", + } + + if input == nil { + input = &GetBaiduChannelInput{} + } + + output = &GetBaiduChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetBaiduChannel API operation for Amazon Pinpoint. +// +// Get a BAIDU GCM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation GetBaiduChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetBaiduChannel +func (c *Pinpoint) GetBaiduChannel(input *GetBaiduChannelInput) (*GetBaiduChannelOutput, error) { + req, out := c.GetBaiduChannelRequest(input) + return out, req.Send() +} + +// GetBaiduChannelWithContext is the same as GetBaiduChannel with the addition of +// the ability to pass a context and additional request options. +// +// See GetBaiduChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) GetBaiduChannelWithContext(ctx aws.Context, input *GetBaiduChannelInput, opts ...request.Option) (*GetBaiduChannelOutput, error) { + req, out := c.GetBaiduChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetCampaign = "GetCampaign" // GetCampaignRequest generates a "aws/request.Request" representing the @@ -1562,6 +1968,8 @@ const opGetCampaign = "GetCampaign" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaign func (c *Pinpoint) GetCampaignRequest(input *GetCampaignInput) (req *request.Request, output *GetCampaignOutput) { op := &request.Operation{ Name: opGetCampaign, @@ -1602,6 +2010,7 @@ func (c *Pinpoint) GetCampaignRequest(input *GetCampaignInput) (req *request.Req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaign func (c *Pinpoint) GetCampaign(input *GetCampaignInput) (*GetCampaignOutput, error) { req, out := c.GetCampaignRequest(input) return out, req.Send() @@ -1647,6 +2056,8 @@ const opGetCampaignActivities = "GetCampaignActivities" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignActivities func (c *Pinpoint) GetCampaignActivitiesRequest(input *GetCampaignActivitiesInput) (req *request.Request, output *GetCampaignActivitiesOutput) { op := &request.Operation{ Name: opGetCampaignActivities, @@ -1687,6 +2098,7 @@ func (c *Pinpoint) GetCampaignActivitiesRequest(input *GetCampaignActivitiesInpu // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignActivities func (c *Pinpoint) GetCampaignActivities(input *GetCampaignActivitiesInput) (*GetCampaignActivitiesOutput, error) { req, out := c.GetCampaignActivitiesRequest(input) return out, req.Send() @@ -1732,6 +2144,8 @@ const opGetCampaignVersion = "GetCampaignVersion" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersion func (c *Pinpoint) GetCampaignVersionRequest(input *GetCampaignVersionInput) (req *request.Request, output *GetCampaignVersionOutput) { op := &request.Operation{ Name: opGetCampaignVersion, @@ -1772,6 +2186,7 @@ func (c *Pinpoint) GetCampaignVersionRequest(input *GetCampaignVersionInput) (re // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersion func (c *Pinpoint) GetCampaignVersion(input *GetCampaignVersionInput) (*GetCampaignVersionOutput, error) { req, out := c.GetCampaignVersionRequest(input) return out, req.Send() @@ -1817,6 +2232,8 @@ const opGetCampaignVersions = "GetCampaignVersions" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersions func (c *Pinpoint) GetCampaignVersionsRequest(input *GetCampaignVersionsInput) (req *request.Request, output *GetCampaignVersionsOutput) { op := &request.Operation{ Name: opGetCampaignVersions, @@ -1857,6 +2274,7 @@ func (c *Pinpoint) GetCampaignVersionsRequest(input *GetCampaignVersionsInput) ( // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersions func (c *Pinpoint) GetCampaignVersions(input *GetCampaignVersionsInput) (*GetCampaignVersionsOutput, error) { req, out := c.GetCampaignVersionsRequest(input) return out, req.Send() @@ -1902,6 +2320,8 @@ const opGetCampaigns = "GetCampaigns" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaigns func (c *Pinpoint) GetCampaignsRequest(input *GetCampaignsInput) (req *request.Request, output *GetCampaignsOutput) { op := &request.Operation{ Name: opGetCampaigns, @@ -1942,6 +2362,7 @@ func (c *Pinpoint) GetCampaignsRequest(input *GetCampaignsInput) (req *request.R // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaigns func (c *Pinpoint) GetCampaigns(input *GetCampaignsInput) (*GetCampaignsOutput, error) { req, out := c.GetCampaignsRequest(input) return out, req.Send() @@ -1987,6 +2408,8 @@ const opGetEmailChannel = "GetEmailChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEmailChannel func (c *Pinpoint) GetEmailChannelRequest(input *GetEmailChannelInput) (req *request.Request, output *GetEmailChannelOutput) { op := &request.Operation{ Name: opGetEmailChannel, @@ -2027,6 +2450,7 @@ func (c *Pinpoint) GetEmailChannelRequest(input *GetEmailChannelInput) (req *req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEmailChannel func (c *Pinpoint) GetEmailChannel(input *GetEmailChannelInput) (*GetEmailChannelOutput, error) { req, out := c.GetEmailChannelRequest(input) return out, req.Send() @@ -2072,6 +2496,8 @@ const opGetEndpoint = "GetEndpoint" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEndpoint func (c *Pinpoint) GetEndpointRequest(input *GetEndpointInput) (req *request.Request, output *GetEndpointOutput) { op := &request.Operation{ Name: opGetEndpoint, @@ -2112,6 +2538,7 @@ func (c *Pinpoint) GetEndpointRequest(input *GetEndpointInput) (req *request.Req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEndpoint func (c *Pinpoint) GetEndpoint(input *GetEndpointInput) (*GetEndpointOutput, error) { req, out := c.GetEndpointRequest(input) return out, req.Send() @@ -2157,6 +2584,8 @@ const opGetEventStream = "GetEventStream" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEventStream func (c *Pinpoint) GetEventStreamRequest(input *GetEventStreamInput) (req *request.Request, output *GetEventStreamOutput) { op := &request.Operation{ Name: opGetEventStream, @@ -2197,6 +2626,7 @@ func (c *Pinpoint) GetEventStreamRequest(input *GetEventStreamInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEventStream func (c *Pinpoint) GetEventStream(input *GetEventStreamInput) (*GetEventStreamOutput, error) { req, out := c.GetEventStreamRequest(input) return out, req.Send() @@ -2242,6 +2672,8 @@ const opGetGcmChannel = "GetGcmChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetGcmChannel func (c *Pinpoint) GetGcmChannelRequest(input *GetGcmChannelInput) (req *request.Request, output *GetGcmChannelOutput) { op := &request.Operation{ Name: opGetGcmChannel, @@ -2282,6 +2714,7 @@ func (c *Pinpoint) GetGcmChannelRequest(input *GetGcmChannelInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetGcmChannel func (c *Pinpoint) GetGcmChannel(input *GetGcmChannelInput) (*GetGcmChannelOutput, error) { req, out := c.GetGcmChannelRequest(input) return out, req.Send() @@ -2327,6 +2760,8 @@ const opGetImportJob = "GetImportJob" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJob func (c *Pinpoint) GetImportJobRequest(input *GetImportJobInput) (req *request.Request, output *GetImportJobOutput) { op := &request.Operation{ Name: opGetImportJob, @@ -2367,6 +2802,7 @@ func (c *Pinpoint) GetImportJobRequest(input *GetImportJobInput) (req *request.R // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJob func (c *Pinpoint) GetImportJob(input *GetImportJobInput) (*GetImportJobOutput, error) { req, out := c.GetImportJobRequest(input) return out, req.Send() @@ -2412,6 +2848,8 @@ const opGetImportJobs = "GetImportJobs" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobs func (c *Pinpoint) GetImportJobsRequest(input *GetImportJobsInput) (req *request.Request, output *GetImportJobsOutput) { op := &request.Operation{ Name: opGetImportJobs, @@ -2452,6 +2890,7 @@ func (c *Pinpoint) GetImportJobsRequest(input *GetImportJobsInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobs func (c *Pinpoint) GetImportJobs(input *GetImportJobsInput) (*GetImportJobsOutput, error) { req, out := c.GetImportJobsRequest(input) return out, req.Send() @@ -2497,6 +2936,8 @@ const opGetSegment = "GetSegment" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegment func (c *Pinpoint) GetSegmentRequest(input *GetSegmentInput) (req *request.Request, output *GetSegmentOutput) { op := &request.Operation{ Name: opGetSegment, @@ -2537,6 +2978,7 @@ func (c *Pinpoint) GetSegmentRequest(input *GetSegmentInput) (req *request.Reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegment func (c *Pinpoint) GetSegment(input *GetSegmentInput) (*GetSegmentOutput, error) { req, out := c.GetSegmentRequest(input) return out, req.Send() @@ -2582,6 +3024,8 @@ const opGetSegmentImportJobs = "GetSegmentImportJobs" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentImportJobs func (c *Pinpoint) GetSegmentImportJobsRequest(input *GetSegmentImportJobsInput) (req *request.Request, output *GetSegmentImportJobsOutput) { op := &request.Operation{ Name: opGetSegmentImportJobs, @@ -2622,6 +3066,7 @@ func (c *Pinpoint) GetSegmentImportJobsRequest(input *GetSegmentImportJobsInput) // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentImportJobs func (c *Pinpoint) GetSegmentImportJobs(input *GetSegmentImportJobsInput) (*GetSegmentImportJobsOutput, error) { req, out := c.GetSegmentImportJobsRequest(input) return out, req.Send() @@ -2667,6 +3112,8 @@ const opGetSegmentVersion = "GetSegmentVersion" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersion func (c *Pinpoint) GetSegmentVersionRequest(input *GetSegmentVersionInput) (req *request.Request, output *GetSegmentVersionOutput) { op := &request.Operation{ Name: opGetSegmentVersion, @@ -2707,6 +3154,7 @@ func (c *Pinpoint) GetSegmentVersionRequest(input *GetSegmentVersionInput) (req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersion func (c *Pinpoint) GetSegmentVersion(input *GetSegmentVersionInput) (*GetSegmentVersionOutput, error) { req, out := c.GetSegmentVersionRequest(input) return out, req.Send() @@ -2752,6 +3200,8 @@ const opGetSegmentVersions = "GetSegmentVersions" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersions func (c *Pinpoint) GetSegmentVersionsRequest(input *GetSegmentVersionsInput) (req *request.Request, output *GetSegmentVersionsOutput) { op := &request.Operation{ Name: opGetSegmentVersions, @@ -2792,6 +3242,7 @@ func (c *Pinpoint) GetSegmentVersionsRequest(input *GetSegmentVersionsInput) (re // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersions func (c *Pinpoint) GetSegmentVersions(input *GetSegmentVersionsInput) (*GetSegmentVersionsOutput, error) { req, out := c.GetSegmentVersionsRequest(input) return out, req.Send() @@ -2837,6 +3288,8 @@ const opGetSegments = "GetSegments" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegments func (c *Pinpoint) GetSegmentsRequest(input *GetSegmentsInput) (req *request.Request, output *GetSegmentsOutput) { op := &request.Operation{ Name: opGetSegments, @@ -2877,6 +3330,7 @@ func (c *Pinpoint) GetSegmentsRequest(input *GetSegmentsInput) (req *request.Req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegments func (c *Pinpoint) GetSegments(input *GetSegmentsInput) (*GetSegmentsOutput, error) { req, out := c.GetSegmentsRequest(input) return out, req.Send() @@ -2922,6 +3376,8 @@ const opGetSmsChannel = "GetSmsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSmsChannel func (c *Pinpoint) GetSmsChannelRequest(input *GetSmsChannelInput) (req *request.Request, output *GetSmsChannelOutput) { op := &request.Operation{ Name: opGetSmsChannel, @@ -2962,6 +3418,7 @@ func (c *Pinpoint) GetSmsChannelRequest(input *GetSmsChannelInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSmsChannel func (c *Pinpoint) GetSmsChannel(input *GetSmsChannelInput) (*GetSmsChannelOutput, error) { req, out := c.GetSmsChannelRequest(input) return out, req.Send() @@ -3007,6 +3464,8 @@ const opPutEventStream = "PutEventStream" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/PutEventStream func (c *Pinpoint) PutEventStreamRequest(input *PutEventStreamInput) (req *request.Request, output *PutEventStreamOutput) { op := &request.Operation{ Name: opPutEventStream, @@ -3047,6 +3506,7 @@ func (c *Pinpoint) PutEventStreamRequest(input *PutEventStreamInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/PutEventStream func (c *Pinpoint) PutEventStream(input *PutEventStreamInput) (*PutEventStreamOutput, error) { req, out := c.PutEventStreamRequest(input) return out, req.Send() @@ -3092,6 +3552,8 @@ const opSendMessages = "SendMessages" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendMessages func (c *Pinpoint) SendMessagesRequest(input *SendMessagesInput) (req *request.Request, output *SendMessagesOutput) { op := &request.Operation{ Name: opSendMessages, @@ -3132,6 +3594,7 @@ func (c *Pinpoint) SendMessagesRequest(input *SendMessagesInput) (req *request.R // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendMessages func (c *Pinpoint) SendMessages(input *SendMessagesInput) (*SendMessagesOutput, error) { req, out := c.SendMessagesRequest(input) return out, req.Send() @@ -3153,6 +3616,182 @@ func (c *Pinpoint) SendMessagesWithContext(ctx aws.Context, input *SendMessagesI return out, req.Send() } +const opSendUsersMessages = "SendUsersMessages" + +// SendUsersMessagesRequest generates a "aws/request.Request" representing the +// client's request for the SendUsersMessages operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See SendUsersMessages for more information on using the SendUsersMessages +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the SendUsersMessagesRequest method. +// req, resp := client.SendUsersMessagesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessages +func (c *Pinpoint) SendUsersMessagesRequest(input *SendUsersMessagesInput) (req *request.Request, output *SendUsersMessagesOutput) { + op := &request.Operation{ + Name: opSendUsersMessages, + HTTPMethod: "POST", + HTTPPath: "/v1/apps/{application-id}/users-messages", + } + + if input == nil { + input = &SendUsersMessagesInput{} + } + + output = &SendUsersMessagesOutput{} + req = c.newRequest(op, input, output) + return +} + +// SendUsersMessages API operation for Amazon Pinpoint. +// +// Send a batch of messages to users +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation SendUsersMessages for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessages +func (c *Pinpoint) SendUsersMessages(input *SendUsersMessagesInput) (*SendUsersMessagesOutput, error) { + req, out := c.SendUsersMessagesRequest(input) + return out, req.Send() +} + +// SendUsersMessagesWithContext is the same as SendUsersMessages with the addition of +// the ability to pass a context and additional request options. +// +// See SendUsersMessages for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) SendUsersMessagesWithContext(ctx aws.Context, input *SendUsersMessagesInput, opts ...request.Option) (*SendUsersMessagesOutput, error) { + req, out := c.SendUsersMessagesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAdmChannel = "UpdateAdmChannel" + +// UpdateAdmChannelRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAdmChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateAdmChannel for more information on using the UpdateAdmChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateAdmChannelRequest method. +// req, resp := client.UpdateAdmChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateAdmChannel +func (c *Pinpoint) UpdateAdmChannelRequest(input *UpdateAdmChannelInput) (req *request.Request, output *UpdateAdmChannelOutput) { + op := &request.Operation{ + Name: opUpdateAdmChannel, + HTTPMethod: "PUT", + HTTPPath: "/v1/apps/{application-id}/channels/adm", + } + + if input == nil { + input = &UpdateAdmChannelInput{} + } + + output = &UpdateAdmChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAdmChannel API operation for Amazon Pinpoint. +// +// Update an ADM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation UpdateAdmChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateAdmChannel +func (c *Pinpoint) UpdateAdmChannel(input *UpdateAdmChannelInput) (*UpdateAdmChannelOutput, error) { + req, out := c.UpdateAdmChannelRequest(input) + return out, req.Send() +} + +// UpdateAdmChannelWithContext is the same as UpdateAdmChannel with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAdmChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) UpdateAdmChannelWithContext(ctx aws.Context, input *UpdateAdmChannelInput, opts ...request.Option) (*UpdateAdmChannelOutput, error) { + req, out := c.UpdateAdmChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateApnsChannel = "UpdateApnsChannel" // UpdateApnsChannelRequest generates a "aws/request.Request" representing the @@ -3177,6 +3816,8 @@ const opUpdateApnsChannel = "UpdateApnsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsChannel func (c *Pinpoint) UpdateApnsChannelRequest(input *UpdateApnsChannelInput) (req *request.Request, output *UpdateApnsChannelOutput) { op := &request.Operation{ Name: opUpdateApnsChannel, @@ -3217,6 +3858,7 @@ func (c *Pinpoint) UpdateApnsChannelRequest(input *UpdateApnsChannelInput) (req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsChannel func (c *Pinpoint) UpdateApnsChannel(input *UpdateApnsChannelInput) (*UpdateApnsChannelOutput, error) { req, out := c.UpdateApnsChannelRequest(input) return out, req.Send() @@ -3262,6 +3904,8 @@ const opUpdateApnsSandboxChannel = "UpdateApnsSandboxChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsSandboxChannel func (c *Pinpoint) UpdateApnsSandboxChannelRequest(input *UpdateApnsSandboxChannelInput) (req *request.Request, output *UpdateApnsSandboxChannelOutput) { op := &request.Operation{ Name: opUpdateApnsSandboxChannel, @@ -3302,6 +3946,7 @@ func (c *Pinpoint) UpdateApnsSandboxChannelRequest(input *UpdateApnsSandboxChann // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsSandboxChannel func (c *Pinpoint) UpdateApnsSandboxChannel(input *UpdateApnsSandboxChannelInput) (*UpdateApnsSandboxChannelOutput, error) { req, out := c.UpdateApnsSandboxChannelRequest(input) return out, req.Send() @@ -3347,6 +3992,8 @@ const opUpdateApplicationSettings = "UpdateApplicationSettings" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApplicationSettings func (c *Pinpoint) UpdateApplicationSettingsRequest(input *UpdateApplicationSettingsInput) (req *request.Request, output *UpdateApplicationSettingsOutput) { op := &request.Operation{ Name: opUpdateApplicationSettings, @@ -3387,6 +4034,7 @@ func (c *Pinpoint) UpdateApplicationSettingsRequest(input *UpdateApplicationSett // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApplicationSettings func (c *Pinpoint) UpdateApplicationSettings(input *UpdateApplicationSettingsInput) (*UpdateApplicationSettingsOutput, error) { req, out := c.UpdateApplicationSettingsRequest(input) return out, req.Send() @@ -3408,6 +4056,94 @@ func (c *Pinpoint) UpdateApplicationSettingsWithContext(ctx aws.Context, input * return out, req.Send() } +const opUpdateBaiduChannel = "UpdateBaiduChannel" + +// UpdateBaiduChannelRequest generates a "aws/request.Request" representing the +// client's request for the UpdateBaiduChannel operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateBaiduChannel for more information on using the UpdateBaiduChannel +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateBaiduChannelRequest method. +// req, resp := client.UpdateBaiduChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateBaiduChannel +func (c *Pinpoint) UpdateBaiduChannelRequest(input *UpdateBaiduChannelInput) (req *request.Request, output *UpdateBaiduChannelOutput) { + op := &request.Operation{ + Name: opUpdateBaiduChannel, + HTTPMethod: "PUT", + HTTPPath: "/v1/apps/{application-id}/channels/baidu", + } + + if input == nil { + input = &UpdateBaiduChannelInput{} + } + + output = &UpdateBaiduChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateBaiduChannel API operation for Amazon Pinpoint. +// +// Update a BAIDU GCM channel +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Pinpoint's +// API operation UpdateBaiduChannel for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateBaiduChannel +func (c *Pinpoint) UpdateBaiduChannel(input *UpdateBaiduChannelInput) (*UpdateBaiduChannelOutput, error) { + req, out := c.UpdateBaiduChannelRequest(input) + return out, req.Send() +} + +// UpdateBaiduChannelWithContext is the same as UpdateBaiduChannel with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateBaiduChannel for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pinpoint) UpdateBaiduChannelWithContext(ctx aws.Context, input *UpdateBaiduChannelInput, opts ...request.Option) (*UpdateBaiduChannelOutput, error) { + req, out := c.UpdateBaiduChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateCampaign = "UpdateCampaign" // UpdateCampaignRequest generates a "aws/request.Request" representing the @@ -3432,6 +4168,8 @@ const opUpdateCampaign = "UpdateCampaign" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateCampaign func (c *Pinpoint) UpdateCampaignRequest(input *UpdateCampaignInput) (req *request.Request, output *UpdateCampaignOutput) { op := &request.Operation{ Name: opUpdateCampaign, @@ -3472,6 +4210,7 @@ func (c *Pinpoint) UpdateCampaignRequest(input *UpdateCampaignInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateCampaign func (c *Pinpoint) UpdateCampaign(input *UpdateCampaignInput) (*UpdateCampaignOutput, error) { req, out := c.UpdateCampaignRequest(input) return out, req.Send() @@ -3517,6 +4256,8 @@ const opUpdateEmailChannel = "UpdateEmailChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEmailChannel func (c *Pinpoint) UpdateEmailChannelRequest(input *UpdateEmailChannelInput) (req *request.Request, output *UpdateEmailChannelOutput) { op := &request.Operation{ Name: opUpdateEmailChannel, @@ -3557,6 +4298,7 @@ func (c *Pinpoint) UpdateEmailChannelRequest(input *UpdateEmailChannelInput) (re // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEmailChannel func (c *Pinpoint) UpdateEmailChannel(input *UpdateEmailChannelInput) (*UpdateEmailChannelOutput, error) { req, out := c.UpdateEmailChannelRequest(input) return out, req.Send() @@ -3602,6 +4344,8 @@ const opUpdateEndpoint = "UpdateEndpoint" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpoint func (c *Pinpoint) UpdateEndpointRequest(input *UpdateEndpointInput) (req *request.Request, output *UpdateEndpointOutput) { op := &request.Operation{ Name: opUpdateEndpoint, @@ -3642,6 +4386,7 @@ func (c *Pinpoint) UpdateEndpointRequest(input *UpdateEndpointInput) (req *reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpoint func (c *Pinpoint) UpdateEndpoint(input *UpdateEndpointInput) (*UpdateEndpointOutput, error) { req, out := c.UpdateEndpointRequest(input) return out, req.Send() @@ -3687,6 +4432,8 @@ const opUpdateEndpointsBatch = "UpdateEndpointsBatch" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointsBatch func (c *Pinpoint) UpdateEndpointsBatchRequest(input *UpdateEndpointsBatchInput) (req *request.Request, output *UpdateEndpointsBatchOutput) { op := &request.Operation{ Name: opUpdateEndpointsBatch, @@ -3727,6 +4474,7 @@ func (c *Pinpoint) UpdateEndpointsBatchRequest(input *UpdateEndpointsBatchInput) // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointsBatch func (c *Pinpoint) UpdateEndpointsBatch(input *UpdateEndpointsBatchInput) (*UpdateEndpointsBatchOutput, error) { req, out := c.UpdateEndpointsBatchRequest(input) return out, req.Send() @@ -3772,6 +4520,8 @@ const opUpdateGcmChannel = "UpdateGcmChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateGcmChannel func (c *Pinpoint) UpdateGcmChannelRequest(input *UpdateGcmChannelInput) (req *request.Request, output *UpdateGcmChannelOutput) { op := &request.Operation{ Name: opUpdateGcmChannel, @@ -3812,6 +4562,7 @@ func (c *Pinpoint) UpdateGcmChannelRequest(input *UpdateGcmChannelInput) (req *r // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateGcmChannel func (c *Pinpoint) UpdateGcmChannel(input *UpdateGcmChannelInput) (*UpdateGcmChannelOutput, error) { req, out := c.UpdateGcmChannelRequest(input) return out, req.Send() @@ -3857,6 +4608,8 @@ const opUpdateSegment = "UpdateSegment" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSegment func (c *Pinpoint) UpdateSegmentRequest(input *UpdateSegmentInput) (req *request.Request, output *UpdateSegmentOutput) { op := &request.Operation{ Name: opUpdateSegment, @@ -3897,6 +4650,7 @@ func (c *Pinpoint) UpdateSegmentRequest(input *UpdateSegmentInput) (req *request // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSegment func (c *Pinpoint) UpdateSegment(input *UpdateSegmentInput) (*UpdateSegmentOutput, error) { req, out := c.UpdateSegmentRequest(input) return out, req.Send() @@ -3942,6 +4696,8 @@ const opUpdateSmsChannel = "UpdateSmsChannel" // if err == nil { // resp is now filled // fmt.Println(resp) // } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSmsChannel func (c *Pinpoint) UpdateSmsChannelRequest(input *UpdateSmsChannelInput) (req *request.Request, output *UpdateSmsChannelOutput) { op := &request.Operation{ Name: opUpdateSmsChannel, @@ -3982,6 +4738,7 @@ func (c *Pinpoint) UpdateSmsChannelRequest(input *UpdateSmsChannelInput) (req *r // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSmsChannel func (c *Pinpoint) UpdateSmsChannel(input *UpdateSmsChannelInput) (*UpdateSmsChannelOutput, error) { req, out := c.UpdateSmsChannelRequest(input) return out, req.Send() @@ -4003,18 +4760,360 @@ func (c *Pinpoint) UpdateSmsChannelWithContext(ctx aws.Context, input *UpdateSms return out, req.Send() } +// Amazon Device Messaging channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ADMChannelRequest +type ADMChannelRequest struct { + _ struct{} `type:"structure"` + + // Client ID as gotten from Amazon + ClientId *string `type:"string"` + + // Client secret as gotten from Amazon + ClientSecret *string `type:"string"` + + // If the channel is enabled for sending messages. + Enabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s ADMChannelRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ADMChannelRequest) GoString() string { + return s.String() +} + +// SetClientId sets the ClientId field's value. +func (s *ADMChannelRequest) SetClientId(v string) *ADMChannelRequest { + s.ClientId = &v + return s +} + +// SetClientSecret sets the ClientSecret field's value. +func (s *ADMChannelRequest) SetClientSecret(v string) *ADMChannelRequest { + s.ClientSecret = &v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *ADMChannelRequest) SetEnabled(v bool) *ADMChannelRequest { + s.Enabled = &v + return s +} + +// Amazon Device Messaging channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ADMChannelResponse +type ADMChannelResponse struct { + _ struct{} `type:"structure"` + + // Application id + ApplicationId *string `type:"string"` + + // When was this segment created + CreationDate *string `type:"string"` + + // If the channel is enabled for sending messages. + Enabled *bool `type:"boolean"` + + // Channel ID. Not used, only for backwards compatibility. + Id *string `type:"string"` + + // Is this channel archived + IsArchived *bool `type:"boolean"` + + // Who last updated this entry + LastModifiedBy *string `type:"string"` + + // Last date this was updated + LastModifiedDate *string `type:"string"` + + // Platform type. Will be "ADM" + Platform *string `type:"string"` + + // Version of channel + Version *int64 `type:"integer"` +} + +// String returns the string representation +func (s ADMChannelResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ADMChannelResponse) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ADMChannelResponse) SetApplicationId(v string) *ADMChannelResponse { + s.ApplicationId = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *ADMChannelResponse) SetCreationDate(v string) *ADMChannelResponse { + s.CreationDate = &v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *ADMChannelResponse) SetEnabled(v bool) *ADMChannelResponse { + s.Enabled = &v + return s +} + +// SetId sets the Id field's value. +func (s *ADMChannelResponse) SetId(v string) *ADMChannelResponse { + s.Id = &v + return s +} + +// SetIsArchived sets the IsArchived field's value. +func (s *ADMChannelResponse) SetIsArchived(v bool) *ADMChannelResponse { + s.IsArchived = &v + return s +} + +// SetLastModifiedBy sets the LastModifiedBy field's value. +func (s *ADMChannelResponse) SetLastModifiedBy(v string) *ADMChannelResponse { + s.LastModifiedBy = &v + return s +} + +// SetLastModifiedDate sets the LastModifiedDate field's value. +func (s *ADMChannelResponse) SetLastModifiedDate(v string) *ADMChannelResponse { + s.LastModifiedDate = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *ADMChannelResponse) SetPlatform(v string) *ADMChannelResponse { + s.Platform = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *ADMChannelResponse) SetVersion(v int64) *ADMChannelResponse { + s.Version = &v + return s +} + +// ADM Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ADMMessage +type ADMMessage struct { + _ struct{} `type:"structure"` + + // The action that occurs if the user taps a push notification delivered by + // the campaign: OPEN_APP - Your app launches, or it becomes the foreground + // app if it has been sent to the background. This is the default action. DEEP_LINK + // - Uses deep linking features in iOS and Android to open your app and display + // a designated user interface within the app. URL - The default mobile browser + // on the user's device launches and opens a web page at the URL you specify. + // Possible values include: OPEN_APP | DEEP_LINK | URL + Action *string `type:"string" enum:"Action"` + + // The message body of the notification, the email body or the text message. + Body *string `type:"string"` + + // Optional. Arbitrary string used to indicate multiple messages are logically + // the same and that ADM is allowed to drop previously enqueued messages in + // favor of this one. + ConsolidationKey *string `type:"string"` + + Data map[string]*string `type:"map"` + + // Optional. Number of seconds ADM should retain the message if the device is + // offline + ExpiresAfter *string `type:"string"` + + // The icon image name of the asset saved in your application. + IconReference *string `type:"string"` + + // The URL that points to an image used as the large icon to the notification + // content view. + ImageIconUrl *string `type:"string"` + + // The URL that points to an image used in the push notification. + ImageUrl *string `type:"string"` + + // The data payload used for a silent push. This payload is added to the notifications' + // data.pinpoint.jsonBody' object + JsonData *string `type:"string"` + + // Optional. Base-64-encoded MD5 checksum of the data parameter. Used to verify + // data integrity + MD5 *string `type:"string"` + + // The Raw JSON formatted string to be used as the payload. This value overrides + // the message. + RawContent *string `type:"string"` + + // Indicates if the message should display on the users device. Silent pushes + // can be used for Remote Configuration and Phone Home use cases. + SilentPush *bool `type:"boolean"` + + // The URL that points to an image used as the small icon for the notification + // which will be used to represent the notification in the status bar and content + // view + SmallImageIconUrl *string `type:"string"` + + // Indicates a sound to play when the device receives the notification. Supports + // default, or the filename of a sound resource bundled in the app. Android + // sound files must reside in /res/raw/ + Sound *string `type:"string"` + + Substitutions map[string][]*string `type:"map"` + + // The message title that displays above the message on the user's device. + Title *string `type:"string"` + + // The URL to open in the user's mobile browser. Used if the value for Action + // is URL. + Url *string `type:"string"` +} + +// String returns the string representation +func (s ADMMessage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ADMMessage) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *ADMMessage) SetAction(v string) *ADMMessage { + s.Action = &v + return s +} + +// SetBody sets the Body field's value. +func (s *ADMMessage) SetBody(v string) *ADMMessage { + s.Body = &v + return s +} + +// SetConsolidationKey sets the ConsolidationKey field's value. +func (s *ADMMessage) SetConsolidationKey(v string) *ADMMessage { + s.ConsolidationKey = &v + return s +} + +// SetData sets the Data field's value. +func (s *ADMMessage) SetData(v map[string]*string) *ADMMessage { + s.Data = v + return s +} + +// SetExpiresAfter sets the ExpiresAfter field's value. +func (s *ADMMessage) SetExpiresAfter(v string) *ADMMessage { + s.ExpiresAfter = &v + return s +} + +// SetIconReference sets the IconReference field's value. +func (s *ADMMessage) SetIconReference(v string) *ADMMessage { + s.IconReference = &v + return s +} + +// SetImageIconUrl sets the ImageIconUrl field's value. +func (s *ADMMessage) SetImageIconUrl(v string) *ADMMessage { + s.ImageIconUrl = &v + return s +} + +// SetImageUrl sets the ImageUrl field's value. +func (s *ADMMessage) SetImageUrl(v string) *ADMMessage { + s.ImageUrl = &v + return s +} + +// SetJsonData sets the JsonData field's value. +func (s *ADMMessage) SetJsonData(v string) *ADMMessage { + s.JsonData = &v + return s +} + +// SetMD5 sets the MD5 field's value. +func (s *ADMMessage) SetMD5(v string) *ADMMessage { + s.MD5 = &v + return s +} + +// SetRawContent sets the RawContent field's value. +func (s *ADMMessage) SetRawContent(v string) *ADMMessage { + s.RawContent = &v + return s +} + +// SetSilentPush sets the SilentPush field's value. +func (s *ADMMessage) SetSilentPush(v bool) *ADMMessage { + s.SilentPush = &v + return s +} + +// SetSmallImageIconUrl sets the SmallImageIconUrl field's value. +func (s *ADMMessage) SetSmallImageIconUrl(v string) *ADMMessage { + s.SmallImageIconUrl = &v + return s +} + +// SetSound sets the Sound field's value. +func (s *ADMMessage) SetSound(v string) *ADMMessage { + s.Sound = &v + return s +} + +// SetSubstitutions sets the Substitutions field's value. +func (s *ADMMessage) SetSubstitutions(v map[string][]*string) *ADMMessage { + s.Substitutions = v + return s +} + +// SetTitle sets the Title field's value. +func (s *ADMMessage) SetTitle(v string) *ADMMessage { + s.Title = &v + return s +} + +// SetUrl sets the Url field's value. +func (s *ADMMessage) SetUrl(v string) *ADMMessage { + s.Url = &v + return s +} + // Apple Push Notification Service channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSChannelRequest type APNSChannelRequest struct { _ struct{} `type:"structure"` + // The bundle id used for APNs Tokens. + BundleId *string `type:"string"` + // The distribution certificate from Apple. Certificate *string `type:"string"` + // The default authentication method used for APNs. + DefaultAuthenticationMethod *string `type:"string"` + // If the channel is enabled for sending messages. Enabled *bool `type:"boolean"` // The certificate private key. PrivateKey *string `type:"string"` + + // The team id used for APNs Tokens. + TeamId *string `type:"string"` + + // The token key used for APNs Tokens. + TokenKey *string `type:"string"` + + // The token key used for APNs Tokens. + TokenKeyId *string `type:"string"` } // String returns the string representation @@ -4027,12 +5126,24 @@ func (s APNSChannelRequest) GoString() string { return s.String() } +// SetBundleId sets the BundleId field's value. +func (s *APNSChannelRequest) SetBundleId(v string) *APNSChannelRequest { + s.BundleId = &v + return s +} + // SetCertificate sets the Certificate field's value. func (s *APNSChannelRequest) SetCertificate(v string) *APNSChannelRequest { s.Certificate = &v return s } +// SetDefaultAuthenticationMethod sets the DefaultAuthenticationMethod field's value. +func (s *APNSChannelRequest) SetDefaultAuthenticationMethod(v string) *APNSChannelRequest { + s.DefaultAuthenticationMethod = &v + return s +} + // SetEnabled sets the Enabled field's value. func (s *APNSChannelRequest) SetEnabled(v bool) *APNSChannelRequest { s.Enabled = &v @@ -4045,7 +5156,26 @@ func (s *APNSChannelRequest) SetPrivateKey(v string) *APNSChannelRequest { return s } +// SetTeamId sets the TeamId field's value. +func (s *APNSChannelRequest) SetTeamId(v string) *APNSChannelRequest { + s.TeamId = &v + return s +} + +// SetTokenKey sets the TokenKey field's value. +func (s *APNSChannelRequest) SetTokenKey(v string) *APNSChannelRequest { + s.TokenKey = &v + return s +} + +// SetTokenKeyId sets the TokenKeyId field's value. +func (s *APNSChannelRequest) SetTokenKeyId(v string) *APNSChannelRequest { + s.TokenKeyId = &v + return s +} + // Apple Distribution Push Notification Service channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSChannelResponse type APNSChannelResponse struct { _ struct{} `type:"structure"` @@ -4142,6 +5272,7 @@ func (s *APNSChannelResponse) SetVersion(v int64) *APNSChannelResponse { } // APNS Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSMessage type APNSMessage struct { _ struct{} `type:"structure"` @@ -4169,9 +5300,16 @@ type APNSMessage struct { Data map[string]*string `type:"map"` + // The data payload used for a silent push. This payload is added to the notifications' + // data.pinpoint.jsonBody' object + JsonData *string `type:"string"` + // The URL that points to a video used in the push notification. MediaUrl *string `type:"string"` + // The preferred authentication method, either "CERTIFICATE" or "TOKEN" + PreferredAuthenticationMethod *string `type:"string"` + // The Raw JSON formatted string to be used as the payload. This value overrides // the message. RawContent *string `type:"string"` @@ -4241,12 +5379,24 @@ func (s *APNSMessage) SetData(v map[string]*string) *APNSMessage { return s } +// SetJsonData sets the JsonData field's value. +func (s *APNSMessage) SetJsonData(v string) *APNSMessage { + s.JsonData = &v + return s +} + // SetMediaUrl sets the MediaUrl field's value. func (s *APNSMessage) SetMediaUrl(v string) *APNSMessage { s.MediaUrl = &v return s } +// SetPreferredAuthenticationMethod sets the PreferredAuthenticationMethod field's value. +func (s *APNSMessage) SetPreferredAuthenticationMethod(v string) *APNSMessage { + s.PreferredAuthenticationMethod = &v + return s +} + // SetRawContent sets the RawContent field's value. func (s *APNSMessage) SetRawContent(v string) *APNSMessage { s.RawContent = &v @@ -4290,17 +5440,33 @@ func (s *APNSMessage) SetUrl(v string) *APNSMessage { } // Apple Development Push Notification Service channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSSandboxChannelRequest type APNSSandboxChannelRequest struct { _ struct{} `type:"structure"` + // The bundle id used for APNs Tokens. + BundleId *string `type:"string"` + // The distribution certificate from Apple. Certificate *string `type:"string"` + // The default authentication method used for APNs. + DefaultAuthenticationMethod *string `type:"string"` + // If the channel is enabled for sending messages. Enabled *bool `type:"boolean"` // The certificate private key. PrivateKey *string `type:"string"` + + // The team id used for APNs Tokens. + TeamId *string `type:"string"` + + // The token key used for APNs Tokens. + TokenKey *string `type:"string"` + + // The token key used for APNs Tokens. + TokenKeyId *string `type:"string"` } // String returns the string representation @@ -4313,12 +5479,24 @@ func (s APNSSandboxChannelRequest) GoString() string { return s.String() } +// SetBundleId sets the BundleId field's value. +func (s *APNSSandboxChannelRequest) SetBundleId(v string) *APNSSandboxChannelRequest { + s.BundleId = &v + return s +} + // SetCertificate sets the Certificate field's value. func (s *APNSSandboxChannelRequest) SetCertificate(v string) *APNSSandboxChannelRequest { s.Certificate = &v return s } +// SetDefaultAuthenticationMethod sets the DefaultAuthenticationMethod field's value. +func (s *APNSSandboxChannelRequest) SetDefaultAuthenticationMethod(v string) *APNSSandboxChannelRequest { + s.DefaultAuthenticationMethod = &v + return s +} + // SetEnabled sets the Enabled field's value. func (s *APNSSandboxChannelRequest) SetEnabled(v bool) *APNSSandboxChannelRequest { s.Enabled = &v @@ -4331,7 +5509,26 @@ func (s *APNSSandboxChannelRequest) SetPrivateKey(v string) *APNSSandboxChannelR return s } +// SetTeamId sets the TeamId field's value. +func (s *APNSSandboxChannelRequest) SetTeamId(v string) *APNSSandboxChannelRequest { + s.TeamId = &v + return s +} + +// SetTokenKey sets the TokenKey field's value. +func (s *APNSSandboxChannelRequest) SetTokenKey(v string) *APNSSandboxChannelRequest { + s.TokenKey = &v + return s +} + +// SetTokenKeyId sets the TokenKeyId field's value. +func (s *APNSSandboxChannelRequest) SetTokenKeyId(v string) *APNSSandboxChannelRequest { + s.TokenKeyId = &v + return s +} + // Apple Development Push Notification Service channel definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSSandboxChannelResponse type APNSSandboxChannelResponse struct { _ struct{} `type:"structure"` @@ -4428,6 +5625,7 @@ func (s *APNSSandboxChannelResponse) SetVersion(v int64) *APNSSandboxChannelResp } // Activities for campaign. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ActivitiesResponse type ActivitiesResponse struct { _ struct{} `type:"structure"` @@ -4452,6 +5650,7 @@ func (s *ActivitiesResponse) SetItem(v []*ActivityResponse) *ActivitiesResponse } // Activity definition +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ActivityResponse type ActivityResponse struct { _ struct{} `type:"structure"` @@ -4587,6 +5786,7 @@ func (s *ActivityResponse) SetTreatmentId(v string) *ActivityResponse { } // Address configuration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/AddressConfiguration type AddressConfiguration struct { _ struct{} `type:"structure"` @@ -4655,6 +5855,7 @@ func (s *AddressConfiguration) SetTitleOverride(v string) *AddressConfiguration } // Application Response. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ApplicationResponse type ApplicationResponse struct { _ struct{} `type:"structure"` @@ -4688,6 +5889,7 @@ func (s *ApplicationResponse) SetName(v string) *ApplicationResponse { } // Application settings. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ApplicationSettingsResource type ApplicationSettingsResource struct { _ struct{} `type:"structure"` @@ -4743,6 +5945,7 @@ func (s *ApplicationSettingsResource) SetQuietTime(v *QuietTime) *ApplicationSet } // Get Applications Result. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ApplicationsResponse type ApplicationsResponse struct { _ struct{} `type:"structure"` @@ -4777,6 +5980,7 @@ func (s *ApplicationsResponse) SetNextToken(v string) *ApplicationsResponse { } // Custom attibute dimension +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/AttributeDimension type AttributeDimension struct { _ struct{} `type:"structure"` @@ -4810,7 +6014,312 @@ func (s *AttributeDimension) SetValues(v []*string) *AttributeDimension { return s } +// Baidu Cloud Push credentials +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/BaiduChannelRequest +type BaiduChannelRequest struct { + _ struct{} `type:"structure"` + + // Platform credential API key from Baidu. + ApiKey *string `type:"string"` + + // If the channel is enabled for sending messages. + Enabled *bool `type:"boolean"` + + // Platform credential Secret key from Baidu. + SecretKey *string `type:"string"` +} + +// String returns the string representation +func (s BaiduChannelRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BaiduChannelRequest) GoString() string { + return s.String() +} + +// SetApiKey sets the ApiKey field's value. +func (s *BaiduChannelRequest) SetApiKey(v string) *BaiduChannelRequest { + s.ApiKey = &v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *BaiduChannelRequest) SetEnabled(v bool) *BaiduChannelRequest { + s.Enabled = &v + return s +} + +// SetSecretKey sets the SecretKey field's value. +func (s *BaiduChannelRequest) SetSecretKey(v string) *BaiduChannelRequest { + s.SecretKey = &v + return s +} + +// Baidu Cloud Messaging channel definition +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/BaiduChannelResponse +type BaiduChannelResponse struct { + _ struct{} `type:"structure"` + + // Application id + ApplicationId *string `type:"string"` + + // When was this segment created + CreationDate *string `type:"string"` + + // The Baidu API key from Baidu. + Credential *string `type:"string"` + + // If the channel is enabled for sending messages. + Enabled *bool `type:"boolean"` + + // Channel ID. Not used, only for backwards compatibility. + Id *string `type:"string"` + + // Is this channel archived + IsArchived *bool `type:"boolean"` + + // Who made the last change + LastModifiedBy *string `type:"string"` + + // Last date this was updated + LastModifiedDate *string `type:"string"` + + // The platform type. Will be BAIDU + Platform *string `type:"string"` + + // Version of channel + Version *int64 `type:"integer"` +} + +// String returns the string representation +func (s BaiduChannelResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BaiduChannelResponse) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *BaiduChannelResponse) SetApplicationId(v string) *BaiduChannelResponse { + s.ApplicationId = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *BaiduChannelResponse) SetCreationDate(v string) *BaiduChannelResponse { + s.CreationDate = &v + return s +} + +// SetCredential sets the Credential field's value. +func (s *BaiduChannelResponse) SetCredential(v string) *BaiduChannelResponse { + s.Credential = &v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *BaiduChannelResponse) SetEnabled(v bool) *BaiduChannelResponse { + s.Enabled = &v + return s +} + +// SetId sets the Id field's value. +func (s *BaiduChannelResponse) SetId(v string) *BaiduChannelResponse { + s.Id = &v + return s +} + +// SetIsArchived sets the IsArchived field's value. +func (s *BaiduChannelResponse) SetIsArchived(v bool) *BaiduChannelResponse { + s.IsArchived = &v + return s +} + +// SetLastModifiedBy sets the LastModifiedBy field's value. +func (s *BaiduChannelResponse) SetLastModifiedBy(v string) *BaiduChannelResponse { + s.LastModifiedBy = &v + return s +} + +// SetLastModifiedDate sets the LastModifiedDate field's value. +func (s *BaiduChannelResponse) SetLastModifiedDate(v string) *BaiduChannelResponse { + s.LastModifiedDate = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *BaiduChannelResponse) SetPlatform(v string) *BaiduChannelResponse { + s.Platform = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *BaiduChannelResponse) SetVersion(v int64) *BaiduChannelResponse { + s.Version = &v + return s +} + +// Baidu Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/BaiduMessage +type BaiduMessage struct { + _ struct{} `type:"structure"` + + // The action that occurs if the user taps a push notification delivered by + // the campaign: OPEN_APP - Your app launches, or it becomes the foreground + // app if it has been sent to the background. This is the default action. DEEP_LINK + // - Uses deep linking features in iOS and Android to open your app and display + // a designated user interface within the app. URL - The default mobile browser + // on the user's device launches and opens a web page at the URL you specify. + // Possible values include: OPEN_APP | DEEP_LINK | URL + Action *string `type:"string" enum:"Action"` + + // The message body of the notification, the email body or the text message. + Body *string `type:"string"` + + Data map[string]*string `type:"map"` + + // The icon image name of the asset saved in your application. + IconReference *string `type:"string"` + + // The URL that points to an image used as the large icon to the notification + // content view. + ImageIconUrl *string `type:"string"` + + // The URL that points to an image used in the push notification. + ImageUrl *string `type:"string"` + + // The data payload used for a silent push. This payload is added to the notifications' + // data.pinpoint.jsonBody' object + JsonData *string `type:"string"` + + // The Raw JSON formatted string to be used as the payload. This value overrides + // the message. + RawContent *string `type:"string"` + + // Indicates if the message should display on the users device. Silent pushes + // can be used for Remote Configuration and Phone Home use cases. + SilentPush *bool `type:"boolean"` + + // The URL that points to an image used as the small icon for the notification + // which will be used to represent the notification in the status bar and content + // view + SmallImageIconUrl *string `type:"string"` + + // Indicates a sound to play when the device receives the notification. Supports + // default, or the filename of a sound resource bundled in the app. Android + // sound files must reside in /res/raw/ + Sound *string `type:"string"` + + Substitutions map[string][]*string `type:"map"` + + // The message title that displays above the message on the user's device. + Title *string `type:"string"` + + // The URL to open in the user's mobile browser. Used if the value for Action + // is URL. + Url *string `type:"string"` +} + +// String returns the string representation +func (s BaiduMessage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BaiduMessage) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *BaiduMessage) SetAction(v string) *BaiduMessage { + s.Action = &v + return s +} + +// SetBody sets the Body field's value. +func (s *BaiduMessage) SetBody(v string) *BaiduMessage { + s.Body = &v + return s +} + +// SetData sets the Data field's value. +func (s *BaiduMessage) SetData(v map[string]*string) *BaiduMessage { + s.Data = v + return s +} + +// SetIconReference sets the IconReference field's value. +func (s *BaiduMessage) SetIconReference(v string) *BaiduMessage { + s.IconReference = &v + return s +} + +// SetImageIconUrl sets the ImageIconUrl field's value. +func (s *BaiduMessage) SetImageIconUrl(v string) *BaiduMessage { + s.ImageIconUrl = &v + return s +} + +// SetImageUrl sets the ImageUrl field's value. +func (s *BaiduMessage) SetImageUrl(v string) *BaiduMessage { + s.ImageUrl = &v + return s +} + +// SetJsonData sets the JsonData field's value. +func (s *BaiduMessage) SetJsonData(v string) *BaiduMessage { + s.JsonData = &v + return s +} + +// SetRawContent sets the RawContent field's value. +func (s *BaiduMessage) SetRawContent(v string) *BaiduMessage { + s.RawContent = &v + return s +} + +// SetSilentPush sets the SilentPush field's value. +func (s *BaiduMessage) SetSilentPush(v bool) *BaiduMessage { + s.SilentPush = &v + return s +} + +// SetSmallImageIconUrl sets the SmallImageIconUrl field's value. +func (s *BaiduMessage) SetSmallImageIconUrl(v string) *BaiduMessage { + s.SmallImageIconUrl = &v + return s +} + +// SetSound sets the Sound field's value. +func (s *BaiduMessage) SetSound(v string) *BaiduMessage { + s.Sound = &v + return s +} + +// SetSubstitutions sets the Substitutions field's value. +func (s *BaiduMessage) SetSubstitutions(v map[string][]*string) *BaiduMessage { + s.Substitutions = v + return s +} + +// SetTitle sets the Title field's value. +func (s *BaiduMessage) SetTitle(v string) *BaiduMessage { + s.Title = &v + return s +} + +// SetUrl sets the Url field's value. +func (s *BaiduMessage) SetUrl(v string) *BaiduMessage { + s.Url = &v + return s +} + // The email message configuration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignEmailMessage type CampaignEmailMessage struct { _ struct{} `type:"structure"` @@ -4864,12 +6373,21 @@ func (s *CampaignEmailMessage) SetTitle(v string) *CampaignEmailMessage { // Campaign Limits are used to limit the number of messages that can be sent // to a user. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignLimits type CampaignLimits struct { _ struct{} `type:"structure"` // The maximum number of messages that the campaign can send daily. Daily *int64 `type:"integer"` + // The maximum duration of a campaign from the scheduled start. Must be a minimum + // of 60 seconds. + MaximumDuration *int64 `type:"integer"` + + // The maximum number of messages per second that the campaign will send. This + // is a best effort maximum cap and can go as high as 20000 and as low as 50 + MessagesPerSecond *int64 `type:"integer"` + // The maximum total number of messages that the campaign can send. Total *int64 `type:"integer"` } @@ -4890,6 +6408,18 @@ func (s *CampaignLimits) SetDaily(v int64) *CampaignLimits { return s } +// SetMaximumDuration sets the MaximumDuration field's value. +func (s *CampaignLimits) SetMaximumDuration(v int64) *CampaignLimits { + s.MaximumDuration = &v + return s +} + +// SetMessagesPerSecond sets the MessagesPerSecond field's value. +func (s *CampaignLimits) SetMessagesPerSecond(v int64) *CampaignLimits { + s.MessagesPerSecond = &v + return s +} + // SetTotal sets the Total field's value. func (s *CampaignLimits) SetTotal(v int64) *CampaignLimits { s.Total = &v @@ -4897,6 +6427,7 @@ func (s *CampaignLimits) SetTotal(v int64) *CampaignLimits { } // Campaign definition +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignResponse type CampaignResponse struct { _ struct{} `type:"structure"` @@ -5087,6 +6618,7 @@ func (s *CampaignResponse) SetVersion(v int64) *CampaignResponse { } // SMS message configuration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignSmsMessage type CampaignSmsMessage struct { _ struct{} `type:"structure"` @@ -5129,6 +6661,7 @@ func (s *CampaignSmsMessage) SetSenderId(v string) *CampaignSmsMessage { } // State of the Campaign +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignState type CampaignState struct { _ struct{} `type:"structure"` @@ -5155,6 +6688,7 @@ func (s *CampaignState) SetCampaignStatus(v string) *CampaignState { } // List of available campaigns. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignsResponse type CampaignsResponse struct { _ struct{} `type:"structure"` @@ -5188,6 +6722,7 @@ func (s *CampaignsResponse) SetNextToken(v string) *CampaignsResponse { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateAppRequest type CreateAppInput struct { _ struct{} `type:"structure" payload:"CreateApplicationRequest"` @@ -5226,6 +6761,7 @@ func (s *CreateAppInput) SetCreateApplicationRequest(v *CreateApplicationRequest return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateAppResponse type CreateAppOutput struct { _ struct{} `type:"structure" payload:"ApplicationResponse"` @@ -5252,6 +6788,7 @@ func (s *CreateAppOutput) SetApplicationResponse(v *ApplicationResponse) *Create } // Application Request. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateApplicationRequest type CreateApplicationRequest struct { _ struct{} `type:"structure"` @@ -5275,6 +6812,7 @@ func (s *CreateApplicationRequest) SetName(v string) *CreateApplicationRequest { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateCampaignRequest type CreateCampaignInput struct { _ struct{} `type:"structure" payload:"WriteCampaignRequest"` @@ -5325,6 +6863,7 @@ func (s *CreateCampaignInput) SetWriteCampaignRequest(v *WriteCampaignRequest) * return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateCampaignResponse type CreateCampaignOutput struct { _ struct{} `type:"structure" payload:"CampaignResponse"` @@ -5350,6 +6889,7 @@ func (s *CreateCampaignOutput) SetCampaignResponse(v *CampaignResponse) *CreateC return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateImportJobRequest type CreateImportJobInput struct { _ struct{} `type:"structure" payload:"ImportJobRequest"` @@ -5398,6 +6938,7 @@ func (s *CreateImportJobInput) SetImportJobRequest(v *ImportJobRequest) *CreateI return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateImportJobResponse type CreateImportJobOutput struct { _ struct{} `type:"structure" payload:"ImportJobResponse"` @@ -5421,6 +6962,7 @@ func (s *CreateImportJobOutput) SetImportJobResponse(v *ImportJobResponse) *Crea return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateSegmentRequest type CreateSegmentInput struct { _ struct{} `type:"structure" payload:"WriteSegmentRequest"` @@ -5471,6 +7013,7 @@ func (s *CreateSegmentInput) SetWriteSegmentRequest(v *WriteSegmentRequest) *Cre return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CreateSegmentResponse type CreateSegmentOutput struct { _ struct{} `type:"structure" payload:"SegmentResponse"` @@ -5497,6 +7040,7 @@ func (s *CreateSegmentOutput) SetSegmentResponse(v *SegmentResponse) *CreateSegm } // Default Message across push notification, email, and sms. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DefaultMessage type DefaultMessage struct { _ struct{} `type:"structure"` @@ -5529,6 +7073,7 @@ func (s *DefaultMessage) SetSubstitutions(v map[string][]*string) *DefaultMessag } // Default Push Notification Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DefaultPushNotificationMessage type DefaultPushNotificationMessage struct { _ struct{} `type:"structure"` @@ -5546,6 +7091,10 @@ type DefaultPushNotificationMessage struct { Data map[string]*string `type:"map"` + // The data payload used for a silent push. This payload is added to the notifications' + // data.pinpoint.jsonBody' object + JsonData *string `type:"string"` + // Indicates if the message should display on the users device. Silent pushes // can be used for Remote Configuration and Phone Home use cases. SilentPush *bool `type:"boolean"` @@ -5588,6 +7137,12 @@ func (s *DefaultPushNotificationMessage) SetData(v map[string]*string) *DefaultP return s } +// SetJsonData sets the JsonData field's value. +func (s *DefaultPushNotificationMessage) SetJsonData(v string) *DefaultPushNotificationMessage { + s.JsonData = &v + return s +} + // SetSilentPush sets the SilentPush field's value. func (s *DefaultPushNotificationMessage) SetSilentPush(v bool) *DefaultPushNotificationMessage { s.SilentPush = &v @@ -5612,6 +7167,70 @@ func (s *DefaultPushNotificationMessage) SetUrl(v string) *DefaultPushNotificati return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAdmChannelRequest +type DeleteAdmChannelInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAdmChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAdmChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAdmChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAdmChannelInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteAdmChannelInput) SetApplicationId(v string) *DeleteAdmChannelInput { + s.ApplicationId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAdmChannelResponse +type DeleteAdmChannelOutput struct { + _ struct{} `type:"structure" payload:"ADMChannelResponse"` + + // Amazon Device Messaging channel definition. + // + // ADMChannelResponse is a required field + ADMChannelResponse *ADMChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s DeleteAdmChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAdmChannelOutput) GoString() string { + return s.String() +} + +// SetADMChannelResponse sets the ADMChannelResponse field's value. +func (s *DeleteAdmChannelOutput) SetADMChannelResponse(v *ADMChannelResponse) *DeleteAdmChannelOutput { + s.ADMChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsChannelRequest type DeleteApnsChannelInput struct { _ struct{} `type:"structure"` @@ -5648,6 +7267,7 @@ func (s *DeleteApnsChannelInput) SetApplicationId(v string) *DeleteApnsChannelIn return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsChannelResponse type DeleteApnsChannelOutput struct { _ struct{} `type:"structure" payload:"APNSChannelResponse"` @@ -5673,6 +7293,7 @@ func (s *DeleteApnsChannelOutput) SetAPNSChannelResponse(v *APNSChannelResponse) return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsSandboxChannelRequest type DeleteApnsSandboxChannelInput struct { _ struct{} `type:"structure"` @@ -5709,6 +7330,7 @@ func (s *DeleteApnsSandboxChannelInput) SetApplicationId(v string) *DeleteApnsSa return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteApnsSandboxChannelResponse type DeleteApnsSandboxChannelOutput struct { _ struct{} `type:"structure" payload:"APNSSandboxChannelResponse"` @@ -5734,6 +7356,7 @@ func (s *DeleteApnsSandboxChannelOutput) SetAPNSSandboxChannelResponse(v *APNSSa return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAppRequest type DeleteAppInput struct { _ struct{} `type:"structure"` @@ -5770,6 +7393,7 @@ func (s *DeleteAppInput) SetApplicationId(v string) *DeleteAppInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteAppResponse type DeleteAppOutput struct { _ struct{} `type:"structure" payload:"ApplicationResponse"` @@ -5795,6 +7419,70 @@ func (s *DeleteAppOutput) SetApplicationResponse(v *ApplicationResponse) *Delete return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteBaiduChannelRequest +type DeleteBaiduChannelInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBaiduChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBaiduChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBaiduChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBaiduChannelInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteBaiduChannelInput) SetApplicationId(v string) *DeleteBaiduChannelInput { + s.ApplicationId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteBaiduChannelResponse +type DeleteBaiduChannelOutput struct { + _ struct{} `type:"structure" payload:"BaiduChannelResponse"` + + // Baidu Cloud Messaging channel definition + // + // BaiduChannelResponse is a required field + BaiduChannelResponse *BaiduChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s DeleteBaiduChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBaiduChannelOutput) GoString() string { + return s.String() +} + +// SetBaiduChannelResponse sets the BaiduChannelResponse field's value. +func (s *DeleteBaiduChannelOutput) SetBaiduChannelResponse(v *BaiduChannelResponse) *DeleteBaiduChannelOutput { + s.BaiduChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteCampaignRequest type DeleteCampaignInput struct { _ struct{} `type:"structure"` @@ -5843,6 +7531,7 @@ func (s *DeleteCampaignInput) SetCampaignId(v string) *DeleteCampaignInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteCampaignResponse type DeleteCampaignOutput struct { _ struct{} `type:"structure" payload:"CampaignResponse"` @@ -5868,6 +7557,7 @@ func (s *DeleteCampaignOutput) SetCampaignResponse(v *CampaignResponse) *DeleteC return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEmailChannelRequest type DeleteEmailChannelInput struct { _ struct{} `type:"structure"` @@ -5904,6 +7594,7 @@ func (s *DeleteEmailChannelInput) SetApplicationId(v string) *DeleteEmailChannel return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEmailChannelResponse type DeleteEmailChannelOutput struct { _ struct{} `type:"structure" payload:"EmailChannelResponse"` @@ -5929,11 +7620,10 @@ func (s *DeleteEmailChannelOutput) SetEmailChannelResponse(v *EmailChannelRespon return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEventStreamRequest type DeleteEventStreamInput struct { _ struct{} `type:"structure"` - // Application Id. - // // ApplicationId is a required field ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` } @@ -5967,6 +7657,7 @@ func (s *DeleteEventStreamInput) SetApplicationId(v string) *DeleteEventStreamIn return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteEventStreamResponse type DeleteEventStreamOutput struct { _ struct{} `type:"structure" payload:"EventStream"` @@ -5992,6 +7683,7 @@ func (s *DeleteEventStreamOutput) SetEventStream(v *EventStream) *DeleteEventStr return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteGcmChannelRequest type DeleteGcmChannelInput struct { _ struct{} `type:"structure"` @@ -6028,6 +7720,7 @@ func (s *DeleteGcmChannelInput) SetApplicationId(v string) *DeleteGcmChannelInpu return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteGcmChannelResponse type DeleteGcmChannelOutput struct { _ struct{} `type:"structure" payload:"GCMChannelResponse"` @@ -6053,6 +7746,7 @@ func (s *DeleteGcmChannelOutput) SetGCMChannelResponse(v *GCMChannelResponse) *D return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSegmentRequest type DeleteSegmentInput struct { _ struct{} `type:"structure"` @@ -6101,6 +7795,7 @@ func (s *DeleteSegmentInput) SetSegmentId(v string) *DeleteSegmentInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSegmentResponse type DeleteSegmentOutput struct { _ struct{} `type:"structure" payload:"SegmentResponse"` @@ -6126,6 +7821,7 @@ func (s *DeleteSegmentOutput) SetSegmentResponse(v *SegmentResponse) *DeleteSegm return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSmsChannelRequest type DeleteSmsChannelInput struct { _ struct{} `type:"structure"` @@ -6162,6 +7858,7 @@ func (s *DeleteSmsChannelInput) SetApplicationId(v string) *DeleteSmsChannelInpu return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DeleteSmsChannelResponse type DeleteSmsChannelOutput struct { _ struct{} `type:"structure" payload:"SMSChannelResponse"` @@ -6188,18 +7885,29 @@ func (s *DeleteSmsChannelOutput) SetSMSChannelResponse(v *SMSChannelResponse) *D } // The message configuration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/DirectMessageConfiguration type DirectMessageConfiguration struct { _ struct{} `type:"structure"` + // The message to ADM channels. Overrides the default push notification message. + ADMMessage *ADMMessage `type:"structure"` + // The message to APNS channels. Overrides the default push notification message. APNSMessage *APNSMessage `type:"structure"` + // The message to Baidu GCM channels. Overrides the default push notification + // message. + BaiduMessage *BaiduMessage `type:"structure"` + // The default message for all channels. DefaultMessage *DefaultMessage `type:"structure"` // The default push notification message for all push channels. DefaultPushNotificationMessage *DefaultPushNotificationMessage `type:"structure"` + // The message to Email channels. Overrides the default message. + EmailMessage *EmailMessage `type:"structure"` + // The message to GCM channels. Overrides the default push notification message. GCMMessage *GCMMessage `type:"structure"` @@ -6217,12 +7925,24 @@ func (s DirectMessageConfiguration) GoString() string { return s.String() } +// SetADMMessage sets the ADMMessage field's value. +func (s *DirectMessageConfiguration) SetADMMessage(v *ADMMessage) *DirectMessageConfiguration { + s.ADMMessage = v + return s +} + // SetAPNSMessage sets the APNSMessage field's value. func (s *DirectMessageConfiguration) SetAPNSMessage(v *APNSMessage) *DirectMessageConfiguration { s.APNSMessage = v return s } +// SetBaiduMessage sets the BaiduMessage field's value. +func (s *DirectMessageConfiguration) SetBaiduMessage(v *BaiduMessage) *DirectMessageConfiguration { + s.BaiduMessage = v + return s +} + // SetDefaultMessage sets the DefaultMessage field's value. func (s *DirectMessageConfiguration) SetDefaultMessage(v *DefaultMessage) *DirectMessageConfiguration { s.DefaultMessage = v @@ -6235,6 +7955,12 @@ func (s *DirectMessageConfiguration) SetDefaultPushNotificationMessage(v *Defaul return s } +// SetEmailMessage sets the EmailMessage field's value. +func (s *DirectMessageConfiguration) SetEmailMessage(v *EmailMessage) *DirectMessageConfiguration { + s.EmailMessage = v + return s +} + // SetGCMMessage sets the GCMMessage field's value. func (s *DirectMessageConfiguration) SetGCMMessage(v *GCMMessage) *DirectMessageConfiguration { s.GCMMessage = v @@ -6248,6 +7974,7 @@ func (s *DirectMessageConfiguration) SetSMSMessage(v *SMSMessage) *DirectMessage } // Email Channel Request +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EmailChannelRequest type EmailChannelRequest struct { _ struct{} `type:"structure"` @@ -6300,6 +8027,7 @@ func (s *EmailChannelRequest) SetRoleArn(v string) *EmailChannelRequest { } // Email Channel Response. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EmailChannelResponse type EmailChannelResponse struct { _ struct{} `type:"structure"` @@ -6423,7 +8151,78 @@ func (s *EmailChannelResponse) SetVersion(v int64) *EmailChannelResponse { return s } +// Email Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EmailMessage +type EmailMessage struct { + _ struct{} `type:"structure"` + + // The message body of the notification, the email body or the text message. + Body *string `type:"string"` + + // The email address used to send the email from. Defaults to use FromAddress + // specified in the Email Channel. + FromAddress *string `type:"string"` + + // The HTML part of the email. + HtmlBody *string `type:"string"` + + Substitutions map[string][]*string `type:"map"` + + // The ARN of the template to use for the email. + TemplateArn *string `type:"string"` + + // The subject of the email. + Title *string `type:"string"` +} + +// String returns the string representation +func (s EmailMessage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EmailMessage) GoString() string { + return s.String() +} + +// SetBody sets the Body field's value. +func (s *EmailMessage) SetBody(v string) *EmailMessage { + s.Body = &v + return s +} + +// SetFromAddress sets the FromAddress field's value. +func (s *EmailMessage) SetFromAddress(v string) *EmailMessage { + s.FromAddress = &v + return s +} + +// SetHtmlBody sets the HtmlBody field's value. +func (s *EmailMessage) SetHtmlBody(v string) *EmailMessage { + s.HtmlBody = &v + return s +} + +// SetSubstitutions sets the Substitutions field's value. +func (s *EmailMessage) SetSubstitutions(v map[string][]*string) *EmailMessage { + s.Substitutions = v + return s +} + +// SetTemplateArn sets the TemplateArn field's value. +func (s *EmailMessage) SetTemplateArn(v string) *EmailMessage { + s.TemplateArn = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *EmailMessage) SetTitle(v string) *EmailMessage { + s.Title = &v + return s +} + // Endpoint update request +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointBatchItem type EndpointBatchItem struct { _ struct{} `type:"structure"` @@ -6549,6 +8348,7 @@ func (s *EndpointBatchItem) SetUser(v *EndpointUser) *EndpointBatchItem { } // Endpoint batch update request. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointBatchRequest type EndpointBatchRequest struct { _ struct{} `type:"structure"` @@ -6573,6 +8373,7 @@ func (s *EndpointBatchRequest) SetItem(v []*EndpointBatchItem) *EndpointBatchReq } // Endpoint demographic data +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointDemographic type EndpointDemographic struct { _ struct{} `type:"structure"` @@ -6661,6 +8462,7 @@ func (s *EndpointDemographic) SetTimezone(v string) *EndpointDemographic { } // Endpoint location data +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointLocation type EndpointLocation struct { _ struct{} `type:"structure"` @@ -6732,7 +8534,69 @@ func (s *EndpointLocation) SetRegion(v string) *EndpointLocation { return s } +// The result from sending a message to an endpoint. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointMessageResult +type EndpointMessageResult struct { + _ struct{} `type:"structure"` + + // Address that endpoint message was delivered to. + Address *string `type:"string"` + + // Delivery status of message. + DeliveryStatus *string `type:"string" enum:"DeliveryStatus"` + + // Downstream service status code. + StatusCode *int64 `type:"integer"` + + // Status message for message delivery. + StatusMessage *string `type:"string"` + + // If token was updated as part of delivery. (This is GCM Specific) + UpdatedToken *string `type:"string"` +} + +// String returns the string representation +func (s EndpointMessageResult) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EndpointMessageResult) GoString() string { + return s.String() +} + +// SetAddress sets the Address field's value. +func (s *EndpointMessageResult) SetAddress(v string) *EndpointMessageResult { + s.Address = &v + return s +} + +// SetDeliveryStatus sets the DeliveryStatus field's value. +func (s *EndpointMessageResult) SetDeliveryStatus(v string) *EndpointMessageResult { + s.DeliveryStatus = &v + return s +} + +// SetStatusCode sets the StatusCode field's value. +func (s *EndpointMessageResult) SetStatusCode(v int64) *EndpointMessageResult { + s.StatusCode = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *EndpointMessageResult) SetStatusMessage(v string) *EndpointMessageResult { + s.StatusMessage = &v + return s +} + +// SetUpdatedToken sets the UpdatedToken field's value. +func (s *EndpointMessageResult) SetUpdatedToken(v string) *EndpointMessageResult { + s.UpdatedToken = &v + return s +} + // Endpoint update request +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointRequest type EndpointRequest struct { _ struct{} `type:"structure"` @@ -6849,6 +8713,7 @@ func (s *EndpointRequest) SetUser(v *EndpointUser) *EndpointRequest { } // Endpoint response +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointResponse type EndpointResponse struct { _ struct{} `type:"structure"` @@ -6901,6 +8766,7 @@ type EndpointResponse struct { // The unique ID for the most recent request to update the endpoint. RequestId *string `type:"string"` + // The ShardId of endpoint. ShardId *string `type:"string"` // Custom user-specific attributes that your app reports to Amazon Pinpoint. @@ -7013,7 +8879,68 @@ func (s *EndpointResponse) SetUser(v *EndpointUser) *EndpointResponse { return s } +// Endpoint send configuration. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointSendConfiguration +type EndpointSendConfiguration struct { + _ struct{} `type:"structure"` + + // Body override. If specified will override default body. + BodyOverride *string `type:"string"` + + Context map[string]*string `type:"map"` + + // The Raw JSON formatted string to be used as the payload. This value overrides + // the message. + RawContent *string `type:"string"` + + Substitutions map[string][]*string `type:"map"` + + // Title override. If specified will override default title if applicable. + TitleOverride *string `type:"string"` +} + +// String returns the string representation +func (s EndpointSendConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EndpointSendConfiguration) GoString() string { + return s.String() +} + +// SetBodyOverride sets the BodyOverride field's value. +func (s *EndpointSendConfiguration) SetBodyOverride(v string) *EndpointSendConfiguration { + s.BodyOverride = &v + return s +} + +// SetContext sets the Context field's value. +func (s *EndpointSendConfiguration) SetContext(v map[string]*string) *EndpointSendConfiguration { + s.Context = v + return s +} + +// SetRawContent sets the RawContent field's value. +func (s *EndpointSendConfiguration) SetRawContent(v string) *EndpointSendConfiguration { + s.RawContent = &v + return s +} + +// SetSubstitutions sets the Substitutions field's value. +func (s *EndpointSendConfiguration) SetSubstitutions(v map[string][]*string) *EndpointSendConfiguration { + s.Substitutions = v + return s +} + +// SetTitleOverride sets the TitleOverride field's value. +func (s *EndpointSendConfiguration) SetTitleOverride(v string) *EndpointSendConfiguration { + s.TitleOverride = &v + return s +} + // Endpoint user specific custom userAttributes +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointUser type EndpointUser struct { _ struct{} `type:"structure"` @@ -7046,6 +8973,7 @@ func (s *EndpointUser) SetUserId(v string) *EndpointUser { } // Model for an event publishing subscription export. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EventStream type EventStream struct { _ struct{} `type:"structure"` @@ -7119,6 +9047,7 @@ func (s *EventStream) SetRoleArn(v string) *EventStream { } // Google Cloud Messaging credentials +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GCMChannelRequest type GCMChannelRequest struct { _ struct{} `type:"structure"` @@ -7152,6 +9081,7 @@ func (s *GCMChannelRequest) SetEnabled(v bool) *GCMChannelRequest { } // Google Cloud Messaging channel definition +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GCMChannelResponse type GCMChannelResponse struct { _ struct{} `type:"structure"` @@ -7257,6 +9187,7 @@ func (s *GCMChannelResponse) SetVersion(v int64) *GCMChannelResponse { } // GCM Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GCMMessage type GCMMessage struct { _ struct{} `type:"structure"` @@ -7290,6 +9221,10 @@ type GCMMessage struct { // The URL that points to an image used in the push notification. ImageUrl *string `type:"string"` + // The data payload used for a silent push. This payload is added to the notifications' + // data.pinpoint.jsonBody' object + JsonData *string `type:"string"` + // The Raw JSON formatted string to be used as the payload. This value overrides // the message. RawContent *string `type:"string"` @@ -7374,6 +9309,12 @@ func (s *GCMMessage) SetImageUrl(v string) *GCMMessage { return s } +// SetJsonData sets the JsonData field's value. +func (s *GCMMessage) SetJsonData(v string) *GCMMessage { + s.JsonData = &v + return s +} + // SetRawContent sets the RawContent field's value. func (s *GCMMessage) SetRawContent(v string) *GCMMessage { s.RawContent = &v @@ -7422,6 +9363,70 @@ func (s *GCMMessage) SetUrl(v string) *GCMMessage { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAdmChannelRequest +type GetAdmChannelInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAdmChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAdmChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAdmChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAdmChannelInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetAdmChannelInput) SetApplicationId(v string) *GetAdmChannelInput { + s.ApplicationId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAdmChannelResponse +type GetAdmChannelOutput struct { + _ struct{} `type:"structure" payload:"ADMChannelResponse"` + + // Amazon Device Messaging channel definition. + // + // ADMChannelResponse is a required field + ADMChannelResponse *ADMChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetAdmChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAdmChannelOutput) GoString() string { + return s.String() +} + +// SetADMChannelResponse sets the ADMChannelResponse field's value. +func (s *GetAdmChannelOutput) SetADMChannelResponse(v *ADMChannelResponse) *GetAdmChannelOutput { + s.ADMChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsChannelRequest type GetApnsChannelInput struct { _ struct{} `type:"structure"` @@ -7458,6 +9463,7 @@ func (s *GetApnsChannelInput) SetApplicationId(v string) *GetApnsChannelInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsChannelResponse type GetApnsChannelOutput struct { _ struct{} `type:"structure" payload:"APNSChannelResponse"` @@ -7483,6 +9489,7 @@ func (s *GetApnsChannelOutput) SetAPNSChannelResponse(v *APNSChannelResponse) *G return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsSandboxChannelRequest type GetApnsSandboxChannelInput struct { _ struct{} `type:"structure"` @@ -7519,6 +9526,7 @@ func (s *GetApnsSandboxChannelInput) SetApplicationId(v string) *GetApnsSandboxC return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApnsSandboxChannelResponse type GetApnsSandboxChannelOutput struct { _ struct{} `type:"structure" payload:"APNSSandboxChannelResponse"` @@ -7544,6 +9552,7 @@ func (s *GetApnsSandboxChannelOutput) SetAPNSSandboxChannelResponse(v *APNSSandb return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAppRequest type GetAppInput struct { _ struct{} `type:"structure"` @@ -7580,6 +9589,7 @@ func (s *GetAppInput) SetApplicationId(v string) *GetAppInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAppResponse type GetAppOutput struct { _ struct{} `type:"structure" payload:"ApplicationResponse"` @@ -7605,6 +9615,7 @@ func (s *GetAppOutput) SetApplicationResponse(v *ApplicationResponse) *GetAppOut return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApplicationSettingsRequest type GetApplicationSettingsInput struct { _ struct{} `type:"structure"` @@ -7641,6 +9652,7 @@ func (s *GetApplicationSettingsInput) SetApplicationId(v string) *GetApplication return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetApplicationSettingsResponse type GetApplicationSettingsOutput struct { _ struct{} `type:"structure" payload:"ApplicationSettingsResource"` @@ -7666,6 +9678,7 @@ func (s *GetApplicationSettingsOutput) SetApplicationSettingsResource(v *Applica return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAppsRequest type GetAppsInput struct { _ struct{} `type:"structure"` @@ -7696,6 +9709,7 @@ func (s *GetAppsInput) SetToken(v string) *GetAppsInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetAppsResponse type GetAppsOutput struct { _ struct{} `type:"structure" payload:"ApplicationsResponse"` @@ -7721,6 +9735,70 @@ func (s *GetAppsOutput) SetApplicationsResponse(v *ApplicationsResponse) *GetApp return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetBaiduChannelRequest +type GetBaiduChannelInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBaiduChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBaiduChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBaiduChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBaiduChannelInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetBaiduChannelInput) SetApplicationId(v string) *GetBaiduChannelInput { + s.ApplicationId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetBaiduChannelResponse +type GetBaiduChannelOutput struct { + _ struct{} `type:"structure" payload:"BaiduChannelResponse"` + + // Baidu Cloud Messaging channel definition + // + // BaiduChannelResponse is a required field + BaiduChannelResponse *BaiduChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetBaiduChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBaiduChannelOutput) GoString() string { + return s.String() +} + +// SetBaiduChannelResponse sets the BaiduChannelResponse field's value. +func (s *GetBaiduChannelOutput) SetBaiduChannelResponse(v *BaiduChannelResponse) *GetBaiduChannelOutput { + s.BaiduChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignActivitiesRequest type GetCampaignActivitiesInput struct { _ struct{} `type:"structure"` @@ -7785,6 +9863,7 @@ func (s *GetCampaignActivitiesInput) SetToken(v string) *GetCampaignActivitiesIn return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignActivitiesResponse type GetCampaignActivitiesOutput struct { _ struct{} `type:"structure" payload:"ActivitiesResponse"` @@ -7810,6 +9889,7 @@ func (s *GetCampaignActivitiesOutput) SetActivitiesResponse(v *ActivitiesRespons return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignRequest type GetCampaignInput struct { _ struct{} `type:"structure"` @@ -7858,6 +9938,7 @@ func (s *GetCampaignInput) SetCampaignId(v string) *GetCampaignInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignResponse type GetCampaignOutput struct { _ struct{} `type:"structure" payload:"CampaignResponse"` @@ -7883,6 +9964,7 @@ func (s *GetCampaignOutput) SetCampaignResponse(v *CampaignResponse) *GetCampaig return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersionRequest type GetCampaignVersionInput struct { _ struct{} `type:"structure"` @@ -7943,6 +10025,7 @@ func (s *GetCampaignVersionInput) SetVersion(v string) *GetCampaignVersionInput return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersionResponse type GetCampaignVersionOutput struct { _ struct{} `type:"structure" payload:"CampaignResponse"` @@ -7968,6 +10051,7 @@ func (s *GetCampaignVersionOutput) SetCampaignResponse(v *CampaignResponse) *Get return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersionsRequest type GetCampaignVersionsInput struct { _ struct{} `type:"structure"` @@ -8032,6 +10116,7 @@ func (s *GetCampaignVersionsInput) SetToken(v string) *GetCampaignVersionsInput return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignVersionsResponse type GetCampaignVersionsOutput struct { _ struct{} `type:"structure" payload:"CampaignsResponse"` @@ -8057,6 +10142,7 @@ func (s *GetCampaignVersionsOutput) SetCampaignsResponse(v *CampaignsResponse) * return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignsRequest type GetCampaignsInput struct { _ struct{} `type:"structure"` @@ -8109,6 +10195,7 @@ func (s *GetCampaignsInput) SetToken(v string) *GetCampaignsInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetCampaignsResponse type GetCampaignsOutput struct { _ struct{} `type:"structure" payload:"CampaignsResponse"` @@ -8134,6 +10221,7 @@ func (s *GetCampaignsOutput) SetCampaignsResponse(v *CampaignsResponse) *GetCamp return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEmailChannelRequest type GetEmailChannelInput struct { _ struct{} `type:"structure"` @@ -8170,6 +10258,7 @@ func (s *GetEmailChannelInput) SetApplicationId(v string) *GetEmailChannelInput return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEmailChannelResponse type GetEmailChannelOutput struct { _ struct{} `type:"structure" payload:"EmailChannelResponse"` @@ -8195,6 +10284,7 @@ func (s *GetEmailChannelOutput) SetEmailChannelResponse(v *EmailChannelResponse) return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEndpointRequest type GetEndpointInput struct { _ struct{} `type:"structure"` @@ -8243,6 +10333,7 @@ func (s *GetEndpointInput) SetEndpointId(v string) *GetEndpointInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEndpointResponse type GetEndpointOutput struct { _ struct{} `type:"structure" payload:"EndpointResponse"` @@ -8268,11 +10359,10 @@ func (s *GetEndpointOutput) SetEndpointResponse(v *EndpointResponse) *GetEndpoin return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEventStreamRequest type GetEventStreamInput struct { _ struct{} `type:"structure"` - // Application Id. - // // ApplicationId is a required field ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` } @@ -8306,6 +10396,7 @@ func (s *GetEventStreamInput) SetApplicationId(v string) *GetEventStreamInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetEventStreamResponse type GetEventStreamOutput struct { _ struct{} `type:"structure" payload:"EventStream"` @@ -8331,6 +10422,7 @@ func (s *GetEventStreamOutput) SetEventStream(v *EventStream) *GetEventStreamOut return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetGcmChannelRequest type GetGcmChannelInput struct { _ struct{} `type:"structure"` @@ -8367,6 +10459,7 @@ func (s *GetGcmChannelInput) SetApplicationId(v string) *GetGcmChannelInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetGcmChannelResponse type GetGcmChannelOutput struct { _ struct{} `type:"structure" payload:"GCMChannelResponse"` @@ -8392,6 +10485,7 @@ func (s *GetGcmChannelOutput) SetGCMChannelResponse(v *GCMChannelResponse) *GetG return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobRequest type GetImportJobInput struct { _ struct{} `type:"structure"` @@ -8440,6 +10534,7 @@ func (s *GetImportJobInput) SetJobId(v string) *GetImportJobInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobResponse type GetImportJobOutput struct { _ struct{} `type:"structure" payload:"ImportJobResponse"` @@ -8463,6 +10558,7 @@ func (s *GetImportJobOutput) SetImportJobResponse(v *ImportJobResponse) *GetImpo return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobsRequest type GetImportJobsInput struct { _ struct{} `type:"structure"` @@ -8515,6 +10611,7 @@ func (s *GetImportJobsInput) SetToken(v string) *GetImportJobsInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetImportJobsResponse type GetImportJobsOutput struct { _ struct{} `type:"structure" payload:"ImportJobsResponse"` @@ -8540,6 +10637,7 @@ func (s *GetImportJobsOutput) SetImportJobsResponse(v *ImportJobsResponse) *GetI return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentImportJobsRequest type GetSegmentImportJobsInput struct { _ struct{} `type:"structure"` @@ -8604,6 +10702,7 @@ func (s *GetSegmentImportJobsInput) SetToken(v string) *GetSegmentImportJobsInpu return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentImportJobsResponse type GetSegmentImportJobsOutput struct { _ struct{} `type:"structure" payload:"ImportJobsResponse"` @@ -8629,6 +10728,7 @@ func (s *GetSegmentImportJobsOutput) SetImportJobsResponse(v *ImportJobsResponse return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentRequest type GetSegmentInput struct { _ struct{} `type:"structure"` @@ -8677,6 +10777,7 @@ func (s *GetSegmentInput) SetSegmentId(v string) *GetSegmentInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentResponse type GetSegmentOutput struct { _ struct{} `type:"structure" payload:"SegmentResponse"` @@ -8702,6 +10803,7 @@ func (s *GetSegmentOutput) SetSegmentResponse(v *SegmentResponse) *GetSegmentOut return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersionRequest type GetSegmentVersionInput struct { _ struct{} `type:"structure"` @@ -8762,6 +10864,7 @@ func (s *GetSegmentVersionInput) SetVersion(v string) *GetSegmentVersionInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersionResponse type GetSegmentVersionOutput struct { _ struct{} `type:"structure" payload:"SegmentResponse"` @@ -8787,6 +10890,7 @@ func (s *GetSegmentVersionOutput) SetSegmentResponse(v *SegmentResponse) *GetSeg return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersionsRequest type GetSegmentVersionsInput struct { _ struct{} `type:"structure"` @@ -8851,6 +10955,7 @@ func (s *GetSegmentVersionsInput) SetToken(v string) *GetSegmentVersionsInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentVersionsResponse type GetSegmentVersionsOutput struct { _ struct{} `type:"structure" payload:"SegmentsResponse"` @@ -8876,6 +10981,7 @@ func (s *GetSegmentVersionsOutput) SetSegmentsResponse(v *SegmentsResponse) *Get return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentsRequest type GetSegmentsInput struct { _ struct{} `type:"structure"` @@ -8928,6 +11034,7 @@ func (s *GetSegmentsInput) SetToken(v string) *GetSegmentsInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSegmentsResponse type GetSegmentsOutput struct { _ struct{} `type:"structure" payload:"SegmentsResponse"` @@ -8953,6 +11060,7 @@ func (s *GetSegmentsOutput) SetSegmentsResponse(v *SegmentsResponse) *GetSegment return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSmsChannelRequest type GetSmsChannelInput struct { _ struct{} `type:"structure"` @@ -8989,6 +11097,7 @@ func (s *GetSmsChannelInput) SetApplicationId(v string) *GetSmsChannelInput { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GetSmsChannelResponse type GetSmsChannelOutput struct { _ struct{} `type:"structure" payload:"SMSChannelResponse"` @@ -9014,6 +11123,7 @@ func (s *GetSmsChannelOutput) SetSMSChannelResponse(v *SMSChannelResponse) *GetS return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ImportJobRequest type ImportJobRequest struct { _ struct{} `type:"structure"` @@ -9109,6 +11219,7 @@ func (s *ImportJobRequest) SetSegmentName(v string) *ImportJobRequest { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ImportJobResource type ImportJobResource struct { _ struct{} `type:"structure"` @@ -9204,6 +11315,7 @@ func (s *ImportJobResource) SetSegmentName(v string) *ImportJobResource { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ImportJobResponse type ImportJobResponse struct { _ struct{} `type:"structure"` @@ -9340,6 +11452,7 @@ func (s *ImportJobResponse) SetType(v string) *ImportJobResponse { } // Import job list. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ImportJobsResponse type ImportJobsResponse struct { _ struct{} `type:"structure"` @@ -9373,6 +11486,7 @@ func (s *ImportJobsResponse) SetNextToken(v string) *ImportJobsResponse { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/Message type Message struct { _ struct{} `type:"structure"` @@ -9497,6 +11611,7 @@ func (s *Message) SetUrl(v string) *Message { } // Simple message object. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageBody type MessageBody struct { _ struct{} `type:"structure"` @@ -9530,6 +11645,7 @@ func (s *MessageBody) SetRequestID(v string) *MessageBody { } // Message configuration for a campaign. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageConfiguration type MessageConfiguration struct { _ struct{} `type:"structure"` @@ -9592,6 +11708,7 @@ func (s *MessageConfiguration) SetSMSMessage(v *CampaignSmsMessage) *MessageConf } // Send message request. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageRequest type MessageRequest struct { _ struct{} `type:"structure"` @@ -9599,10 +11716,19 @@ type MessageRequest struct { // phone number or push token) and the Address Configuration as the value. Addresses map[string]*AddressConfiguration `type:"map"` + Campaign map[string]*string `type:"map"` + Context map[string]*string `type:"map"` + // A map of destination addresses, with the address as the key(Email address, + // phone number or push token) and the Address Configuration as the value. + Endpoints map[string]*EndpointSendConfiguration `type:"map"` + // Message configuration. MessageConfiguration *DirectMessageConfiguration `type:"structure"` + + // Original request Id for which this message is delivered. + RequestId *string `type:"string"` } // String returns the string representation @@ -9621,25 +11747,48 @@ func (s *MessageRequest) SetAddresses(v map[string]*AddressConfiguration) *Messa return s } +// SetCampaign sets the Campaign field's value. +func (s *MessageRequest) SetCampaign(v map[string]*string) *MessageRequest { + s.Campaign = v + return s +} + // SetContext sets the Context field's value. func (s *MessageRequest) SetContext(v map[string]*string) *MessageRequest { s.Context = v return s } +// SetEndpoints sets the Endpoints field's value. +func (s *MessageRequest) SetEndpoints(v map[string]*EndpointSendConfiguration) *MessageRequest { + s.Endpoints = v + return s +} + // SetMessageConfiguration sets the MessageConfiguration field's value. func (s *MessageRequest) SetMessageConfiguration(v *DirectMessageConfiguration) *MessageRequest { s.MessageConfiguration = v return s } +// SetRequestId sets the RequestId field's value. +func (s *MessageRequest) SetRequestId(v string) *MessageRequest { + s.RequestId = &v + return s +} + // Send message response. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageResponse type MessageResponse struct { _ struct{} `type:"structure"` // Application id of the message. ApplicationId *string `type:"string"` + // A map containing a multi part response for each address, with the endpointId + // as the key and the result as the value. + EndpointResult map[string]*EndpointMessageResult `type:"map"` + // Original request Id for which this message was delivered. RequestId *string `type:"string"` @@ -9665,6 +11814,12 @@ func (s *MessageResponse) SetApplicationId(v string) *MessageResponse { return s } +// SetEndpointResult sets the EndpointResult field's value. +func (s *MessageResponse) SetEndpointResult(v map[string]*EndpointMessageResult) *MessageResponse { + s.EndpointResult = v + return s +} + // SetRequestId sets the RequestId field's value. func (s *MessageResponse) SetRequestId(v string) *MessageResponse { s.RequestId = &v @@ -9678,6 +11833,7 @@ func (s *MessageResponse) SetResult(v map[string]*MessageResult) *MessageRespons } // The result from sending a message to an address. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageResult type MessageResult struct { _ struct{} `type:"structure"` @@ -9728,15 +11884,14 @@ func (s *MessageResult) SetUpdatedToken(v string) *MessageResult { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/PutEventStreamRequest type PutEventStreamInput struct { _ struct{} `type:"structure" payload:"WriteEventStream"` - // Application Id. - // // ApplicationId is a required field ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` - // Write event stream wrapper. + // Request to save an EventStream. // // WriteEventStream is a required field WriteEventStream *WriteEventStream `type:"structure" required:"true"` @@ -9780,6 +11935,7 @@ func (s *PutEventStreamInput) SetWriteEventStream(v *WriteEventStream) *PutEvent return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/PutEventStreamResponse type PutEventStreamOutput struct { _ struct{} `type:"structure" payload:"EventStream"` @@ -9806,6 +11962,7 @@ func (s *PutEventStreamOutput) SetEventStream(v *EventStream) *PutEventStreamOut } // Quiet Time +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/QuietTime type QuietTime struct { _ struct{} `type:"structure"` @@ -9839,6 +11996,7 @@ func (s *QuietTime) SetStart(v string) *QuietTime { } // Define how a segment based on recency of use. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/RecencyDimension type RecencyDimension struct { _ struct{} `type:"structure"` @@ -9875,6 +12033,7 @@ func (s *RecencyDimension) SetRecencyType(v string) *RecencyDimension { } // SMS Channel Request +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SMSChannelRequest type SMSChannelRequest struct { _ struct{} `type:"structure"` @@ -9883,6 +12042,9 @@ type SMSChannelRequest struct { // Sender identifier of your messages. SenderId *string `type:"string"` + + // ShortCode registered with phone provider. + ShortCode *string `type:"string"` } // String returns the string representation @@ -9907,7 +12069,14 @@ func (s *SMSChannelRequest) SetSenderId(v string) *SMSChannelRequest { return s } +// SetShortCode sets the ShortCode field's value. +func (s *SMSChannelRequest) SetShortCode(v string) *SMSChannelRequest { + s.ShortCode = &v + return s +} + // SMS Channel Response. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SMSChannelResponse type SMSChannelResponse struct { _ struct{} `type:"structure"` @@ -10022,6 +12191,7 @@ func (s *SMSChannelResponse) SetVersion(v int64) *SMSChannelResponse { } // SMS Message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SMSMessage type SMSMessage struct { _ struct{} `type:"structure"` @@ -10072,6 +12242,7 @@ func (s *SMSMessage) SetSubstitutions(v map[string][]*string) *SMSMessage { } // Shcedule that defines when a campaign is run. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/Schedule type Schedule struct { _ struct{} `type:"structure"` @@ -10144,6 +12315,7 @@ func (s *Schedule) SetTimezone(v string) *Schedule { } // Segment behavior dimensions +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentBehaviors type SegmentBehaviors struct { _ struct{} `type:"structure"` @@ -10168,6 +12340,7 @@ func (s *SegmentBehaviors) SetRecency(v *RecencyDimension) *SegmentBehaviors { } // Segment demographic dimensions +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentDemographics type SegmentDemographics struct { _ struct{} `type:"structure"` @@ -10237,6 +12410,7 @@ func (s *SegmentDemographics) SetPlatform(v *SetDimension) *SegmentDemographics } // Segment dimensions +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentDimensions type SegmentDimensions struct { _ struct{} `type:"structure"` @@ -10297,6 +12471,7 @@ func (s *SegmentDimensions) SetUserAttributes(v map[string]*AttributeDimension) } // Segment import definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentImportResource type SegmentImportResource struct { _ struct{} `type:"structure"` @@ -10369,6 +12544,7 @@ func (s *SegmentImportResource) SetSize(v int64) *SegmentImportResource { } // Segment location dimensions +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentLocation type SegmentLocation struct { _ struct{} `type:"structure"` @@ -10393,6 +12569,7 @@ func (s *SegmentLocation) SetCountry(v *SetDimension) *SegmentLocation { } // Segment definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentResponse type SegmentResponse struct { _ struct{} `type:"structure"` @@ -10495,6 +12672,7 @@ func (s *SegmentResponse) SetVersion(v int64) *SegmentResponse { } // Segments in your account. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentsResponse type SegmentsResponse struct { _ struct{} `type:"structure"` @@ -10528,6 +12706,7 @@ func (s *SegmentsResponse) SetNextToken(v string) *SegmentsResponse { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendMessagesRequest type SendMessagesInput struct { _ struct{} `type:"structure" payload:"MessageRequest"` @@ -10578,6 +12757,7 @@ func (s *SendMessagesInput) SetMessageRequest(v *MessageRequest) *SendMessagesIn return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendMessagesResponse type SendMessagesOutput struct { _ struct{} `type:"structure" payload:"MessageResponse"` @@ -10603,7 +12783,180 @@ func (s *SendMessagesOutput) SetMessageResponse(v *MessageResponse) *SendMessage return s } +// Send message request. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessageRequest +type SendUsersMessageRequest struct { + _ struct{} `type:"structure"` + + Context map[string]*string `type:"map"` + + // Message configuration. + MessageConfiguration *DirectMessageConfiguration `type:"structure"` + + // Original request Id for which this message is delivered. + RequestId *string `type:"string"` + + // A map of destination endpoints, with the EndpointId as the key Endpoint Message + // Configuration as the value. + Users map[string]*EndpointSendConfiguration `type:"map"` +} + +// String returns the string representation +func (s SendUsersMessageRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendUsersMessageRequest) GoString() string { + return s.String() +} + +// SetContext sets the Context field's value. +func (s *SendUsersMessageRequest) SetContext(v map[string]*string) *SendUsersMessageRequest { + s.Context = v + return s +} + +// SetMessageConfiguration sets the MessageConfiguration field's value. +func (s *SendUsersMessageRequest) SetMessageConfiguration(v *DirectMessageConfiguration) *SendUsersMessageRequest { + s.MessageConfiguration = v + return s +} + +// SetRequestId sets the RequestId field's value. +func (s *SendUsersMessageRequest) SetRequestId(v string) *SendUsersMessageRequest { + s.RequestId = &v + return s +} + +// SetUsers sets the Users field's value. +func (s *SendUsersMessageRequest) SetUsers(v map[string]*EndpointSendConfiguration) *SendUsersMessageRequest { + s.Users = v + return s +} + +// User send message response. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessageResponse +type SendUsersMessageResponse struct { + _ struct{} `type:"structure"` + + // Application id of the message. + ApplicationId *string `type:"string"` + + // Original request Id for which this message was delivered. + RequestId *string `type:"string"` + + // A map containing of UserId to Map of EndpointId to Endpoint Message Result. + Result map[string]map[string]*EndpointMessageResult `type:"map"` +} + +// String returns the string representation +func (s SendUsersMessageResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendUsersMessageResponse) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *SendUsersMessageResponse) SetApplicationId(v string) *SendUsersMessageResponse { + s.ApplicationId = &v + return s +} + +// SetRequestId sets the RequestId field's value. +func (s *SendUsersMessageResponse) SetRequestId(v string) *SendUsersMessageResponse { + s.RequestId = &v + return s +} + +// SetResult sets the Result field's value. +func (s *SendUsersMessageResponse) SetResult(v map[string]map[string]*EndpointMessageResult) *SendUsersMessageResponse { + s.Result = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessagesRequest +type SendUsersMessagesInput struct { + _ struct{} `type:"structure" payload:"SendUsersMessageRequest"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` + + // Send message request. + // + // SendUsersMessageRequest is a required field + SendUsersMessageRequest *SendUsersMessageRequest `type:"structure" required:"true"` +} + +// String returns the string representation +func (s SendUsersMessagesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendUsersMessagesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendUsersMessagesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SendUsersMessagesInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.SendUsersMessageRequest == nil { + invalidParams.Add(request.NewErrParamRequired("SendUsersMessageRequest")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *SendUsersMessagesInput) SetApplicationId(v string) *SendUsersMessagesInput { + s.ApplicationId = &v + return s +} + +// SetSendUsersMessageRequest sets the SendUsersMessageRequest field's value. +func (s *SendUsersMessagesInput) SetSendUsersMessageRequest(v *SendUsersMessageRequest) *SendUsersMessagesInput { + s.SendUsersMessageRequest = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SendUsersMessagesResponse +type SendUsersMessagesOutput struct { + _ struct{} `type:"structure" payload:"SendUsersMessageResponse"` + + // User send message response. + // + // SendUsersMessageResponse is a required field + SendUsersMessageResponse *SendUsersMessageResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s SendUsersMessagesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendUsersMessagesOutput) GoString() string { + return s.String() +} + +// SetSendUsersMessageResponse sets the SendUsersMessageResponse field's value. +func (s *SendUsersMessagesOutput) SetSendUsersMessageResponse(v *SendUsersMessageResponse) *SendUsersMessagesOutput { + s.SendUsersMessageResponse = v + return s +} + // Dimension specification of a segment. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SetDimension type SetDimension struct { _ struct{} `type:"structure"` @@ -10638,6 +12991,7 @@ func (s *SetDimension) SetValues(v []*string) *SetDimension { } // Treatment resource +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/TreatmentResource type TreatmentResource struct { _ struct{} `type:"structure"` @@ -10715,6 +13069,84 @@ func (s *TreatmentResource) SetTreatmentName(v string) *TreatmentResource { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateAdmChannelRequest +type UpdateAdmChannelInput struct { + _ struct{} `type:"structure" payload:"ADMChannelRequest"` + + // Amazon Device Messaging channel definition. + // + // ADMChannelRequest is a required field + ADMChannelRequest *ADMChannelRequest `type:"structure" required:"true"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateAdmChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAdmChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAdmChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAdmChannelInput"} + if s.ADMChannelRequest == nil { + invalidParams.Add(request.NewErrParamRequired("ADMChannelRequest")) + } + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetADMChannelRequest sets the ADMChannelRequest field's value. +func (s *UpdateAdmChannelInput) SetADMChannelRequest(v *ADMChannelRequest) *UpdateAdmChannelInput { + s.ADMChannelRequest = v + return s +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateAdmChannelInput) SetApplicationId(v string) *UpdateAdmChannelInput { + s.ApplicationId = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateAdmChannelResponse +type UpdateAdmChannelOutput struct { + _ struct{} `type:"structure" payload:"ADMChannelResponse"` + + // Amazon Device Messaging channel definition. + // + // ADMChannelResponse is a required field + ADMChannelResponse *ADMChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateAdmChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAdmChannelOutput) GoString() string { + return s.String() +} + +// SetADMChannelResponse sets the ADMChannelResponse field's value. +func (s *UpdateAdmChannelOutput) SetADMChannelResponse(v *ADMChannelResponse) *UpdateAdmChannelOutput { + s.ADMChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsChannelRequest type UpdateApnsChannelInput struct { _ struct{} `type:"structure" payload:"APNSChannelRequest"` @@ -10765,6 +13197,7 @@ func (s *UpdateApnsChannelInput) SetApplicationId(v string) *UpdateApnsChannelIn return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsChannelResponse type UpdateApnsChannelOutput struct { _ struct{} `type:"structure" payload:"APNSChannelResponse"` @@ -10790,6 +13223,7 @@ func (s *UpdateApnsChannelOutput) SetAPNSChannelResponse(v *APNSChannelResponse) return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsSandboxChannelRequest type UpdateApnsSandboxChannelInput struct { _ struct{} `type:"structure" payload:"APNSSandboxChannelRequest"` @@ -10840,6 +13274,7 @@ func (s *UpdateApnsSandboxChannelInput) SetApplicationId(v string) *UpdateApnsSa return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApnsSandboxChannelResponse type UpdateApnsSandboxChannelOutput struct { _ struct{} `type:"structure" payload:"APNSSandboxChannelResponse"` @@ -10865,6 +13300,7 @@ func (s *UpdateApnsSandboxChannelOutput) SetAPNSSandboxChannelResponse(v *APNSSa return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApplicationSettingsRequest type UpdateApplicationSettingsInput struct { _ struct{} `type:"structure" payload:"WriteApplicationSettingsRequest"` @@ -10915,6 +13351,7 @@ func (s *UpdateApplicationSettingsInput) SetWriteApplicationSettingsRequest(v *W return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateApplicationSettingsResponse type UpdateApplicationSettingsOutput struct { _ struct{} `type:"structure" payload:"ApplicationSettingsResource"` @@ -10940,6 +13377,84 @@ func (s *UpdateApplicationSettingsOutput) SetApplicationSettingsResource(v *Appl return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateBaiduChannelRequest +type UpdateBaiduChannelInput struct { + _ struct{} `type:"structure" payload:"BaiduChannelRequest"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` + + // Baidu Cloud Push credentials + // + // BaiduChannelRequest is a required field + BaiduChannelRequest *BaiduChannelRequest `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateBaiduChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateBaiduChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateBaiduChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateBaiduChannelInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.BaiduChannelRequest == nil { + invalidParams.Add(request.NewErrParamRequired("BaiduChannelRequest")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateBaiduChannelInput) SetApplicationId(v string) *UpdateBaiduChannelInput { + s.ApplicationId = &v + return s +} + +// SetBaiduChannelRequest sets the BaiduChannelRequest field's value. +func (s *UpdateBaiduChannelInput) SetBaiduChannelRequest(v *BaiduChannelRequest) *UpdateBaiduChannelInput { + s.BaiduChannelRequest = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateBaiduChannelResponse +type UpdateBaiduChannelOutput struct { + _ struct{} `type:"structure" payload:"BaiduChannelResponse"` + + // Baidu Cloud Messaging channel definition + // + // BaiduChannelResponse is a required field + BaiduChannelResponse *BaiduChannelResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateBaiduChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateBaiduChannelOutput) GoString() string { + return s.String() +} + +// SetBaiduChannelResponse sets the BaiduChannelResponse field's value. +func (s *UpdateBaiduChannelOutput) SetBaiduChannelResponse(v *BaiduChannelResponse) *UpdateBaiduChannelOutput { + s.BaiduChannelResponse = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateCampaignRequest type UpdateCampaignInput struct { _ struct{} `type:"structure" payload:"WriteCampaignRequest"` @@ -11002,6 +13517,7 @@ func (s *UpdateCampaignInput) SetWriteCampaignRequest(v *WriteCampaignRequest) * return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateCampaignResponse type UpdateCampaignOutput struct { _ struct{} `type:"structure" payload:"CampaignResponse"` @@ -11027,6 +13543,7 @@ func (s *UpdateCampaignOutput) SetCampaignResponse(v *CampaignResponse) *UpdateC return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEmailChannelRequest type UpdateEmailChannelInput struct { _ struct{} `type:"structure" payload:"EmailChannelRequest"` @@ -11077,6 +13594,7 @@ func (s *UpdateEmailChannelInput) SetEmailChannelRequest(v *EmailChannelRequest) return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEmailChannelResponse type UpdateEmailChannelOutput struct { _ struct{} `type:"structure" payload:"EmailChannelResponse"` @@ -11102,6 +13620,7 @@ func (s *UpdateEmailChannelOutput) SetEmailChannelResponse(v *EmailChannelRespon return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointRequest type UpdateEndpointInput struct { _ struct{} `type:"structure" payload:"EndpointRequest"` @@ -11164,6 +13683,7 @@ func (s *UpdateEndpointInput) SetEndpointRequest(v *EndpointRequest) *UpdateEndp return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointResponse type UpdateEndpointOutput struct { _ struct{} `type:"structure" payload:"MessageBody"` @@ -11189,6 +13709,7 @@ func (s *UpdateEndpointOutput) SetMessageBody(v *MessageBody) *UpdateEndpointOut return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointsBatchRequest type UpdateEndpointsBatchInput struct { _ struct{} `type:"structure" payload:"EndpointBatchRequest"` @@ -11239,6 +13760,7 @@ func (s *UpdateEndpointsBatchInput) SetEndpointBatchRequest(v *EndpointBatchRequ return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateEndpointsBatchResponse type UpdateEndpointsBatchOutput struct { _ struct{} `type:"structure" payload:"MessageBody"` @@ -11264,6 +13786,7 @@ func (s *UpdateEndpointsBatchOutput) SetMessageBody(v *MessageBody) *UpdateEndpo return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateGcmChannelRequest type UpdateGcmChannelInput struct { _ struct{} `type:"structure" payload:"GCMChannelRequest"` @@ -11314,6 +13837,7 @@ func (s *UpdateGcmChannelInput) SetGCMChannelRequest(v *GCMChannelRequest) *Upda return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateGcmChannelResponse type UpdateGcmChannelOutput struct { _ struct{} `type:"structure" payload:"GCMChannelResponse"` @@ -11339,6 +13863,7 @@ func (s *UpdateGcmChannelOutput) SetGCMChannelResponse(v *GCMChannelResponse) *U return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSegmentRequest type UpdateSegmentInput struct { _ struct{} `type:"structure" payload:"WriteSegmentRequest"` @@ -11401,6 +13926,7 @@ func (s *UpdateSegmentInput) SetWriteSegmentRequest(v *WriteSegmentRequest) *Upd return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSegmentResponse type UpdateSegmentOutput struct { _ struct{} `type:"structure" payload:"SegmentResponse"` @@ -11426,6 +13952,7 @@ func (s *UpdateSegmentOutput) SetSegmentResponse(v *SegmentResponse) *UpdateSegm return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSmsChannelRequest type UpdateSmsChannelInput struct { _ struct{} `type:"structure" payload:"SMSChannelRequest"` @@ -11476,6 +14003,7 @@ func (s *UpdateSmsChannelInput) SetSMSChannelRequest(v *SMSChannelRequest) *Upda return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateSmsChannelResponse type UpdateSmsChannelOutput struct { _ struct{} `type:"structure" payload:"SMSChannelResponse"` @@ -11502,6 +14030,7 @@ func (s *UpdateSmsChannelOutput) SetSMSChannelResponse(v *SMSChannelResponse) *U } // Creating application setting request +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteApplicationSettingsRequest type WriteApplicationSettingsRequest struct { _ struct{} `type:"structure"` @@ -11539,6 +14068,7 @@ func (s *WriteApplicationSettingsRequest) SetQuietTime(v *QuietTime) *WriteAppli } // Used to create a campaign. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteCampaignRequest type WriteCampaignRequest struct { _ struct{} `type:"structure"` @@ -11574,6 +14104,9 @@ type WriteCampaignRequest struct { // The version of the segment to which the campaign sends messages. SegmentVersion *int64 `type:"integer"` + // Whether or not to enable trace logging for the campaign. Undocumented + Trace *bool `type:"boolean"` + // A custom description for the treatment. TreatmentDescription *string `type:"string"` @@ -11651,6 +14184,12 @@ func (s *WriteCampaignRequest) SetSegmentVersion(v int64) *WriteCampaignRequest return s } +// SetTrace sets the Trace field's value. +func (s *WriteCampaignRequest) SetTrace(v bool) *WriteCampaignRequest { + s.Trace = &v + return s +} + // SetTreatmentDescription sets the TreatmentDescription field's value. func (s *WriteCampaignRequest) SetTreatmentDescription(v string) *WriteCampaignRequest { s.TreatmentDescription = &v @@ -11664,6 +14203,7 @@ func (s *WriteCampaignRequest) SetTreatmentName(v string) *WriteCampaignRequest } // Request to save an EventStream. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteEventStream type WriteEventStream struct { _ struct{} `type:"structure"` @@ -11672,6 +14212,10 @@ type WriteEventStream struct { // Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME DestinationStreamArn *string `type:"string"` + // The external ID assigned the IAM role that authorizes Amazon Pinpoint to + // publish to the stream. + ExternalId *string `type:"string"` + // The IAM role that authorizes Amazon Pinpoint to publish events to the stream // in your account. RoleArn *string `type:"string"` @@ -11693,6 +14237,12 @@ func (s *WriteEventStream) SetDestinationStreamArn(v string) *WriteEventStream { return s } +// SetExternalId sets the ExternalId field's value. +func (s *WriteEventStream) SetExternalId(v string) *WriteEventStream { + s.ExternalId = &v + return s +} + // SetRoleArn sets the RoleArn field's value. func (s *WriteEventStream) SetRoleArn(v string) *WriteEventStream { s.RoleArn = &v @@ -11700,6 +14250,7 @@ func (s *WriteEventStream) SetRoleArn(v string) *WriteEventStream { } // Segment definition. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteSegmentRequest type WriteSegmentRequest struct { _ struct{} `type:"structure"` @@ -11733,6 +14284,7 @@ func (s *WriteSegmentRequest) SetName(v string) *WriteSegmentRequest { } // Used to create a campaign treatment. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteTreatmentResource type WriteTreatmentResource struct { _ struct{} `type:"structure"` @@ -11846,6 +14398,9 @@ const ( // ChannelTypeEmail is a ChannelType enum value ChannelTypeEmail = "EMAIL" + + // ChannelTypeBaidu is a ChannelType enum value + ChannelTypeBaidu = "BAIDU" ) const ( @@ -11860,6 +14415,15 @@ const ( // DeliveryStatusPermanentFailure is a DeliveryStatus enum value DeliveryStatusPermanentFailure = "PERMANENT_FAILURE" + + // DeliveryStatusUnknownFailure is a DeliveryStatus enum value + DeliveryStatusUnknownFailure = "UNKNOWN_FAILURE" + + // DeliveryStatusOptOut is a DeliveryStatus enum value + DeliveryStatusOptOut = "OPT_OUT" + + // DeliveryStatusDuplicate is a DeliveryStatus enum value + DeliveryStatusDuplicate = "DUPLICATE" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/doc.go b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/doc.go index 7f945acd..6512ccdf 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/doc.go @@ -3,6 +3,8 @@ // Package pinpoint provides the client and types for making API // requests to Amazon Pinpoint. // +// See https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01 for more information on this service. +// // See pinpoint package documentation for more information. // https://docs.aws.amazon.com/sdk-for-go/api/service/pinpoint/ // diff --git a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/pinpointiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/pinpointiface/interface.go index c31a11d9..10bc0a77 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/pinpointiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/pinpointiface/interface.go @@ -76,6 +76,10 @@ type PinpointAPI interface { CreateSegmentWithContext(aws.Context, *pinpoint.CreateSegmentInput, ...request.Option) (*pinpoint.CreateSegmentOutput, error) CreateSegmentRequest(*pinpoint.CreateSegmentInput) (*request.Request, *pinpoint.CreateSegmentOutput) + DeleteAdmChannel(*pinpoint.DeleteAdmChannelInput) (*pinpoint.DeleteAdmChannelOutput, error) + DeleteAdmChannelWithContext(aws.Context, *pinpoint.DeleteAdmChannelInput, ...request.Option) (*pinpoint.DeleteAdmChannelOutput, error) + DeleteAdmChannelRequest(*pinpoint.DeleteAdmChannelInput) (*request.Request, *pinpoint.DeleteAdmChannelOutput) + DeleteApnsChannel(*pinpoint.DeleteApnsChannelInput) (*pinpoint.DeleteApnsChannelOutput, error) DeleteApnsChannelWithContext(aws.Context, *pinpoint.DeleteApnsChannelInput, ...request.Option) (*pinpoint.DeleteApnsChannelOutput, error) DeleteApnsChannelRequest(*pinpoint.DeleteApnsChannelInput) (*request.Request, *pinpoint.DeleteApnsChannelOutput) @@ -88,6 +92,10 @@ type PinpointAPI interface { DeleteAppWithContext(aws.Context, *pinpoint.DeleteAppInput, ...request.Option) (*pinpoint.DeleteAppOutput, error) DeleteAppRequest(*pinpoint.DeleteAppInput) (*request.Request, *pinpoint.DeleteAppOutput) + DeleteBaiduChannel(*pinpoint.DeleteBaiduChannelInput) (*pinpoint.DeleteBaiduChannelOutput, error) + DeleteBaiduChannelWithContext(aws.Context, *pinpoint.DeleteBaiduChannelInput, ...request.Option) (*pinpoint.DeleteBaiduChannelOutput, error) + DeleteBaiduChannelRequest(*pinpoint.DeleteBaiduChannelInput) (*request.Request, *pinpoint.DeleteBaiduChannelOutput) + DeleteCampaign(*pinpoint.DeleteCampaignInput) (*pinpoint.DeleteCampaignOutput, error) DeleteCampaignWithContext(aws.Context, *pinpoint.DeleteCampaignInput, ...request.Option) (*pinpoint.DeleteCampaignOutput, error) DeleteCampaignRequest(*pinpoint.DeleteCampaignInput) (*request.Request, *pinpoint.DeleteCampaignOutput) @@ -112,6 +120,10 @@ type PinpointAPI interface { DeleteSmsChannelWithContext(aws.Context, *pinpoint.DeleteSmsChannelInput, ...request.Option) (*pinpoint.DeleteSmsChannelOutput, error) DeleteSmsChannelRequest(*pinpoint.DeleteSmsChannelInput) (*request.Request, *pinpoint.DeleteSmsChannelOutput) + GetAdmChannel(*pinpoint.GetAdmChannelInput) (*pinpoint.GetAdmChannelOutput, error) + GetAdmChannelWithContext(aws.Context, *pinpoint.GetAdmChannelInput, ...request.Option) (*pinpoint.GetAdmChannelOutput, error) + GetAdmChannelRequest(*pinpoint.GetAdmChannelInput) (*request.Request, *pinpoint.GetAdmChannelOutput) + GetApnsChannel(*pinpoint.GetApnsChannelInput) (*pinpoint.GetApnsChannelOutput, error) GetApnsChannelWithContext(aws.Context, *pinpoint.GetApnsChannelInput, ...request.Option) (*pinpoint.GetApnsChannelOutput, error) GetApnsChannelRequest(*pinpoint.GetApnsChannelInput) (*request.Request, *pinpoint.GetApnsChannelOutput) @@ -132,6 +144,10 @@ type PinpointAPI interface { GetAppsWithContext(aws.Context, *pinpoint.GetAppsInput, ...request.Option) (*pinpoint.GetAppsOutput, error) GetAppsRequest(*pinpoint.GetAppsInput) (*request.Request, *pinpoint.GetAppsOutput) + GetBaiduChannel(*pinpoint.GetBaiduChannelInput) (*pinpoint.GetBaiduChannelOutput, error) + GetBaiduChannelWithContext(aws.Context, *pinpoint.GetBaiduChannelInput, ...request.Option) (*pinpoint.GetBaiduChannelOutput, error) + GetBaiduChannelRequest(*pinpoint.GetBaiduChannelInput) (*request.Request, *pinpoint.GetBaiduChannelOutput) + GetCampaign(*pinpoint.GetCampaignInput) (*pinpoint.GetCampaignOutput, error) GetCampaignWithContext(aws.Context, *pinpoint.GetCampaignInput, ...request.Option) (*pinpoint.GetCampaignOutput, error) GetCampaignRequest(*pinpoint.GetCampaignInput) (*request.Request, *pinpoint.GetCampaignOutput) @@ -208,6 +224,14 @@ type PinpointAPI interface { SendMessagesWithContext(aws.Context, *pinpoint.SendMessagesInput, ...request.Option) (*pinpoint.SendMessagesOutput, error) SendMessagesRequest(*pinpoint.SendMessagesInput) (*request.Request, *pinpoint.SendMessagesOutput) + SendUsersMessages(*pinpoint.SendUsersMessagesInput) (*pinpoint.SendUsersMessagesOutput, error) + SendUsersMessagesWithContext(aws.Context, *pinpoint.SendUsersMessagesInput, ...request.Option) (*pinpoint.SendUsersMessagesOutput, error) + SendUsersMessagesRequest(*pinpoint.SendUsersMessagesInput) (*request.Request, *pinpoint.SendUsersMessagesOutput) + + UpdateAdmChannel(*pinpoint.UpdateAdmChannelInput) (*pinpoint.UpdateAdmChannelOutput, error) + UpdateAdmChannelWithContext(aws.Context, *pinpoint.UpdateAdmChannelInput, ...request.Option) (*pinpoint.UpdateAdmChannelOutput, error) + UpdateAdmChannelRequest(*pinpoint.UpdateAdmChannelInput) (*request.Request, *pinpoint.UpdateAdmChannelOutput) + UpdateApnsChannel(*pinpoint.UpdateApnsChannelInput) (*pinpoint.UpdateApnsChannelOutput, error) UpdateApnsChannelWithContext(aws.Context, *pinpoint.UpdateApnsChannelInput, ...request.Option) (*pinpoint.UpdateApnsChannelOutput, error) UpdateApnsChannelRequest(*pinpoint.UpdateApnsChannelInput) (*request.Request, *pinpoint.UpdateApnsChannelOutput) @@ -220,6 +244,10 @@ type PinpointAPI interface { UpdateApplicationSettingsWithContext(aws.Context, *pinpoint.UpdateApplicationSettingsInput, ...request.Option) (*pinpoint.UpdateApplicationSettingsOutput, error) UpdateApplicationSettingsRequest(*pinpoint.UpdateApplicationSettingsInput) (*request.Request, *pinpoint.UpdateApplicationSettingsOutput) + UpdateBaiduChannel(*pinpoint.UpdateBaiduChannelInput) (*pinpoint.UpdateBaiduChannelOutput, error) + UpdateBaiduChannelWithContext(aws.Context, *pinpoint.UpdateBaiduChannelInput, ...request.Option) (*pinpoint.UpdateBaiduChannelOutput, error) + UpdateBaiduChannelRequest(*pinpoint.UpdateBaiduChannelInput) (*request.Request, *pinpoint.UpdateBaiduChannelOutput) + UpdateCampaign(*pinpoint.UpdateCampaignInput) (*pinpoint.UpdateCampaignOutput, error) UpdateCampaignWithContext(aws.Context, *pinpoint.UpdateCampaignInput, ...request.Option) (*pinpoint.UpdateCampaignOutput, error) UpdateCampaignRequest(*pinpoint.UpdateCampaignInput) (*request.Request, *pinpoint.UpdateCampaignOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go index 459af974..afb4d200 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go @@ -2510,7 +2510,7 @@ func (c *RDS) DeleteDBInstanceRequest(input *DeleteDBInstanceInput) (req *reques // the SkipFinalSnapshot parameter is set to true. // // If the specified DB instance is part of an Amazon Aurora DB cluster, you -// cannot delete the DB instance if the following are true: +// cannot delete the DB instance if both of the following conditions are true: // // * The DB cluster is a Read Replica of another Amazon Aurora DB cluster. // @@ -7140,11 +7140,9 @@ func (c *RDS) ModifyDBSnapshotRequest(input *ModifyDBSnapshotInput) (req *reques // ModifyDBSnapshot API operation for Amazon Relational Database Service. // // Updates a manual DB snapshot, which can be encrypted or not encrypted, with -// a new engine version. You can update the engine version to either a new major -// or minor engine version. +// a new engine version. // -// Amazon RDS supports upgrading a MySQL DB snapshot from MySQL 5.1 to MySQL -// 5.5. +// Amazon RDS supports upgrading DB snapshots for MySQL and Oracle. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8531,10 +8529,15 @@ func (c *RDS) RestoreDBClusterFromSnapshotRequest(input *RestoreDBClusterFromSna // RestoreDBClusterFromSnapshot API operation for Amazon Relational Database Service. // -// Creates a new DB cluster from a DB cluster snapshot. The target DB cluster -// is created from the source DB cluster restore point with the same configuration -// as the original source DB cluster, except that the new DB cluster is created -// with the default security group. +// Creates a new DB cluster from a DB snapshot or DB cluster snapshot. +// +// If a DB snapshot is specified, the target DB cluster is created from the +// source DB snapshot with a default configuration and default security group. +// +// If a DB cluster snapshot is specified, the target DB cluster is created from +// the source DB cluster restore point with the same configuration as the original +// source DB cluster, except that the new DB cluster is created with the default +// security group. // // For more information on Amazon Aurora, see Aurora on Amazon RDS (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Aurora.html) // in the Amazon RDS User Guide. @@ -10960,10 +10963,17 @@ type CreateDBClusterInput struct { // the KMS encryption key used to encrypt the new DB cluster, then you can use // the KMS key alias instead of the ARN for the KMS encryption key. // - // If the StorageEncrypted parameter is true, and you do not specify a value - // for the KmsKeyId parameter, then Amazon RDS will use your default encryption - // key. AWS KMS creates the default encryption key for your AWS account. Your - // AWS account has a different default encryption key for each AWS Region. + // If an encryption key is not specified in KmsKeyId: + // + // * If ReplicationSourceIdentifier identifies an encrypted source, then + // Amazon RDS will use the encryption key used to encrypt the source. Otherwise, + // Amazon RDS will use your default encryption key. + // + // * If the StorageEncrypted parameter is true and ReplicationSourceIdentifier + // is not specified, then Amazon RDS will use your default encryption key. + // + // AWS KMS creates the default encryption key for your AWS account. Your AWS + // account has a different default encryption key for each AWS Region. // // If you create a Read Replica of an encrypted DB cluster in another AWS Region, // you must set KmsKeyId to a KMS key ID that is valid in the destination AWS @@ -11808,6 +11818,8 @@ type CreateDBInstanceInput struct { // Default: false EnableIAMDatabaseAuthentication *bool `type:"boolean"` + EnablePerformanceInsights *bool `type:"boolean"` + // The name of the database engine to be used for this instance. // // Not every database engine is available for every AWS Region. @@ -11972,7 +11984,7 @@ type CreateDBInstanceInput struct { // // PostgreSQL // - // Version 9.6.x: 9.6.1 | 9.6.2 + // Version 9.6.x: 9.6.1 | 9.6.2 | 9.6.3 // // Version 9.5.x:9.5.6 | 9.5.4 | 9.5.2 // @@ -12129,6 +12141,8 @@ type CreateDBInstanceInput struct { // from a DB instance once it is associated with a DB instance OptionGroupName *string `type:"string"` + PerformanceInsightsKMSKeyId *string `type:"string"` + // The port number on which the database accepts connections. // // MySQL @@ -12413,6 +12427,12 @@ func (s *CreateDBInstanceInput) SetEnableIAMDatabaseAuthentication(v bool) *Crea return s } +// SetEnablePerformanceInsights sets the EnablePerformanceInsights field's value. +func (s *CreateDBInstanceInput) SetEnablePerformanceInsights(v bool) *CreateDBInstanceInput { + s.EnablePerformanceInsights = &v + return s +} + // SetEngine sets the Engine field's value. func (s *CreateDBInstanceInput) SetEngine(v string) *CreateDBInstanceInput { s.Engine = &v @@ -12479,6 +12499,12 @@ func (s *CreateDBInstanceInput) SetOptionGroupName(v string) *CreateDBInstanceIn return s } +// SetPerformanceInsightsKMSKeyId sets the PerformanceInsightsKMSKeyId field's value. +func (s *CreateDBInstanceInput) SetPerformanceInsightsKMSKeyId(v string) *CreateDBInstanceInput { + s.PerformanceInsightsKMSKeyId = &v + return s +} + // SetPort sets the Port field's value. func (s *CreateDBInstanceInput) SetPort(v int64) *CreateDBInstanceInput { s.Port = &v @@ -12672,6 +12698,8 @@ type CreateDBInstanceReadReplicaInput struct { // Default: false EnableIAMDatabaseAuthentication *bool `type:"boolean"` + EnablePerformanceInsights *bool `type:"boolean"` + // The amount of Provisioned IOPS (input/output operations per second) to be // initially allocated for the DB instance. Iops *int64 `type:"integer"` @@ -12716,6 +12744,8 @@ type CreateDBInstanceReadReplicaInput struct { // default option group for the engine specified will be used. OptionGroupName *string `type:"string"` + PerformanceInsightsKMSKeyId *string `type:"string"` + // The port number that the DB instance uses for connections. // // Default: Inherits from the source DB instance @@ -12904,6 +12934,12 @@ func (s *CreateDBInstanceReadReplicaInput) SetEnableIAMDatabaseAuthentication(v return s } +// SetEnablePerformanceInsights sets the EnablePerformanceInsights field's value. +func (s *CreateDBInstanceReadReplicaInput) SetEnablePerformanceInsights(v bool) *CreateDBInstanceReadReplicaInput { + s.EnablePerformanceInsights = &v + return s +} + // SetIops sets the Iops field's value. func (s *CreateDBInstanceReadReplicaInput) SetIops(v int64) *CreateDBInstanceReadReplicaInput { s.Iops = &v @@ -12934,6 +12970,12 @@ func (s *CreateDBInstanceReadReplicaInput) SetOptionGroupName(v string) *CreateD return s } +// SetPerformanceInsightsKMSKeyId sets the PerformanceInsightsKMSKeyId field's value. +func (s *CreateDBInstanceReadReplicaInput) SetPerformanceInsightsKMSKeyId(v string) *CreateDBInstanceReadReplicaInput { + s.PerformanceInsightsKMSKeyId = &v + return s +} + // SetPort sets the Port field's value. func (s *CreateDBInstanceReadReplicaInput) SetPort(v int64) *CreateDBInstanceReadReplicaInput { s.Port = &v @@ -14919,6 +14961,10 @@ type DBInstance struct { // included when changes are pending. Specific changes are identified by subelements. PendingModifiedValues *PendingModifiedValues `type:"structure"` + PerformanceInsightsEnabled *bool `type:"boolean"` + + PerformanceInsightsKMSKeyId *string `type:"string"` + // Specifies the daily time range during which automated backups are created // if automated backups are enabled, as determined by the BackupRetentionPeriod. PreferredBackupWindow *string `type:"string"` @@ -15210,6 +15256,18 @@ func (s *DBInstance) SetPendingModifiedValues(v *PendingModifiedValues) *DBInsta return s } +// SetPerformanceInsightsEnabled sets the PerformanceInsightsEnabled field's value. +func (s *DBInstance) SetPerformanceInsightsEnabled(v bool) *DBInstance { + s.PerformanceInsightsEnabled = &v + return s +} + +// SetPerformanceInsightsKMSKeyId sets the PerformanceInsightsKMSKeyId field's value. +func (s *DBInstance) SetPerformanceInsightsKMSKeyId(v string) *DBInstance { + s.PerformanceInsightsKMSKeyId = &v + return s +} + // SetPreferredBackupWindow sets the PreferredBackupWindow field's value. func (s *DBInstance) SetPreferredBackupWindow(v string) *DBInstance { s.PreferredBackupWindow = &v @@ -22128,6 +22186,8 @@ type ModifyDBInstanceInput struct { // Default: false EnableIAMDatabaseAuthentication *bool `type:"boolean"` + EnablePerformanceInsights *bool `type:"boolean"` + // The version number of the database engine to upgrade to. Changing this parameter // results in an outage and the change is applied during the next maintenance // window unless the ApplyImmediately parameter is set to true for this request. @@ -22258,6 +22318,8 @@ type ModifyDBInstanceInput struct { // from a DB instance once it is associated with a DB instance OptionGroupName *string `type:"string"` + PerformanceInsightsKMSKeyId *string `type:"string"` + // The daily time range during which automated backups are created if automated // backups are enabled, as determined by the BackupRetentionPeriod parameter. // Changing this parameter does not result in an outage and the change is asynchronously @@ -22475,6 +22537,12 @@ func (s *ModifyDBInstanceInput) SetEnableIAMDatabaseAuthentication(v bool) *Modi return s } +// SetEnablePerformanceInsights sets the EnablePerformanceInsights field's value. +func (s *ModifyDBInstanceInput) SetEnablePerformanceInsights(v bool) *ModifyDBInstanceInput { + s.EnablePerformanceInsights = &v + return s +} + // SetEngineVersion sets the EngineVersion field's value. func (s *ModifyDBInstanceInput) SetEngineVersion(v string) *ModifyDBInstanceInput { s.EngineVersion = &v @@ -22529,6 +22597,12 @@ func (s *ModifyDBInstanceInput) SetOptionGroupName(v string) *ModifyDBInstanceIn return s } +// SetPerformanceInsightsKMSKeyId sets the PerformanceInsightsKMSKeyId field's value. +func (s *ModifyDBInstanceInput) SetPerformanceInsightsKMSKeyId(v string) *ModifyDBInstanceInput { + s.PerformanceInsightsKMSKeyId = &v + return s +} + // SetPreferredBackupWindow sets the PreferredBackupWindow field's value. func (s *ModifyDBInstanceInput) SetPreferredBackupWindow(v string) *ModifyDBInstanceInput { s.PreferredBackupWindow = &v @@ -22810,8 +22884,31 @@ type ModifyDBSnapshotInput struct { // DBSnapshotIdentifier is a required field DBSnapshotIdentifier *string `type:"string" required:"true"` - // The engine version to update the DB snapshot to. + // The engine version to upgrade the DB snapshot to. + // + // The following are the database engines and engine versions that are available + // when you upgrade a DB snapshot. + // + // MySQL + // + // * 5.5.46 (supported for 5.1 DB snapshots) + // + // Oracle + // + // * 12.1.0.2.v8 (supported for 12.1.0.1 DB snapshots) + // + // * 11.2.0.4.v12 (supported for 11.2.0.2 DB snapshots) + // + // * 11.2.0.4.v11 (supported for 11.2.0.3 DB snapshots) EngineVersion *string `type:"string"` + + // The option group to identify with the upgraded DB snapshot. + // + // You can specify this parameter when you upgrade an Oracle DB snapshot. The + // same option group considerations apply when upgrading a DB snapshot as when + // upgrading a DB instance. For more information, see Option Group Considerations + // (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Oracle.html#USER_UpgradeDBInstance.Oracle.OGPG.OG). + OptionGroupName *string `type:"string"` } // String returns the string representation @@ -22849,6 +22946,12 @@ func (s *ModifyDBSnapshotInput) SetEngineVersion(v string) *ModifyDBSnapshotInpu return s } +// SetOptionGroupName sets the OptionGroupName field's value. +func (s *ModifyDBSnapshotInput) SetOptionGroupName(v string) *ModifyDBSnapshotInput { + s.OptionGroupName = &v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSnapshotResult type ModifyDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -23930,6 +24033,8 @@ type OrderableDBInstanceOption struct { // Indicates whether this orderable DB instance supports provisioned IOPS. SupportsIops *bool `type:"boolean"` + SupportsPerformanceInsights *bool `type:"boolean"` + // Indicates whether this orderable DB instance supports encrypted storage. SupportsStorageEncryption *bool `type:"boolean"` @@ -24013,6 +24118,12 @@ func (s *OrderableDBInstanceOption) SetSupportsIops(v bool) *OrderableDBInstance return s } +// SetSupportsPerformanceInsights sets the SupportsPerformanceInsights field's value. +func (s *OrderableDBInstanceOption) SetSupportsPerformanceInsights(v bool) *OrderableDBInstanceOption { + s.SupportsPerformanceInsights = &v + return s +} + // SetSupportsStorageEncryption sets the SupportsStorageEncryption field's value. func (s *OrderableDBInstanceOption) SetSupportsStorageEncryption(v bool) *OrderableDBInstanceOption { s.SupportsStorageEncryption = &v @@ -25914,8 +26025,8 @@ type RestoreDBClusterFromSnapshotInput struct { // DB cluster can be created in. AvailabilityZones []*string `locationNameList:"AvailabilityZone" type:"list"` - // The name of the DB cluster to create from the DB cluster snapshot. This parameter - // isn't case-sensitive. + // The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. + // This parameter isn't case-sensitive. // // Constraints: // @@ -25960,7 +26071,7 @@ type RestoreDBClusterFromSnapshotInput struct { EngineVersion *string `type:"string"` // The KMS key identifier to use when restoring an encrypted DB cluster from - // a DB cluster snapshot. + // a DB snapshot or DB cluster snapshot. // // The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption // key. If you are restoring a DB cluster with the same AWS account that owns @@ -25970,12 +26081,12 @@ type RestoreDBClusterFromSnapshotInput struct { // If you do not specify a value for the KmsKeyId parameter, then the following // will occur: // - // * If the DB cluster snapshot is encrypted, then the restored DB cluster - // is encrypted using the KMS key that was used to encrypt the DB cluster - // snapshot. + // * If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, + // then the restored DB cluster is encrypted using the KMS key that was used + // to encrypt the DB snapshot or DB cluster snapshot. // - // * If the DB cluster snapshot is not encrypted, then the restored DB cluster - // is encrypted using the specified encryption key. + // * If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is not + // encrypted, then the restored DB cluster is not encrypted. KmsKeyId *string `type:"string"` // The name of the option group to use for the restored DB cluster. @@ -25988,7 +26099,11 @@ type RestoreDBClusterFromSnapshotInput struct { // Default: The same port as the original DB cluster. Port *int64 `type:"integer"` - // The identifier for the DB cluster snapshot to restore from. + // The identifier for the DB snapshot or DB cluster snapshot to restore from. + // + // You can use either the name or the Amazon Resource Name (ARN) to specify + // a DB cluster snapshot. However, you can use only the ARN to specify a DB + // snapshot. // // Constraints: // diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/rds/customizations_test.go index 62db13af..511b0302 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/customizations_test.go @@ -4,25 +4,29 @@ import ( "fmt" "io/ioutil" "net/url" + "regexp" + "strings" "testing" "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/awstesting" "github.com/aws/aws-sdk-go/awstesting/unit" - - "github.com/stretchr/testify/assert" ) func TestPresignWithPresignNotSet(t *testing.T) { reqs := map[string]*request.Request{} svc := New(unit.Session, &aws.Config{Region: aws.String("us-west-2")}) - assert.NotPanics(t, func() { + f := func() { // Doesn't panic on nil input req, _ := svc.CopyDBSnapshotRequest(nil) req.Sign() - }) + } + if paniced, p := awstesting.DidPanic(f); paniced { + t.Errorf("expect no panic, got %v", p) + } reqs[opCopyDBSnapshot], _ = svc.CopyDBSnapshotRequest(&CopyDBSnapshotInput{ SourceRegion: aws.String("us-west-1"), @@ -42,7 +46,11 @@ func TestPresignWithPresignNotSet(t *testing.T) { q, _ := url.ParseQuery(string(b)) u, _ := url.QueryUnescape(q.Get("PreSignedUrl")) - assert.Regexp(t, fmt.Sprintf(`^https://rds.us-west-1\.amazonaws\.com/\?Action=%s.+?DestinationRegion=us-west-2.+`, op), u) + + exp := fmt.Sprintf(`^https://rds.us-west-1\.amazonaws\.com/\?Action=%s.+?DestinationRegion=us-west-2.+`, op) + if re, a := regexp.MustCompile(exp), u; !re.MatchString(a) { + t.Errorf("expect %s to match %s", re, a) + } } } @@ -50,11 +58,14 @@ func TestPresignWithPresignSet(t *testing.T) { reqs := map[string]*request.Request{} svc := New(unit.Session, &aws.Config{Region: aws.String("us-west-2")}) - assert.NotPanics(t, func() { + f := func() { // Doesn't panic on nil input req, _ := svc.CopyDBSnapshotRequest(nil) req.Sign() - }) + } + if paniced, p := awstesting.DidPanic(f); paniced { + t.Errorf("expect no panic, got %v", p) + } reqs[opCopyDBSnapshot], _ = svc.CopyDBSnapshotRequest(&CopyDBSnapshotInput{ SourceRegion: aws.String("us-west-1"), @@ -77,7 +88,9 @@ func TestPresignWithPresignSet(t *testing.T) { q, _ := url.ParseQuery(string(b)) u, _ := url.QueryUnescape(q.Get("PreSignedUrl")) - assert.Regexp(t, `presignedURL`, u) + if e, a := "presignedURL", u; !strings.Contains(a, e) { + t.Errorf("expect %s to be in %s", e, a) + } } } @@ -85,11 +98,14 @@ func TestPresignWithSourceNotSet(t *testing.T) { reqs := map[string]*request.Request{} svc := New(unit.Session, &aws.Config{Region: aws.String("us-west-2")}) - assert.NotPanics(t, func() { + f := func() { // Doesn't panic on nil input req, _ := svc.CopyDBSnapshotRequest(nil) req.Sign() - }) + } + if paniced, p := awstesting.DidPanic(f); paniced { + t.Errorf("expect no panic, got %v", p) + } reqs[opCopyDBSnapshot], _ = svc.CopyDBSnapshotRequest(&CopyDBSnapshotInput{ SourceDBSnapshotIdentifier: aws.String("foo"), diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/rdsutils/connect_test.go b/vendor/github.com/aws/aws-sdk-go/service/rds/rdsutils/connect_test.go index 2d65700a..b912346d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/rdsutils/connect_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/rdsutils/connect_test.go @@ -1,12 +1,11 @@ package rdsutils_test import ( + "regexp" "testing" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/service/rds/rdsutils" - - "github.com/stretchr/testify/assert" ) func TestBuildAuthToken(t *testing.T) { @@ -33,7 +32,11 @@ func TestBuildAuthToken(t *testing.T) { for _, c := range cases { creds := credentials.NewStaticCredentials("AKID", "SECRET", "SESSION") url, err := rdsutils.BuildAuthToken(c.endpoint, c.region, c.user, creds) - assert.NoError(t, err) - assert.Regexp(t, c.expectedRegex, url) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if re, a := regexp.MustCompile(c.expectedRegex), url; !re.MatchString(a) { + t.Errorf("expect %s to match %s", re, a) + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go index d5ba5626..1a9949c3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go @@ -3617,10 +3617,20 @@ func (c *Redshift) DescribeEventSubscriptionsRequest(input *DescribeEventSubscri // DescribeEventSubscriptions API operation for Amazon Redshift. // -// Lists descriptions of all the Amazon Redshift event notifications subscription +// Lists descriptions of all the Amazon Redshift event notification subscriptions // for a customer account. If you specify a subscription name, lists the description // for that subscription. // +// If you specify both tag keys and tag values in the same request, Amazon Redshift +// returns all event notification subscriptions that match any combination of +// the specified keys and values. For example, if you have owner and environment +// for tag keys, and admin and test for tag values, all subscriptions that have +// any combination of those values are returned. +// +// If both tag keys and values are omitted from the request, subscriptions are +// returned regardless of whether they have tag keys or values associated with +// them. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -3633,6 +3643,9 @@ func (c *Redshift) DescribeEventSubscriptionsRequest(input *DescribeEventSubscri // An Amazon Redshift event notification subscription with the specified name // does not exist. // +// * ErrCodeInvalidTagFault "InvalidTagFault" +// The tag is invalid. +// // Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptions func (c *Redshift) DescribeEventSubscriptions(input *DescribeEventSubscriptionsInput) (*DescribeEventSubscriptionsOutput, error) { req, out := c.DescribeEventSubscriptionsRequest(input) @@ -5435,19 +5448,20 @@ func (c *Redshift) GetClusterCredentialsRequest(input *GetClusterCredentialsInpu // GetClusterCredentials API operation for Amazon Redshift. // // Returns a database user name and temporary password with temporary authorization -// to log in to an Amazon Redshift database. The action returns the database +// to log on to an Amazon Redshift database. The action returns the database // user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate // is True. You can optionally specify one or more database user groups that -// the user will join at log in. By default, the temporary credentials expire +// the user will join at log on. By default, the temporary credentials expire // in 900 seconds. You can optionally specify a duration between 900 seconds -// (15 minutes) and 3600 seconds (60 minutes). For more information, see Generating -// IAM Database User Credentials in the Amazon Redshift Cluster Management Guide. +// (15 minutes) and 3600 seconds (60 minutes). For more information, see Using +// IAM Authentication to Generate Database User Credentials (http://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html) +// in the Amazon Redshift Cluster Management Guide. // -// The IAM user or role that executes GetClusterCredentials must have an IAM -// policy attached that allows the redshift:GetClusterCredentials action with -// access to the dbuser resource on the cluster. The user name specified for -// dbuser in the IAM policy and the user name specified for the DbUser parameter -// must match. +// The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials +// must have an IAM policy attached that allows access to all necessary actions +// and resources. For more information about permissions, see Resource Policies +// for GetClusterCredentials (http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources) +// in the Amazon Redshift Cluster Management Guide. // // If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup // action with access to the listed dbgroups. @@ -11452,6 +11466,22 @@ type DescribeEventSubscriptionsInput struct { // The name of the Amazon Redshift event notification subscription to be described. SubscriptionName *string `type:"string"` + + // A tag key or keys for which you want to return all matching event notification + // subscriptions that are associated with the specified key or keys. For example, + // suppose that you have subscriptions that are tagged with keys called owner + // and environment. If you specify both of these tag keys in the request, Amazon + // Redshift returns a response with the subscriptions that have either or both + // of these tag keys associated with them. + TagKeys []*string `locationNameList:"TagKey" type:"list"` + + // A tag value or values for which you want to return all matching event notification + // subscriptions that are associated with the specified tag value or values. + // For example, suppose that you have subscriptions that are tagged with values + // called admin and test. If you specify both of these tag values in the request, + // Amazon Redshift returns a response with the subscriptions that have either + // or both of these tag values associated with them. + TagValues []*string `locationNameList:"TagValue" type:"list"` } // String returns the string representation @@ -11482,6 +11512,18 @@ func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *Describ return s } +// SetTagKeys sets the TagKeys field's value. +func (s *DescribeEventSubscriptionsInput) SetTagKeys(v []*string) *DescribeEventSubscriptionsInput { + s.TagKeys = v + return s +} + +// SetTagValues sets the TagValues field's value. +func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEventSubscriptionsInput { + s.TagValues = v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventSubscriptionsMessage type DescribeEventSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -12713,7 +12755,8 @@ type DescribeTagsInput struct { // * Snapshot copy grant // // For more information about Amazon Redshift resource types and constructing - // ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html) + // ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and + // Principals (http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions) // in the Amazon Redshift Cluster Management Guide. ResourceType *string `type:"string"` @@ -13553,8 +13596,8 @@ func (s *EventSubscription) SetTags(v []*Tag) *EventSubscription { type GetClusterCredentialsInput struct { _ struct{} `type:"structure"` - // Create a database user with the name specified for DbUser if one does not - // exist. + // Create a database user with the name specified for the user named in DbUser + // if one does not exist. AutoCreate *bool `type:"boolean"` // The unique identifier of the cluster that contains the database for which @@ -13563,18 +13606,39 @@ type GetClusterCredentialsInput struct { // ClusterIdentifier is a required field ClusterIdentifier *string `type:"string" required:"true"` - // A list of the names of existing database groups that DbUser will join for - // the current session. If not specified, the new user is added only to PUBLIC. + // A list of the names of existing database groups that the user named in DbUser + // will join for the current session, in addition to any group memberships for + // an existing user. If not specified, a new user is added only to PUBLIC. + // + // Database group name constraints + // + // * Must be 1 to 64 alphanumeric characters or hyphens + // + // * Must contain only lowercase letters, numbers, underscore, plus sign, + // period (dot), at symbol (@), or hyphen. + // + // * First character must be a letter. + // + // * Must not contain a colon ( : ) or slash ( / ). + // + // * Cannot be a reserved word. A list of reserved words can be found in + // Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) + // in the Amazon Redshift Database Developer Guide. DbGroups []*string `locationNameList:"DbGroup" type:"list"` // The name of a database that DbUser is authorized to log on to. If DbName - // is not specified, DbUser can log in to any existing database. + // is not specified, DbUser can log on to any existing database. // // Constraints: // // * Must be 1 to 64 alphanumeric characters or hyphens // - // * Must contain only lowercase letters. + // * Must contain only lowercase letters, numbers, underscore, plus sign, + // period (dot), at symbol (@), or hyphen. + // + // * First character must be a letter. + // + // * Must not contain a colon ( : ) or slash ( / ). // // * Cannot be a reserved word. A list of reserved words can be found in // Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) @@ -13589,14 +13653,15 @@ type GetClusterCredentialsInput struct { // is False, then the command succeeds but the connection attempt will fail // because the user doesn't exist in the database. // - // For more information, see CREATE USER (http://docs.aws.amazon.com/http:/docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html) + // For more information, see CREATE USER (http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html) // in the Amazon Redshift Database Developer Guide. // // Constraints: // - // * Must be 1 to 128 alphanumeric characters or hyphens + // * Must be 1 to 64 alphanumeric characters or hyphens // - // * Must contain only lowercase letters. + // * Must contain only lowercase letters, numbers, underscore, plus sign, + // period (dot), at symbol (@), or hyphen. // // * First character must be a letter. // @@ -13679,7 +13744,7 @@ func (s *GetClusterCredentialsInput) SetDurationSeconds(v int64) *GetClusterCred return s } -// Temporary credentials with authorization to log in to an Amazon Redshift +// Temporary credentials with authorization to log on to an Amazon Redshift // database. // Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterCredentials type GetClusterCredentialsOutput struct { @@ -13690,12 +13755,14 @@ type GetClusterCredentialsOutput struct { DbPassword *string `type:"string"` // A database user name that is authorized to log on to the database DbName - // using the password DbPassword. If the DbGroups parameter is specifed, DbUser - // is added to the listed groups for the current session. The user name is prefixed - // with IAM: for an existing user name or IAMA: if the user was auto-created. + // using the password DbPassword. If the specified DbUser exists in the database, + // the new user name has the same database privileges as the the user named + // in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter + // is specifed, DbUser is added to the listed groups for any sessions created + // using these credentials. DbUser *string `type:"string"` - // The date and time DbPassword expires. + // The date and time the password in DbPassword expires. Expiration *time.Time `type:"timestamp" timestampFormat:"iso8601"` } @@ -16990,7 +17057,7 @@ type TaggedResource struct { // * Parameter group // // For more information about Amazon Redshift resource types and constructing - // ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html) + // ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions) // in the Amazon Redshift Cluster Management Guide. ResourceType *string `type:"string"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/api.go b/vendor/github.com/aws/aws-sdk-go/service/route53/api.go index 68829140..bc077007 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/api.go @@ -5540,12 +5540,16 @@ type AliasTarget struct { // Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of // DNSName. For more information, see the applicable guide: // - // Classic Load Balancer: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) + // Classic Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) // - // Application Load Balancer: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) + // Application and Network Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) // - // AWS CLI: Use describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) - // to get the value of DNSName. + // AWS CLI: Use describe-load-balancers to get the value of DNSName. For more + // information, see the applicable guide: + // + // Classic Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) + // + // Application and Network Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) // // Amazon S3 bucket that is configured as a static websiteSpecify the domain // name of the Amazon S3 website endpoint in which you created the bucket, for @@ -5634,23 +5638,28 @@ type AliasTarget struct { // // Elastic Load Balancing (http://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region) // table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services - // General Reference: Use the value in the "Amazon Route 53 Hosted Zone ID" - // column that corresponds with the region that you created your load balancer - // in. + // General Reference: Use the value that corresponds with the region that you + // created your load balancer in. Note that there are separate columns for Application + // and Classic Load Balancers and for Network Load Balancers. // - // AWS Management Console: Go to the Amazon EC2 page, click Load Balancers in - // the navigation pane, select the load balancer, and get the value of the Hosted - // zone field on the Description tab. + // AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers + // in the navigation pane, select the load balancer, and get the value of the + // Hosted zone field on the Description tab. // // Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of // CanonicalHostedZoneNameId. For more information, see the applicable guide: // - // Classic Load Balancer: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) + // Classic Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) // - // Application Load Balancer: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) + // Application and Network Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) // - // AWS CLI: Use describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) - // to get the value of CanonicalHostedZoneNameID. + // AWS CLI: Use describe-load-balancers to get the value of CanonicalHostedZoneNameID + // (for Classic Load Balancers) or CanonicalHostedZoneNameID (for Application + // and Network Load Balancers). For more information, see the applicable guide: + // + // Classic Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) + // + // Application and Network Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) // // An Amazon S3 bucket configured as a static websiteSpecify the hosted zone // ID for the region that you created the bucket in. For more information about @@ -13342,6 +13351,23 @@ type UpdateHealthCheckInput struct { // want Amazon Route 53 health checkers to check the specified endpoint from. Regions []*string `locationNameList:"Region" min:"3" type:"list"` + // A complex type that contains one ResetElement element for each element that + // you want to reset to the default value. Valid values for ResetElement include + // the following: + // + // * ChildHealthChecks: Amazon Route 53 resets HealthCheckConfig$ChildHealthChecks + // to null. + // + // * FullyQualifiedDomainName: Amazon Route 53 resets HealthCheckConfig$FullyQualifiedDomainName + // to null. + // + // * Regions: Amazon Route 53 resets the HealthCheckConfig$Regions list to + // the default set of regions. + // + // * ResourcePath: Amazon Route 53 resets HealthCheckConfig$ResourcePath + // to null. + ResetElements []*string `locationNameList:"ResettableElementName" type:"list"` + // The path that you want Amazon Route 53 to request when performing health // checks. The path can be any value for which your endpoint will return an // HTTP status code of 2xx or 3xx when the endpoint is healthy, for example @@ -13476,6 +13502,12 @@ func (s *UpdateHealthCheckInput) SetRegions(v []*string) *UpdateHealthCheckInput return s } +// SetResetElements sets the ResetElements field's value. +func (s *UpdateHealthCheckInput) SetResetElements(v []*string) *UpdateHealthCheckInput { + s.ResetElements = v + return s +} + // SetResourcePath sets the ResourcePath field's value. func (s *UpdateHealthCheckInput) SetResourcePath(v string) *UpdateHealthCheckInput { s.ResourcePath = &v @@ -14043,6 +14075,20 @@ const ( RRTypeCaa = "CAA" ) +const ( + // ResettableElementNameFullyQualifiedDomainName is a ResettableElementName enum value + ResettableElementNameFullyQualifiedDomainName = "FullyQualifiedDomainName" + + // ResettableElementNameRegions is a ResettableElementName enum value + ResettableElementNameRegions = "Regions" + + // ResettableElementNameResourcePath is a ResettableElementName enum value + ResettableElementNameResourcePath = "ResourcePath" + + // ResettableElementNameChildHealthChecks is a ResettableElementName enum value + ResettableElementNameChildHealthChecks = "ChildHealthChecks" +) + const ( // ResourceRecordSetFailoverPrimary is a ResourceRecordSetFailover enum value ResourceRecordSetFailoverPrimary = "PRIMARY" diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_leak_test.go b/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_leak_test.go index 2d6d86d8..74926ae9 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_leak_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_leak_test.go @@ -4,8 +4,6 @@ import ( "net/http" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/awstesting" ) @@ -31,7 +29,15 @@ func TestUnmarhsalErrorLeak(t *testing.T) { reader := req.HTTPResponse.Body.(*awstesting.ReadCloser) unmarshalChangeResourceRecordSetsError(req) - assert.NotNil(t, req.Error) - assert.Equal(t, reader.Closed, true) - assert.Equal(t, reader.Size, 0) + if req.Error == nil { + t.Error("expected an error, but received none") + } + + if !reader.Closed { + t.Error("expected reader to be closed") + } + + if e, a := 0, reader.Size; e != a { + t.Errorf("expected %d, but received %d", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_test.go b/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_test.go index 7d5aa90c..750a937f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/unmarshal_error_test.go @@ -6,8 +6,6 @@ import ( "net/http" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -49,9 +47,17 @@ func TestUnmarshalStandardError(t *testing.T) { Name: aws.String("test_zone"), }) - assert.Error(t, err) - assert.Equal(t, "InvalidDomainName", err.(awserr.Error).Code()) - assert.Equal(t, "The domain name is invalid", err.(awserr.Error).Message()) + if err == nil { + t.Error("expected error, but received none") + } + + if e, a := "InvalidDomainName", err.(awserr.Error).Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + + if e, a := "The domain name is invalid", err.(awserr.Error).Message(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestUnmarshalInvalidChangeBatch(t *testing.T) { @@ -91,21 +97,34 @@ but it already exists } _, err := r.ChangeResourceRecordSets(req) - assert.Error(t, err) + if err == nil { + t.Error("expected error, but received none") + } if reqErr, ok := err.(awserr.RequestFailure); ok { - assert.Error(t, reqErr) - assert.Equal(t, 400, reqErr.StatusCode()) + if reqErr == nil { + t.Error("expected error, but received none") + } + + if e, a := 400, reqErr.StatusCode(); e != a { + t.Errorf("expected %d, but received %d", e, a) + } } else { - assert.Fail(t, "returned error is not a RequestFailure") + t.Fatal("returned error is not a RequestFailure") } if batchErr, ok := err.(awserr.BatchedErrors); ok { errs := batchErr.OrigErrs() - assert.Len(t, errs, 1) - assert.Equal(t, "InvalidChangeBatch", errs[0].(awserr.Error).Code()) - assert.Equal(t, errorMessage, errs[0].(awserr.Error).Message()) + if e, a := 1, len(errs); e != a { + t.Errorf("expected %d, but received %d", e, a) + } + if e, a := "InvalidChangeBatch", errs[0].(awserr.Error).Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := errorMessage, errs[0].(awserr.Error).Message(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } else { - assert.Fail(t, "returned error is not a BatchedErrors") + t.Fatal("returned error is not a BatchedErrors") } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53domains/api.go b/vendor/github.com/aws/aws-sdk-go/service/route53domains/api.go index cb899794..6fd087c6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53domains/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53domains/api.go @@ -69,11 +69,11 @@ func (c *Route53Domains) CheckDomainAvailabilityRequest(input *CheckDomainAvaila // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/CheckDomainAvailability func (c *Route53Domains) CheckDomainAvailability(input *CheckDomainAvailabilityInput) (*CheckDomainAvailabilityOutput, error) { @@ -97,6 +97,90 @@ func (c *Route53Domains) CheckDomainAvailabilityWithContext(ctx aws.Context, inp return out, req.Send() } +const opCheckDomainTransferability = "CheckDomainTransferability" + +// CheckDomainTransferabilityRequest generates a "aws/request.Request" representing the +// client's request for the CheckDomainTransferability operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CheckDomainTransferability for more information on using the CheckDomainTransferability +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CheckDomainTransferabilityRequest method. +// req, resp := client.CheckDomainTransferabilityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/CheckDomainTransferability +func (c *Route53Domains) CheckDomainTransferabilityRequest(input *CheckDomainTransferabilityInput) (req *request.Request, output *CheckDomainTransferabilityOutput) { + op := &request.Operation{ + Name: opCheckDomainTransferability, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CheckDomainTransferabilityInput{} + } + + output = &CheckDomainTransferabilityOutput{} + req = c.newRequest(op, input, output) + return +} + +// CheckDomainTransferability API operation for Amazon Route 53 Domains. +// +// Checks whether a domain name can be transferred to Amazon Route 53. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Route 53 Domains's +// API operation CheckDomainTransferability for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidInput "InvalidInput" +// The requested item is not acceptable. For example, for an OperationId it +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. +// +// * ErrCodeUnsupportedTLD "UnsupportedTLD" +// Amazon Route 53 does not support this top-level domain (TLD). +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/CheckDomainTransferability +func (c *Route53Domains) CheckDomainTransferability(input *CheckDomainTransferabilityInput) (*CheckDomainTransferabilityOutput, error) { + req, out := c.CheckDomainTransferabilityRequest(input) + return out, req.Send() +} + +// CheckDomainTransferabilityWithContext is the same as CheckDomainTransferability with the addition of +// the ability to pass a context and additional request options. +// +// See CheckDomainTransferability for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Route53Domains) CheckDomainTransferabilityWithContext(ctx aws.Context, input *CheckDomainTransferabilityInput, opts ...request.Option) (*CheckDomainTransferabilityOutput, error) { + req, out := c.CheckDomainTransferabilityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteTagsForDomain = "DeleteTagsForDomain" // DeleteTagsForDomainRequest generates a "aws/request.Request" representing the @@ -143,8 +227,8 @@ func (c *Route53Domains) DeleteTagsForDomainRequest(input *DeleteTagsForDomainIn // // This operation deletes the specified tags for a domain. // -// All tag operations are eventually consistent; subsequent operations may not -// immediately represent all issued operations. +// All tag operations are eventually consistent; subsequent operations might +// not immediately represent all issued operations. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -156,15 +240,15 @@ func (c *Route53Domains) DeleteTagsForDomainRequest(input *DeleteTagsForDomainIn // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeOperationLimitExceeded "OperationLimitExceeded" // The number of operations or jobs running exceeded the allowed threshold for // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/DeleteTagsForDomain func (c *Route53Domains) DeleteTagsForDomain(input *DeleteTagsForDomainInput) (*DeleteTagsForDomainOutput, error) { @@ -245,11 +329,11 @@ func (c *Route53Domains) DisableDomainAutoRenewRequest(input *DisableDomainAutoR // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/DisableDomainAutoRenew func (c *Route53Domains) DisableDomainAutoRenew(input *DisableDomainAutoRenewInput) (*DisableDomainAutoRenewOutput, error) { @@ -335,8 +419,8 @@ func (c *Route53Domains) DisableDomainTransferLockRequest(input *DisableDomainTr // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -349,7 +433,7 @@ func (c *Route53Domains) DisableDomainTransferLockRequest(input *DisableDomainTr // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/DisableDomainTransferLock func (c *Route53Domains) DisableDomainTransferLock(input *DisableDomainTransferLockInput) (*DisableDomainTransferLockOutput, error) { @@ -438,11 +522,11 @@ func (c *Route53Domains) EnableDomainAutoRenewRequest(input *EnableDomainAutoRen // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // * ErrCodeTLDRulesViolation "TLDRulesViolation" // The top-level domain does not support this operation. @@ -529,8 +613,8 @@ func (c *Route53Domains) EnableDomainTransferLockRequest(input *EnableDomainTran // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -543,7 +627,7 @@ func (c *Route53Domains) EnableDomainTransferLockRequest(input *EnableDomainTran // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/EnableDomainTransferLock func (c *Route53Domains) EnableDomainTransferLock(input *EnableDomainTransferLockInput) (*EnableDomainTransferLockOutput, error) { @@ -628,15 +712,15 @@ func (c *Route53Domains) GetContactReachabilityStatusRequest(input *GetContactRe // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeOperationLimitExceeded "OperationLimitExceeded" // The number of operations or jobs running exceeded the allowed threshold for // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/GetContactReachabilityStatus func (c *Route53Domains) GetContactReachabilityStatus(input *GetContactReachabilityStatusInput) (*GetContactReachabilityStatusOutput, error) { @@ -718,11 +802,11 @@ func (c *Route53Domains) GetDomainDetailRequest(input *GetDomainDetailInput) (re // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/GetDomainDetail func (c *Route53Domains) GetDomainDetail(input *GetDomainDetailInput) (*GetDomainDetailOutput, error) { @@ -804,11 +888,11 @@ func (c *Route53Domains) GetDomainSuggestionsRequest(input *GetDomainSuggestions // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/GetDomainSuggestions func (c *Route53Domains) GetDomainSuggestions(input *GetDomainSuggestionsInput) (*GetDomainSuggestionsOutput, error) { @@ -888,8 +972,8 @@ func (c *Route53Domains) GetOperationDetailRequest(input *GetOperationDetailInpu // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/GetOperationDetail func (c *Route53Domains) GetOperationDetail(input *GetOperationDetailInput) (*GetOperationDetailOutput, error) { @@ -976,8 +1060,8 @@ func (c *Route53Domains) ListDomainsRequest(input *ListDomainsInput) (req *reque // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ListDomains func (c *Route53Domains) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) { @@ -1113,8 +1197,8 @@ func (c *Route53Domains) ListOperationsRequest(input *ListOperationsInput) (req // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ListOperations func (c *Route53Domains) ListOperations(input *ListOperationsInput) (*ListOperationsOutput, error) { @@ -1235,8 +1319,8 @@ func (c *Route53Domains) ListTagsForDomainRequest(input *ListTagsForDomainInput) // This operation returns all of the tags that are associated with the specified // domain. // -// All tag operations are eventually consistent; subsequent operations may not -// immediately represent all issued operations. +// All tag operations are eventually consistent; subsequent operations might +// not immediately represent all issued operations. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1248,15 +1332,15 @@ func (c *Route53Domains) ListTagsForDomainRequest(input *ListTagsForDomainInput) // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeOperationLimitExceeded "OperationLimitExceeded" // The number of operations or jobs running exceeded the allowed threshold for // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ListTagsForDomain func (c *Route53Domains) ListTagsForDomain(input *ListTagsForDomainInput) (*ListTagsForDomainOutput, error) { @@ -1360,11 +1444,11 @@ func (c *Route53Domains) RegisterDomainRequest(input *RegisterDomainInput) (req // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -1464,11 +1548,11 @@ func (c *Route53Domains) RenewDomainRequest(input *RenewDomainInput) (req *reque // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -1560,15 +1644,15 @@ func (c *Route53Domains) ResendContactReachabilityEmailRequest(input *ResendCont // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeOperationLimitExceeded "OperationLimitExceeded" // The number of operations or jobs running exceeded the allowed threshold for // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ResendContactReachabilityEmail func (c *Route53Domains) ResendContactReachabilityEmail(input *ResendContactReachabilityEmailInput) (*ResendContactReachabilityEmailOutput, error) { @@ -1649,11 +1733,11 @@ func (c *Route53Domains) RetrieveDomainAuthCodeRequest(input *RetrieveDomainAuth // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/RetrieveDomainAuthCode func (c *Route53Domains) RetrieveDomainAuthCode(input *RetrieveDomainAuthCodeInput) (*RetrieveDomainAuthCodeOutput, error) { @@ -1757,11 +1841,11 @@ func (c *Route53Domains) TransferDomainRequest(input *TransferDomainInput) (req // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -1861,8 +1945,8 @@ func (c *Route53Domains) UpdateDomainContactRequest(input *UpdateDomainContactIn // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -1875,7 +1959,7 @@ func (c *Route53Domains) UpdateDomainContactRequest(input *UpdateDomainContactIn // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/UpdateDomainContact func (c *Route53Domains) UpdateDomainContact(input *UpdateDomainContactInput) (*UpdateDomainContactOutput, error) { @@ -1965,8 +2049,8 @@ func (c *Route53Domains) UpdateDomainContactPrivacyRequest(input *UpdateDomainCo // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -1979,7 +2063,7 @@ func (c *Route53Domains) UpdateDomainContactPrivacyRequest(input *UpdateDomainCo // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/UpdateDomainContactPrivacy func (c *Route53Domains) UpdateDomainContactPrivacy(input *UpdateDomainContactPrivacyInput) (*UpdateDomainContactPrivacyOutput, error) { @@ -2066,8 +2150,8 @@ func (c *Route53Domains) UpdateDomainNameserversRequest(input *UpdateDomainNames // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeDuplicateRequest "DuplicateRequest" // The request is already in progress for the domain. @@ -2080,7 +2164,7 @@ func (c *Route53Domains) UpdateDomainNameserversRequest(input *UpdateDomainNames // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/UpdateDomainNameservers func (c *Route53Domains) UpdateDomainNameservers(input *UpdateDomainNameserversInput) (*UpdateDomainNameserversOutput, error) { @@ -2150,8 +2234,8 @@ func (c *Route53Domains) UpdateTagsForDomainRequest(input *UpdateTagsForDomainIn // // This operation adds or updates tags for a specified domain. // -// All tag operations are eventually consistent; subsequent operations may not -// immediately represent all issued operations. +// All tag operations are eventually consistent; subsequent operations might +// not immediately represent all issued operations. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2163,15 +2247,15 @@ func (c *Route53Domains) UpdateTagsForDomainRequest(input *UpdateTagsForDomainIn // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // * ErrCodeOperationLimitExceeded "OperationLimitExceeded" // The number of operations or jobs running exceeded the allowed threshold for // the account. // // * ErrCodeUnsupportedTLD "UnsupportedTLD" -// Amazon Route 53 does not support this top-level domain. +// Amazon Route 53 does not support this top-level domain (TLD). // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/UpdateTagsForDomain func (c *Route53Domains) UpdateTagsForDomain(input *UpdateTagsForDomainInput) (*UpdateTagsForDomainOutput, error) { @@ -2252,8 +2336,8 @@ func (c *Route53Domains) ViewBillingRequest(input *ViewBillingInput) (req *reque // Returned Error Codes: // * ErrCodeInvalidInput "InvalidInput" // The requested item is not acceptable. For example, for an OperationId it -// may refer to the ID of an operation that is already completed. For a domain -// name, it may not be a valid domain name or belong to the requester account. +// might refer to the ID of an operation that is already completed. For a domain +// name, it might not be a valid domain name or belong to the requester account. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ViewBilling func (c *Route53Domains) ViewBilling(input *ViewBillingInput) (*ViewBillingOutput, error) { @@ -2404,7 +2488,7 @@ type CheckDomainAvailabilityOutput struct { // Whether the domain name is available for registering. // - // You can only register domains designated as AVAILABLE. + // You can register only domains designated as AVAILABLE. // // Valid values: // @@ -2451,6 +2535,89 @@ func (s *CheckDomainAvailabilityOutput) SetAvailability(v string) *CheckDomainAv return s } +// The CheckDomainTransferability request contains the following elements. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/CheckDomainTransferabilityRequest +type CheckDomainTransferabilityInput struct { + _ struct{} `type:"structure"` + + // If the registrar for the top-level domain (TLD) requires an authorization + // code to transfer the domain, the code that you got from the current registrar + // for the domain. + AuthCode *string `type:"string"` + + // The name of the domain that you want to transfer to Amazon Route 53. + // + // Constraints: The domain name can contain only the letters a through z, the + // numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not + // supported. + // + // DomainName is a required field + DomainName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CheckDomainTransferabilityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CheckDomainTransferabilityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CheckDomainTransferabilityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CheckDomainTransferabilityInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthCode sets the AuthCode field's value. +func (s *CheckDomainTransferabilityInput) SetAuthCode(v string) *CheckDomainTransferabilityInput { + s.AuthCode = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *CheckDomainTransferabilityInput) SetDomainName(v string) *CheckDomainTransferabilityInput { + s.DomainName = &v + return s +} + +// The CheckDomainTransferability response includes the following elements. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/CheckDomainTransferabilityResponse +type CheckDomainTransferabilityOutput struct { + _ struct{} `type:"structure"` + + // A complex type that contains information about whether the specified domain + // can be transferred to Amazon Route 53. + // + // Transferability is a required field + Transferability *DomainTransferability `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CheckDomainTransferabilityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CheckDomainTransferabilityOutput) GoString() string { + return s.String() +} + +// SetTransferability sets the Transferability field's value. +func (s *CheckDomainTransferabilityOutput) SetTransferability(v *DomainTransferability) *CheckDomainTransferabilityOutput { + s.Transferability = v + return s +} + // ContactDetail includes the following elements. // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/ContactDetail type ContactDetail struct { @@ -2930,6 +3097,40 @@ func (s *DomainSummary) SetTransferLock(v bool) *DomainSummary { return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/DomainTransferability +type DomainTransferability struct { + _ struct{} `type:"structure"` + + // Whether the domain name can be transferred to Amazon Route 53. + // + // You can transfer only domains that have a value of TRANSFERABLE for Transferable. + // + // Valid values: + // + // TRANSFERABLEThe domain name can be transferred to Amazon Route 53. + // + // UNTRANSFERRABLEThe domain name can't be transferred to Amazon Route 53. + // + // DONT_KNOWReserved for future use. + Transferable *string `type:"string" enum:"Transferable"` +} + +// String returns the string representation +func (s DomainTransferability) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DomainTransferability) GoString() string { + return s.String() +} + +// SetTransferable sets the Transferable field's value. +func (s *DomainTransferability) SetTransferable(v string) *DomainTransferability { + s.Transferable = &v + return s +} + // Please also see https://docs.aws.amazon.com/goto/WebAPI/route53domains-2014-05-15/EnableDomainAutoRenewRequest type EnableDomainAutoRenewInput struct { _ struct{} `type:"structure"` @@ -4978,7 +5179,7 @@ type UpdateDomainNameserversInput struct { DomainName *string `type:"string" required:"true"` // The authorization key for .fi domains - FIAuthKey *string `type:"string"` + FIAuthKey *string `deprecated:"true" type:"string"` // A list of new name servers for the domain. // @@ -6014,9 +6215,18 @@ const ( // ExtraParamNameFiIdNumber is a ExtraParamName enum value ExtraParamNameFiIdNumber = "FI_ID_NUMBER" + // ExtraParamNameFiNationality is a ExtraParamName enum value + ExtraParamNameFiNationality = "FI_NATIONALITY" + + // ExtraParamNameFiOrganizationType is a ExtraParamName enum value + ExtraParamNameFiOrganizationType = "FI_ORGANIZATION_TYPE" + // ExtraParamNameItPin is a ExtraParamName enum value ExtraParamNameItPin = "IT_PIN" + // ExtraParamNameItRegistrantEntityType is a ExtraParamName enum value + ExtraParamNameItRegistrantEntityType = "IT_REGISTRANT_ENTITY_TYPE" + // ExtraParamNameRuPassportData is a ExtraParamName enum value ExtraParamNameRuPassportData = "RU_PASSPORT_DATA" @@ -6028,6 +6238,12 @@ const ( // ExtraParamNameVatNumber is a ExtraParamName enum value ExtraParamNameVatNumber = "VAT_NUMBER" + + // ExtraParamNameUkContactType is a ExtraParamName enum value + ExtraParamNameUkContactType = "UK_CONTACT_TYPE" + + // ExtraParamNameUkCompanyNumber is a ExtraParamName enum value + ExtraParamNameUkCompanyNumber = "UK_COMPANY_NUMBER" ) const ( @@ -6068,6 +6284,33 @@ const ( // OperationTypeDomainLock is a OperationType enum value OperationTypeDomainLock = "DOMAIN_LOCK" + + // OperationTypeEnableAutorenew is a OperationType enum value + OperationTypeEnableAutorenew = "ENABLE_AUTORENEW" + + // OperationTypeDisableAutorenew is a OperationType enum value + OperationTypeDisableAutorenew = "DISABLE_AUTORENEW" + + // OperationTypeAddDnssec is a OperationType enum value + OperationTypeAddDnssec = "ADD_DNSSEC" + + // OperationTypeRemoveDnssec is a OperationType enum value + OperationTypeRemoveDnssec = "REMOVE_DNSSEC" + + // OperationTypeExpireDomain is a OperationType enum value + OperationTypeExpireDomain = "EXPIRE_DOMAIN" + + // OperationTypeTransferOutDomain is a OperationType enum value + OperationTypeTransferOutDomain = "TRANSFER_OUT_DOMAIN" + + // OperationTypeChangeDomainOwner is a OperationType enum value + OperationTypeChangeDomainOwner = "CHANGE_DOMAIN_OWNER" + + // OperationTypeRenewDomain is a OperationType enum value + OperationTypeRenewDomain = "RENEW_DOMAIN" + + // OperationTypePushDomain is a OperationType enum value + OperationTypePushDomain = "PUSH_DOMAIN" ) const ( @@ -6080,3 +6323,25 @@ const ( // ReachabilityStatusExpired is a ReachabilityStatus enum value ReachabilityStatusExpired = "EXPIRED" ) + +// Whether the domain name can be transferred to Amazon Route 53. +// +// You can transfer only domains that have a value of TRANSFERABLE for Transferable. +// +// Valid values: +// +// TRANSFERABLEThe domain name can be transferred to Amazon Route 53. +// +// UNTRANSFERRABLEThe domain name can't be transferred to Amazon Route 53. +// +// DONT_KNOWReserved for future use. +const ( + // TransferableTransferable is a Transferable enum value + TransferableTransferable = "TRANSFERABLE" + + // TransferableUntransferable is a Transferable enum value + TransferableUntransferable = "UNTRANSFERABLE" + + // TransferableDontKnow is a Transferable enum value + TransferableDontKnow = "DONT_KNOW" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53domains/errors.go b/vendor/github.com/aws/aws-sdk-go/service/route53domains/errors.go index 9e91a852..f6fc9ef0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53domains/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53domains/errors.go @@ -20,8 +20,8 @@ const ( // "InvalidInput". // // The requested item is not acceptable. For example, for an OperationId it - // may refer to the ID of an operation that is already completed. For a domain - // name, it may not be a valid domain name or belong to the requester account. + // might refer to the ID of an operation that is already completed. For a domain + // name, it might not be a valid domain name or belong to the requester account. ErrCodeInvalidInput = "InvalidInput" // ErrCodeOperationLimitExceeded for service response error code @@ -40,6 +40,6 @@ const ( // ErrCodeUnsupportedTLD for service response error code // "UnsupportedTLD". // - // Amazon Route 53 does not support this top-level domain. + // Amazon Route 53 does not support this top-level domain (TLD). ErrCodeUnsupportedTLD = "UnsupportedTLD" ) diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53domains/route53domainsiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/route53domains/route53domainsiface/interface.go index 82c7d517..87dfdc12 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53domains/route53domainsiface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53domains/route53domainsiface/interface.go @@ -64,6 +64,10 @@ type Route53DomainsAPI interface { CheckDomainAvailabilityWithContext(aws.Context, *route53domains.CheckDomainAvailabilityInput, ...request.Option) (*route53domains.CheckDomainAvailabilityOutput, error) CheckDomainAvailabilityRequest(*route53domains.CheckDomainAvailabilityInput) (*request.Request, *route53domains.CheckDomainAvailabilityOutput) + CheckDomainTransferability(*route53domains.CheckDomainTransferabilityInput) (*route53domains.CheckDomainTransferabilityOutput, error) + CheckDomainTransferabilityWithContext(aws.Context, *route53domains.CheckDomainTransferabilityInput, ...request.Option) (*route53domains.CheckDomainTransferabilityOutput, error) + CheckDomainTransferabilityRequest(*route53domains.CheckDomainTransferabilityInput) (*request.Request, *route53domains.CheckDomainTransferabilityOutput) + DeleteTagsForDomain(*route53domains.DeleteTagsForDomainInput) (*route53domains.DeleteTagsForDomainOutput, error) DeleteTagsForDomainWithContext(aws.Context, *route53domains.DeleteTagsForDomainInput, ...request.Option) (*route53domains.DeleteTagsForDomainOutput, error) DeleteTagsForDomainRequest(*route53domains.DeleteTagsForDomainInput) (*request.Request, *route53domains.DeleteTagsForDomainOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index e65ef266..1d4fa383 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -17085,6 +17085,9 @@ type PutObjectInput struct { // body cannot be determined automatically. ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` + // The base64-encoded 128-bit MD5 digest of the part data. + ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` + // A standard MIME type describing the format of the object data. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` @@ -17238,6 +17241,12 @@ func (s *PutObjectInput) SetContentLength(v int64) *PutObjectInput { return s } +// SetContentMD5 sets the ContentMD5 field's value. +func (s *PutObjectInput) SetContentMD5(v string) *PutObjectInput { + s.ContentMD5 = &v + return s +} + // SetContentType sets the ContentType field's value. func (s *PutObjectInput) SetContentType(v string) *PutObjectInput { s.ContentType = &v @@ -19079,6 +19088,9 @@ type UploadPartInput struct { // body cannot be determined automatically. ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` + // The base64-encoded 128-bit MD5 digest of the part data. + ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` + // Object key for which the multipart upload was initiated. // // Key is a required field @@ -19178,6 +19190,12 @@ func (s *UploadPartInput) SetContentLength(v int64) *UploadPartInput { return s } +// SetContentMD5 sets the ContentMD5 field's value. +func (s *UploadPartInput) SetContentMD5(v string) *UploadPartInput { + s.ContentMD5 = &v + return s +} + // SetKey sets the Key field's value. func (s *UploadPartInput) SetKey(v string) *UploadPartInput { s.Key = &v diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location_test.go index cd052b7e..c5984cf2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location_test.go @@ -11,7 +11,6 @@ import ( "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/s3" - "github.com/stretchr/testify/assert" ) var s3LocationTests = []struct { @@ -32,7 +31,10 @@ func TestGetBucketLocation(t *testing.T) { }) resp, err := s.GetBucketLocation(&s3.GetBucketLocationInput{Bucket: aws.String("bucket")}) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if test.loc == "" { if v := resp.LocationConstraint; v != nil { t.Errorf("expect location constraint to be nil, got %s", *v) diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations_test.go index 85dfe788..6628ecbd 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations_test.go @@ -13,17 +13,22 @@ import ( "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/s3" - "github.com/stretchr/testify/assert" ) func assertMD5(t *testing.T, req *request.Request) { err := req.Build() - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } b, _ := ioutil.ReadAll(req.HTTPRequest.Body) out := md5.Sum(b) - assert.NotEmpty(t, b) - assert.Equal(t, base64.StdEncoding.EncodeToString(out[:]), req.HTTPRequest.Header.Get("Content-MD5")) + if len(b) == 0 { + t.Error("expected non-empty value") + } + if e, a := base64.StdEncoding.EncodeToString(out[:]), req.HTTPRequest.Header.Get("Content-MD5"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestMD5InPutBucketCors(t *testing.T) { @@ -115,7 +120,9 @@ const ( func TestPutObjectMetadataWithUnicode(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - assert.Equal(t, utf8Value, r.Header.Get(metaKeyPrefix+utf8KeySuffix)) + if e, a := utf8Value, r.Header.Get(metaKeyPrefix+utf8KeySuffix); e != a { + t.Errorf("expected %s, but received %s", e, a) + } })) svc := s3.New(unit.Session, &aws.Config{ Endpoint: aws.String(server.URL), @@ -133,7 +140,9 @@ func TestPutObjectMetadataWithUnicode(t *testing.T) { }(), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } } func TestGetObjectMetadataWithUnicode(t *testing.T) { @@ -150,9 +159,13 @@ func TestGetObjectMetadataWithUnicode(t *testing.T) { Key: aws.String("my_key"), }) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } resp.Body.Close() - assert.Equal(t, utf8Value, *resp.Metadata[utf8KeySuffix]) + if e, a := utf8Value, *resp.Metadata[utf8KeySuffix]; e != a { + t.Errorf("expected %s, but received %s", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers_go1.6_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers_go1.6_test.go index b119ce8b..0675537c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers_go1.6_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/platform_handlers_go1.6_test.go @@ -9,7 +9,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/s3" - "github.com/stretchr/testify/assert" ) func TestAdd100Continue_Added(t *testing.T) { @@ -22,8 +21,12 @@ func TestAdd100Continue_Added(t *testing.T) { err := r.Sign() - assert.NoError(t, err) - assert.Equal(t, "100-Continue", r.HTTPRequest.Header.Get("Expect")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if e, a := "100-Continue", r.HTTPRequest.Header.Get("Expect"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestAdd100Continue_SkipDisabled(t *testing.T) { @@ -36,8 +39,12 @@ func TestAdd100Continue_SkipDisabled(t *testing.T) { err := r.Sign() - assert.NoError(t, err) - assert.Empty(t, r.HTTPRequest.Header.Get("Expect")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if r.HTTPRequest.Header.Get("Expect") != "" { + t.Errorf("expected empty value, but received %s", r.HTTPRequest.Header.Get("Expect")) + } } func TestAdd100Continue_SkipNonPUT(t *testing.T) { @@ -49,8 +56,12 @@ func TestAdd100Continue_SkipNonPUT(t *testing.T) { err := r.Sign() - assert.NoError(t, err) - assert.Empty(t, r.HTTPRequest.Header.Get("Expect")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if r.HTTPRequest.Header.Get("Expect") != "" { + t.Errorf("expected empty value, but received %s", r.HTTPRequest.Header.Get("Expect")) + } } func TestAdd100Continue_SkipTooSmall(t *testing.T) { @@ -63,6 +74,10 @@ func TestAdd100Continue_SkipTooSmall(t *testing.T) { err := r.Sign() - assert.NoError(t, err) - assert.Empty(t, r.HTTPRequest.Header.Get("Expect")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if r.HTTPRequest.Header.Get("Expect") != "" { + t.Errorf("expected empty value, but received %s", r.HTTPRequest.Header.Get("Expect")) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_content_cipher_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_content_cipher_test.go index 3e8f7fcd..400ceaf5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_content_cipher_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_content_cipher_test.go @@ -3,21 +3,26 @@ package s3crypto_test import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/service/s3/s3crypto" ) func TestAESGCMContentCipherBuilder(t *testing.T) { generator := mockGenerator{} - builder := s3crypto.AESGCMContentCipherBuilder(generator) - assert.NotNil(t, builder) + if builder := s3crypto.AESGCMContentCipherBuilder(generator); builder == nil { + t.Error("expected non-nil value") + } } func TestAESGCMContentCipherNewEncryptor(t *testing.T) { generator := mockGenerator{} builder := s3crypto.AESGCMContentCipherBuilder(generator) cipher, err := builder.ContentCipher() - assert.NoError(t, err) - assert.NotNil(t, cipher) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if cipher == nil { + t.Errorf("expected non-nil vaue") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_test.go index b4e49995..c430b280 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/aes_gcm_test.go @@ -5,8 +5,6 @@ import ( "encoding/hex" "io/ioutil" "testing" - - "github.com/stretchr/testify/assert" ) // AES GCM @@ -52,22 +50,32 @@ func aesgcmTest(t *testing.T, iv, key, plaintext, expected, tag []byte) { IV: iv, } gcm, err := newAESGCM(cd) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + cipherdata := gcm.Encrypt(bytes.NewReader(plaintext)) ciphertext, err := ioutil.ReadAll(cipherdata) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } // splitting tag and ciphertext etag := ciphertext[len(ciphertext)-16:] - assert.Equal(t, etag, tag) - assert.Equal(t, len(ciphertext), len(expected)) - assert.Equal(t, ciphertext, expected) + if !bytes.Equal(etag, tag) { + t.Errorf("expected tags to be equivalent") + } + if !bytes.Equal(ciphertext, expected) { + t.Errorf("expected ciphertext to be equivalent") + } data := gcm.Decrypt(bytes.NewReader(ciphertext)) - assert.NoError(t, err) text, err := ioutil.ReadAll(data) - assert.NoError(t, err) - assert.Equal(t, len(text), len(plaintext)) - assert.Equal(t, text, plaintext) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if !bytes.Equal(plaintext, text) { + t.Errorf("expected ciphertext to be equivalent") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_test.go index 020c9942..d44fcd73 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_test.go @@ -5,8 +5,6 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/service/s3/s3crypto" ) @@ -16,8 +14,12 @@ func TestCryptoReadCloserRead(t *testing.T) { rc := &s3crypto.CryptoReadCloser{Body: ioutil.NopCloser(str), Decrypter: str} b, err := ioutil.ReadAll(rc) - assert.NoError(t, err) - assert.Equal(t, expectedStr, string(b)) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if expectedStr != string(b) { + t.Errorf("expected %s, but received %s", expectedStr, string(b)) + } } func TestCryptoReadCloserClose(t *testing.T) { @@ -29,6 +31,10 @@ func TestCryptoReadCloserClose(t *testing.T) { rc.Close() b, err := ioutil.ReadAll(rc) - assert.NoError(t, err) - assert.Equal(t, expectedStr, string(b)) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if expectedStr != string(b) { + t.Errorf("expected %s, but received %s", expectedStr, string(b)) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_util_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_util_test.go index 41908c5b..8448351f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_util_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/cipher_util_test.go @@ -8,8 +8,6 @@ import ( "net/http/httptest" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/kms" @@ -31,10 +29,17 @@ func TestWrapFactory(t *testing.T) { MatDesc: `{"kms_cmk_id":""}`, } wrap, err := c.wrapFromEnvelope(env) - _, ok := wrap.(*kmsKeyHandler) - assert.NoError(t, err) - assert.NotNil(t, wrap) - assert.True(t, ok) + w, ok := wrap.(*kmsKeyHandler) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if wrap == nil { + t.Error("expected non-nil value") + } + if !ok { + t.Errorf("expected kmsKeyHandler, but received %v", *w) + } } func TestWrapFactoryErrorNoWrap(t *testing.T) { c := DecryptionClient{ @@ -52,8 +57,13 @@ func TestWrapFactoryErrorNoWrap(t *testing.T) { MatDesc: `{"kms_cmk_id":""}`, } wrap, err := c.wrapFromEnvelope(env) - assert.Error(t, err) - assert.Nil(t, wrap) + + if err == nil { + t.Error("expected error, but received none") + } + if wrap != nil { + t.Errorf("expected nil wrap value, received %v", wrap) + } } func TestWrapFactoryCustomEntry(t *testing.T) { @@ -72,8 +82,13 @@ func TestWrapFactoryCustomEntry(t *testing.T) { MatDesc: `{"kms_cmk_id":""}`, } wrap, err := c.wrapFromEnvelope(env) - assert.NoError(t, err) - assert.NotNil(t, wrap) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if wrap == nil { + t.Errorf("expected nil wrap value, received %v", wrap) + } } func TestCEKFactory(t *testing.T) { @@ -106,11 +121,15 @@ func TestCEKFactory(t *testing.T) { }, } iv, err := hex.DecodeString("0d18e06c7c725ac9e362e1ce") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } ivB64 := base64.URLEncoding.EncodeToString(iv) cipherKey, err := hex.DecodeString("31bdadd96698c204aa9ce1448ea94ae1fb4a9a0b3c9d773b51bb1822666b8f22") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } cipherKeyB64 := base64.URLEncoding.EncodeToString(cipherKey) env := Envelope{ @@ -122,8 +141,13 @@ func TestCEKFactory(t *testing.T) { } wrap, err := c.wrapFromEnvelope(env) cek, err := c.cekFromEnvelope(env, wrap) - assert.NoError(t, err) - assert.NotNil(t, cek) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if cek == nil { + t.Errorf("expected non-nil cek") + } } func TestCEKFactoryNoCEK(t *testing.T) { @@ -156,11 +180,15 @@ func TestCEKFactoryNoCEK(t *testing.T) { }, } iv, err := hex.DecodeString("0d18e06c7c725ac9e362e1ce") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } ivB64 := base64.URLEncoding.EncodeToString(iv) cipherKey, err := hex.DecodeString("31bdadd96698c204aa9ce1448ea94ae1fb4a9a0b3c9d773b51bb1822666b8f22") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } cipherKeyB64 := base64.URLEncoding.EncodeToString(cipherKey) env := Envelope{ @@ -172,8 +200,13 @@ func TestCEKFactoryNoCEK(t *testing.T) { } wrap, err := c.wrapFromEnvelope(env) cek, err := c.cekFromEnvelope(env, wrap) - assert.Error(t, err) - assert.Nil(t, cek) + + if err == nil { + t.Error("expected error, but received none") + } + if cek != nil { + t.Errorf("expected nil cek value, received %v", wrap) + } } func TestCEKFactoryCustomEntry(t *testing.T) { @@ -204,11 +237,15 @@ func TestCEKFactoryCustomEntry(t *testing.T) { PadderRegistry: map[string]Padder{}, } iv, err := hex.DecodeString("0d18e06c7c725ac9e362e1ce") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } ivB64 := base64.URLEncoding.EncodeToString(iv) cipherKey, err := hex.DecodeString("31bdadd96698c204aa9ce1448ea94ae1fb4a9a0b3c9d773b51bb1822666b8f22") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } cipherKeyB64 := base64.URLEncoding.EncodeToString(cipherKey) env := Envelope{ @@ -220,6 +257,11 @@ func TestCEKFactoryCustomEntry(t *testing.T) { } wrap, err := c.wrapFromEnvelope(env) cek, err := c.cekFromEnvelope(env, wrap) - assert.NoError(t, err) - assert.NotNil(t, cek) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if cek == nil { + t.Errorf("expected non-nil cek") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/decryption_client_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/decryption_client_test.go index 056ea90a..8a0f4e2b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/decryption_client_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/decryption_client_test.go @@ -11,8 +11,6 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -40,7 +38,9 @@ func TestGetObjectGCM(t *testing.T) { }) c := s3crypto.NewDecryptionClient(sess) - assert.NotNil(t, c) + if c == nil { + t.Error("expected non-nil value") + } input := &s3.GetObjectInput{ Key: aws.String("test"), Bucket: aws.String("test"), @@ -49,9 +49,14 @@ func TestGetObjectGCM(t *testing.T) { req.Handlers.Send.Clear() req.Handlers.Send.PushBack(func(r *request.Request) { iv, err := hex.DecodeString("0d18e06c7c725ac9e362e1ce") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + b, err := hex.DecodeString("fa4362189661d163fcd6a56d8bf0405ad636ac1bbedd5cc3ee727dc2ab4a9489") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } r.HTTPResponse = &http.Response{ StatusCode: 200, @@ -69,14 +74,21 @@ func TestGetObjectGCM(t *testing.T) { out.Metadata["x-amz-wrap-alg"] = aws.String(s3crypto.KMSWrap) }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } b, err := ioutil.ReadAll(out.Body) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } expected, err := hex.DecodeString("2db5168e932556f8089a0622981d017d") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } - assert.Equal(t, len(expected), len(b)) - assert.Equal(t, expected, b) + if !bytes.Equal(expected, b) { + t.Error("expected bytes to be equivalent") + } } func TestGetObjectCBC(t *testing.T) { @@ -97,7 +109,9 @@ func TestGetObjectCBC(t *testing.T) { }) c := s3crypto.NewDecryptionClient(sess) - assert.NotNil(t, c) + if c == nil { + t.Error("expected non-nil value") + } input := &s3.GetObjectInput{ Key: aws.String("test"), Bucket: aws.String("test"), @@ -106,9 +120,13 @@ func TestGetObjectCBC(t *testing.T) { req.Handlers.Send.Clear() req.Handlers.Send.PushBack(func(r *request.Request) { iv, err := hex.DecodeString("9dea7621945988f96491083849b068df") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } b, err := hex.DecodeString("e232cd6ef50047801ee681ec30f61d53cfd6b0bca02fd03c1b234baa10ea82ac9dab8b960926433a19ce6dea08677e34") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } r.HTTPResponse = &http.Response{ StatusCode: 200, @@ -125,14 +143,21 @@ func TestGetObjectCBC(t *testing.T) { out.Metadata["x-amz-wrap-alg"] = aws.String(s3crypto.KMSWrap) }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } b, err := ioutil.ReadAll(out.Body) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } expected, err := hex.DecodeString("0397f4f6820b1f9386f14403be5ac16e50213bd473b4874b9bcbf5f318ee686b1d") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } - assert.Equal(t, len(expected), len(b)) - assert.Equal(t, expected, b) + if !bytes.Equal(expected, b) { + t.Error("expected bytes to be equivalent") + } } func TestGetObjectCBC2(t *testing.T) { @@ -153,7 +178,9 @@ func TestGetObjectCBC2(t *testing.T) { }) c := s3crypto.NewDecryptionClient(sess) - assert.NotNil(t, c) + if c == nil { + t.Error("expected non-nil value") + } input := &s3.GetObjectInput{ Key: aws.String("test"), Bucket: aws.String("test"), @@ -162,7 +189,9 @@ func TestGetObjectCBC2(t *testing.T) { req.Handlers.Send.Clear() req.Handlers.Send.PushBack(func(r *request.Request) { b, err := hex.DecodeString("fd0c71ecb7ed16a9bf42ea5f75501d416df608f190890c3b4d8897f24744cd7f9ea4a0b212e60634302450e1c5378f047ff753ccefe365d411c36339bf22e301fae4c3a6226719a4b93dc74c1af79d0296659b5d56c0892315f2c7cc30190220db1eaafae3920d6d9c65d0aa366499afc17af493454e141c6e0fbdeb6a990cb4") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } r.HTTPResponse = &http.Response{ StatusCode: 200, @@ -180,14 +209,21 @@ func TestGetObjectCBC2(t *testing.T) { out.Metadata["x-amz-wrap-alg"] = aws.String(s3crypto.KMSWrap) }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } b, err := ioutil.ReadAll(out.Body) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } expected, err := hex.DecodeString("a6ccd3482f5ce25c9ddeb69437cd0acbc0bdda2ef8696d90781de2b35704543529871b2032e68ef1c5baed1769aba8d420d1aca181341b49b8b3587a6580cdf1d809c68f06735f7735c16691f4b70c967d68fc08195b81ad71bcc4df452fd0a5799c1e1234f92f1cd929fc072167ccf9f2ac85b93170932b32") - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } - assert.Equal(t, len(expected), len(b)) - assert.Equal(t, expected, b) + if !bytes.Equal(expected, b) { + t.Error("expected bytes to be equivalent") + } } func TestGetObjectWithContext(t *testing.T) { diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client.go index 05619467..33d31b14 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client.go @@ -64,7 +64,7 @@ func NewEncryptionClient(prov client.ConfigProvider, builder ContentCipherBuilde // req, out := svc.PutObjectRequest(&s3.PutObjectInput { // Key: aws.String("testKey"), // Bucket: aws.String("testBucket"), -// Body: bytes.NewBuffer("test data"), +// Body: strings.NewReader("test data"), // }) // err := req.Send() func (c *EncryptionClient) PutObjectRequest(input *s3.PutObjectInput) (*request.Request, *s3.PutObjectOutput) { diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client_test.go index 2bd01275..5f444c12 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/encryption_client_test.go @@ -9,8 +9,6 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -32,9 +30,15 @@ func TestDefaultConfigValues(t *testing.T) { c := s3crypto.NewEncryptionClient(sess, s3crypto.AESGCMContentCipherBuilder(handler)) - assert.NotNil(t, c) - assert.NotNil(t, c.ContentCipherBuilder) - assert.NotNil(t, c.SaveStrategy) + if c == nil { + t.Error("expected non-vil client value") + } + if c.ContentCipherBuilder == nil { + t.Error("expected non-vil content cipher builder value") + } + if c.SaveStrategy == nil { + t.Error("expected non-vil save strategy value") + } } func TestPutObject(t *testing.T) { @@ -49,7 +53,9 @@ func TestPutObject(t *testing.T) { Region: aws.String("us-west-2"), }) c := s3crypto.NewEncryptionClient(sess, cb) - assert.NotNil(t, c) + if c == nil { + t.Error("expected non-vil client value") + } input := &s3.PutObjectInput{ Key: aws.String("test"), Bucket: aws.String("test"), @@ -64,10 +70,16 @@ func TestPutObject(t *testing.T) { } }) err := req.Send() - assert.Equal(t, "stop", err.Error()) + if e, a := "stop", err.Error(); e != a { + t.Errorf("expected %s error, but received %s", e, a) + } b, err := ioutil.ReadAll(req.HTTPRequest.Body) - assert.NoError(t, err) - assert.Equal(t, expected, b) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if !bytes.Equal(expected, b) { + t.Error("expected bytes to be equivalent, but received otherwise") + } } func TestPutObjectWithContext(t *testing.T) { diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/hash_io_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/hash_io_test.go index c6ce4cd0..a27daa34 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/hash_io_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/hash_io_test.go @@ -4,8 +4,6 @@ import ( "bytes" "encoding/hex" "testing" - - "github.com/stretchr/testify/assert" ) // From Go stdlib encoding/sha256 test cases @@ -13,7 +11,10 @@ func TestSHA256(t *testing.T) { sha := newSHA256Writer(nil) expected, _ := hex.DecodeString("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") b := sha.GetValue() - assert.Equal(t, expected, b) + + if !bytes.Equal(expected, b) { + t.Errorf("expected equivalent sha values, but received otherwise") + } } func TestSHA256_Case2(t *testing.T) { @@ -21,5 +22,8 @@ func TestSHA256_Case2(t *testing.T) { sha.Write([]byte("hello")) expected, _ := hex.DecodeString("2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824") b := sha.GetValue() - assert.Equal(t, expected, b) + + if !bytes.Equal(expected, b) { + t.Errorf("expected equivalent sha values, but received otherwise") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper_test.go index d686f224..7f06bda0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper_test.go @@ -1,9 +1,8 @@ package s3crypto import ( + "bytes" "testing" - - "github.com/stretchr/testify/assert" ) func TestBytesReadWriteSeeker_Read(t *testing.T) { @@ -12,9 +11,17 @@ func TestBytesReadWriteSeeker_Read(t *testing.T) { buf := make([]byte, 3) n, err := b.Read(buf) - assert.NoError(t, err) - assert.Equal(t, 3, n) - assert.Equal(t, expected, buf) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := 3, n; e != a { + t.Errorf("expected %d, but received %d", e, a) + } + + if !bytes.Equal(expected, buf) { + t.Error("expected equivalent byte slices, but received otherwise") + } } func TestBytesReadWriteSeeker_Write(t *testing.T) { @@ -23,25 +30,53 @@ func TestBytesReadWriteSeeker_Write(t *testing.T) { buf := make([]byte, 3) n, err := b.Write([]byte{1, 2, 3}) - assert.NoError(t, err) - assert.Equal(t, 3, n) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := 3, n; e != a { + t.Errorf("expected %d, but received %d", e, a) + } n, err = b.Read(buf) - assert.NoError(t, err) - assert.Equal(t, 3, n) - assert.Equal(t, expected, buf) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := 3, n; e != a { + t.Errorf("expected %d, but received %d", e, a) + } + + if !bytes.Equal(expected, buf) { + t.Error("expected equivalent byte slices, but received otherwise") + } } func TestBytesReadWriteSeeker_Seek(t *testing.T) { b := &bytesReadWriteSeeker{[]byte{1, 2, 3}, 0} expected := []byte{2, 3} m, err := b.Seek(1, 0) - assert.NoError(t, err) - assert.Equal(t, 1, int(m)) + + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := 1, int(m); e != a { + t.Errorf("expected %d, but received %d", e, a) + } + buf := make([]byte, 3) n, err := b.Read(buf) - assert.NoError(t, err) - assert.Equal(t, 2, n) - assert.Equal(t, expected, buf[:n]) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if e, a := 2, n; e != a { + t.Errorf("expected %d, but received %d", e, a) + } + + if !bytes.Equal(expected, buf[:n]) { + t.Error("expected equivalent byte slices, but received otherwise") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/key_handler_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/key_handler_test.go index 85e18eb2..8e0e5ea4 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/key_handler_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/key_handler_test.go @@ -2,15 +2,19 @@ package s3crypto import ( "testing" - - "github.com/stretchr/testify/assert" ) func TestGenerateBytes(t *testing.T) { b := generateBytes(5) - assert.Equal(t, 5, len(b)) + if e, a := 5, len(b); e != a { + t.Errorf("expected %d, but received %d", e, a) + } b = generateBytes(0) - assert.Equal(t, 0, len(b)) + if e, a := 0, len(b); e != a { + t.Errorf("expected %d, but received %d", e, a) + } b = generateBytes(1024) - assert.Equal(t, 1024, len(b)) + if e, a := 1024, len(b); e != a { + t.Errorf("expected %d, but received %d", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/kms_key_handler_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/kms_key_handler_test.go index e69ee976..33d5d017 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/kms_key_handler_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/kms_key_handler_test.go @@ -1,15 +1,15 @@ package s3crypto import ( + "bytes" "encoding/base64" "encoding/hex" "fmt" "net/http" "net/http/httptest" + "reflect" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/kms" @@ -18,7 +18,9 @@ import ( func TestBuildKMSEncryptHandler(t *testing.T) { svc := kms.New(unit.Session) handler := NewKMSKeyGenerator(svc, "testid") - assert.NotNil(t, handler) + if handler == nil { + t.Error("expected non-nil handler") + } } func TestBuildKMSEncryptHandlerWithMatDesc(t *testing.T) { @@ -26,14 +28,19 @@ func TestBuildKMSEncryptHandlerWithMatDesc(t *testing.T) { handler := NewKMSKeyGeneratorWithMatDesc(svc, "testid", MaterialDescription{ "Testing": aws.String("123"), }) - assert.NotNil(t, handler) + if handler == nil { + t.Error("expected non-nil handler") + } kmsHandler := handler.(*kmsKeyHandler) expected := MaterialDescription{ "kms_cmk_id": aws.String("testid"), "Testing": aws.String("123"), } - assert.Equal(t, expected, kmsHandler.CipherData.MaterialDescription) + + if !reflect.DeepEqual(expected, kmsHandler.CipherData.MaterialDescription) { + t.Errorf("expected %v, but received %v", expected, kmsHandler.CipherData.MaterialDescription) + } } func TestKMSGenerateCipherData(t *testing.T) { @@ -56,11 +63,15 @@ func TestKMSGenerateCipherData(t *testing.T) { ivSize := 16 cd, err := handler.GenerateCipherData(keySize, ivSize) - assert.NoError(t, err) - assert.Equal(t, keySize, len(cd.Key)) - assert.Equal(t, ivSize, len(cd.IV)) - assert.NotEmpty(t, cd.Key) - assert.NotEmpty(t, cd.IV) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if keySize != len(cd.Key) { + t.Errorf("expected %d, but received %d", keySize, len(cd.Key)) + } + if ivSize != len(cd.IV) { + t.Errorf("expected %d, but received %d", ivSize, len(cd.IV)) + } } func TestKMSDecrypt(t *testing.T) { @@ -78,11 +89,18 @@ func TestKMSDecrypt(t *testing.T) { Region: aws.String("us-west-2"), }) handler, err := (kmsKeyHandler{kms: kms.New(sess)}).decryptHandler(Envelope{MatDesc: `{"kms_cmk_id":"test"}`}) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } plaintextKey, err := handler.DecryptKey([]byte{1, 2, 3, 4}) - assert.NoError(t, err) - assert.Equal(t, key, plaintextKey) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + + if !bytes.Equal(key, plaintextKey) { + t.Errorf("expected %v, but received %v", key, plaintextKey) + } } func TestKMSDecryptBadJSON(t *testing.T) { @@ -101,5 +119,7 @@ func TestKMSDecryptBadJSON(t *testing.T) { }) _, err := (kmsKeyHandler{kms: kms.New(sess)}).decryptHandler(Envelope{MatDesc: `{"kms_cmk_id":"test"`}) - assert.Error(t, err) + if err == nil { + t.Errorf("expected error, but received none") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/mat_desc_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/mat_desc_test.go index 9bfef918..f87051b0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/mat_desc_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/mat_desc_test.go @@ -1,10 +1,9 @@ package s3crypto import ( + "reflect" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" ) @@ -13,8 +12,12 @@ func TestEncodeMaterialDescription(t *testing.T) { md["foo"] = aws.String("bar") b, err := md.encodeDescription() expected := `{"foo":"bar"}` - assert.NoError(t, err) - assert.Equal(t, expected, string(b)) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if expected != string(b) { + t.Errorf("expected %s, but received %s", expected, string(b)) + } } func TestDecodeMaterialDescription(t *testing.T) { md := MaterialDescription{} @@ -23,6 +26,10 @@ func TestDecodeMaterialDescription(t *testing.T) { expected := MaterialDescription{ "foo": aws.String("bar"), } - assert.NoError(t, err) - assert.Equal(t, expected, md) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if !reflect.DeepEqual(expected, md) { + t.Error("expected material description to be equivalent, but received otherwise") + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/strategy_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/strategy_test.go index a8c7df69..54d6634f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/strategy_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/strategy_test.go @@ -1,10 +1,9 @@ package s3crypto_test import ( + "reflect" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/s3" @@ -28,7 +27,9 @@ func TestHeaderV2SaveStrategy(t *testing.T) { } strat := s3crypto.HeaderV2SaveStrategy{} err := strat.Save(env, req) - assert.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } expected := map[string]*string{ "X-Amz-Key-V2": aws.String("Foo"), @@ -41,6 +42,7 @@ func TestHeaderV2SaveStrategy(t *testing.T) { "X-Amz-Unencrypted-Content-Length": aws.String("0"), } - assert.Equal(t, len(expected), len(params.Metadata)) - assert.Equal(t, expected, params.Metadata) + if !reflect.DeepEqual(expected, params.Metadata) { + t.Errorf("expected %v, but received %v", expected, params.Metadata) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go index 699afb95..a4079b83 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go @@ -117,6 +117,9 @@ type UploadInput struct { // The language the content is in. ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` + // The base64-encoded 128-bit MD5 digest of the part data. + ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` + // A standard MIME type describing the format of the object data. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/sse_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/sse_test.go index 5f1ca64b..50ff99cb 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/sse_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/sse_test.go @@ -1,13 +1,13 @@ package s3_test import ( + "strings" "testing" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/s3" - "github.com/stretchr/testify/assert" ) func TestSSECustomerKeyOverHTTPError(t *testing.T) { @@ -20,9 +20,15 @@ func TestSSECustomerKeyOverHTTPError(t *testing.T) { }) err := req.Build() - assert.Error(t, err) - assert.Equal(t, "ConfigError", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "cannot send SSE keys over HTTP") + if err == nil { + t.Error("expected an error") + } + if e, a := "ConfigError", err.(awserr.Error).Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if !strings.Contains(err.(awserr.Error).Message(), "cannot send SSE keys over HTTP") { + t.Errorf("expected error to contain 'cannot send SSE keys over HTTP', but received %s", err.(awserr.Error).Message()) + } } func TestCopySourceSSECustomerKeyOverHTTPError(t *testing.T) { @@ -35,9 +41,15 @@ func TestCopySourceSSECustomerKeyOverHTTPError(t *testing.T) { }) err := req.Build() - assert.Error(t, err) - assert.Equal(t, "ConfigError", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "cannot send SSE keys over HTTP") + if err == nil { + t.Error("expected an error") + } + if e, a := "ConfigError", err.(awserr.Error).Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if !strings.Contains(err.(awserr.Error).Message(), "cannot send SSE keys over HTTP") { + t.Errorf("expected error to contain 'cannot send SSE keys over HTTP', but received %s", err.(awserr.Error).Message()) + } } func TestComputeSSEKeys(t *testing.T) { @@ -51,11 +63,21 @@ func TestComputeSSEKeys(t *testing.T) { }) err := req.Build() - assert.NoError(t, err) - assert.Equal(t, "a2V5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key")) - assert.Equal(t, "a2V5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key")) - assert.Equal(t, "PG4LipwVIkqCKLmpjKFTHQ==", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key-md5")) - assert.Equal(t, "PG4LipwVIkqCKLmpjKFTHQ==", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key-md5")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if e, a := "a2V5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "a2V5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "PG4LipwVIkqCKLmpjKFTHQ==", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key-md5"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "PG4LipwVIkqCKLmpjKFTHQ==", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key-md5"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestComputeSSEKeysShortcircuit(t *testing.T) { @@ -71,9 +93,19 @@ func TestComputeSSEKeysShortcircuit(t *testing.T) { }) err := req.Build() - assert.NoError(t, err) - assert.Equal(t, "a2V5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key")) - assert.Equal(t, "a2V5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key")) - assert.Equal(t, "MD5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key-md5")) - assert.Equal(t, "MD5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key-md5")) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if e, a := "a2V5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "a2V5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "MD5", req.HTTPRequest.Header.Get("x-amz-server-side-encryption-customer-key-md5"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "MD5", req.HTTPRequest.Header.Get("x-amz-copy-source-server-side-encryption-customer-key-md5"); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error_test.go index 9b75072f..cf195c56 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error_test.go @@ -7,9 +7,6 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/awstesting/unit" @@ -31,10 +28,15 @@ func TestCopyObjectNoError(t *testing.T) { Key: aws.String("destination.txt"), }) - require.NoError(t, err) - - assert.Equal(t, fmt.Sprintf(`%q`, "1da64c7f13d1e8dbeaea40b905fd586c"), *res.CopyObjectResult.ETag) - assert.Equal(t, lastModifiedTime, *res.CopyObjectResult.LastModified) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } + if e, a := fmt.Sprintf(`%q`, "1da64c7f13d1e8dbeaea40b905fd586c"), *res.CopyObjectResult.ETag; e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := lastModifiedTime, *res.CopyObjectResult.LastModified; !e.Equal(a) { + t.Errorf("expected %v, but received %v", e, a) + } } func TestCopyObjectError(t *testing.T) { @@ -44,11 +46,17 @@ func TestCopyObjectError(t *testing.T) { Key: aws.String("destination.txt"), }) - require.Error(t, err) + if err == nil { + t.Error("expected error, but received none") + } e := err.(awserr.Error) - assert.Equal(t, "ErrorCode", e.Code()) - assert.Equal(t, "message body", e.Message()) + if e, a := "ErrorCode", e.Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "message body", e.Message(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestUploadPartCopySuccess(t *testing.T) { @@ -64,10 +72,16 @@ func TestUploadPartCopySuccess(t *testing.T) { UploadId: aws.String("uploadID"), }) - require.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } - assert.Equal(t, fmt.Sprintf(`%q`, "1da64c7f13d1e8dbeaea40b905fd586c"), *res.CopyPartResult.ETag) - assert.Equal(t, lastModifiedTime, *res.CopyPartResult.LastModified) + if e, a := fmt.Sprintf(`%q`, "1da64c7f13d1e8dbeaea40b905fd586c"), *res.CopyPartResult.ETag; e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := lastModifiedTime, *res.CopyPartResult.LastModified; !e.Equal(a) { + t.Errorf("expected %v, but received %v", e, a) + } } func TestUploadPartCopyError(t *testing.T) { @@ -79,11 +93,17 @@ func TestUploadPartCopyError(t *testing.T) { UploadId: aws.String("uploadID"), }) - require.Error(t, err) + if err == nil { + t.Error("expected an error") + } e := err.(awserr.Error) - assert.Equal(t, "ErrorCode", e.Code()) - assert.Equal(t, "message body", e.Message()) + if e, a := "ErrorCode", e.Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "message body", e.Message(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestCompleteMultipartUploadSuccess(t *testing.T) { @@ -96,12 +116,22 @@ func TestCompleteMultipartUploadSuccess(t *testing.T) { UploadId: aws.String("uploadID"), }) - require.NoError(t, err) + if err != nil { + t.Errorf("expected no error, but received %v", err) + } - assert.Equal(t, `"etagVal"`, *res.ETag) - assert.Equal(t, "bucketName", *res.Bucket) - assert.Equal(t, "keyName", *res.Key) - assert.Equal(t, "locationName", *res.Location) + if e, a := `"etagVal"`, *res.ETag; e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "bucketName", *res.Bucket; e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "keyName", *res.Key; e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "locationName", *res.Location; e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func TestCompleteMultipartUploadError(t *testing.T) { @@ -111,11 +141,17 @@ func TestCompleteMultipartUploadError(t *testing.T) { UploadId: aws.String("uploadID"), }) - require.Error(t, err) + if err == nil { + t.Error("expected an error") + } e := err.(awserr.Error) - assert.Equal(t, "ErrorCode", e.Code()) - assert.Equal(t, "message body", e.Message()) + if e, a := "ErrorCode", e.Code(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } + if e, a := "message body", e.Message(); e != a { + t.Errorf("expected %s, but received %s", e, a) + } } func newCopyTestSvc(errMsg string) *s3.S3 { diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error_leak_test.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error_leak_test.go index 44963714..857bbaad 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error_leak_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error_leak_test.go @@ -1,7 +1,6 @@ package s3 import ( - "github.com/stretchr/testify/assert" "net/http" "testing" @@ -27,7 +26,15 @@ func TestUnmarhsalErrorLeak(t *testing.T) { reader := req.HTTPResponse.Body.(*awstesting.ReadCloser) unmarshalError(req) - assert.NotNil(t, req.Error) - assert.Equal(t, reader.Closed, true) - assert.Equal(t, reader.Size, 0) + if req.Error == nil { + t.Error("expected an error, but received none") + } + + if !reader.Closed { + t.Error("expected reader to be closed") + } + + if e, a := 0, reader.Size; e != a { + t.Errorf("expected %d, but received %d", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshal_error_leak_test.go b/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshal_error_leak_test.go index 340791db..8f5798f3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshal_error_leak_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshal_error_leak_test.go @@ -1,7 +1,6 @@ package simpledb import ( - "github.com/stretchr/testify/assert" "net/http" "testing" @@ -27,7 +26,13 @@ func TestUnmarhsalErrorLeak(t *testing.T) { reader := req.HTTPResponse.Body.(*awstesting.ReadCloser) unmarshalError(req) - assert.NotNil(t, req.Error) - assert.Equal(t, reader.Closed, true) - assert.Equal(t, reader.Size, 0) + if req.Error == nil { + t.Errorf("expect error, got nil") + } + if !reader.Closed { + t.Errorf("expect closed, was not") + } + if e, a := 0, reader.Size; e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshall_error_test.go b/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshall_error_test.go index 53f35a2d..d4ceb5ae 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshall_error_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/simpledb/unmarshall_error_test.go @@ -6,8 +6,6 @@ import ( "net/http" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -45,9 +43,15 @@ func TestStatusCodeError(t *testing.T) { DomainName: aws.String("test-domain"), }) - assert.Error(t, err) - assert.Equal(t, test.code, err.(awserr.Error).Code()) - assert.Equal(t, test.message, err.(awserr.Error).Message()) + if err == nil { + t.Fatalf("expect error, got nil") + } + if e, a := test.code, err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := test.message, err.(awserr.Error).Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } } @@ -111,12 +115,22 @@ func TestResponseError(t *testing.T) { DomainName: aws.String("test-domain"), }) - assert.Error(t, err) - assert.Equal(t, test.code, err.(awserr.Error).Code()) - assert.Equal(t, test.message, err.(awserr.Error).Message()) + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := test.code, err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := test.message, err.(awserr.Error).Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } if len(test.errors) > 0 { - assert.Equal(t, test.requestID, err.(awserr.RequestFailure).RequestID()) - assert.Equal(t, test.scode, err.(awserr.RequestFailure).StatusCode()) + if e, a := test.requestID, err.(awserr.RequestFailure).RequestID(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := test.scode, err.(awserr.RequestFailure).StatusCode(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/sqs/api_test.go b/vendor/github.com/aws/aws-sdk-go/service/sqs/api_test.go index 4cec7788..3cf70eb5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sqs/api_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sqs/api_test.go @@ -5,8 +5,6 @@ package sqs_test import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/sqs" @@ -24,7 +22,13 @@ func TestFlattenedTraits(t *testing.T) { }, }) - assert.Error(t, err) - assert.Equal(t, "InvalidAddress", err.Code()) - assert.Equal(t, "The address QUEUE is not valid for this endpoint.", err.Message()) + if err == nil { + t.Fatalf("expect error, got nil") + } + if e, a := "InvalidAddress", err.Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := "The address QUEUE is not valid for this endpoint.", err.Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/sqs/checksums_test.go b/vendor/github.com/aws/aws-sdk-go/service/sqs/checksums_test.go index c7451c7b..36f35563 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sqs/checksums_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sqs/checksums_test.go @@ -4,10 +4,9 @@ import ( "bytes" "io/ioutil" "net/http" + "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -36,7 +35,9 @@ func TestSendMessageChecksum(t *testing.T) { } }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestSendMessageChecksumInvalid(t *testing.T) { @@ -52,10 +53,16 @@ func TestSendMessageChecksumInvalid(t *testing.T) { } }) err := req.Send() - assert.Error(t, err) + if err == nil { + t.Fatalf("expect error, got nil") + } - assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "expected MD5 checksum '000', got '098f6bcd4621d373cade4e832627b4f6'") + if e, a := "InvalidChecksum", err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := err.(awserr.Error).Message(), "expected MD5 checksum '000', got '098f6bcd4621d373cade4e832627b4f6'"; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v, was not", e, a) + } } func TestSendMessageChecksumInvalidNoValidation(t *testing.T) { @@ -77,7 +84,9 @@ func TestSendMessageChecksumInvalidNoValidation(t *testing.T) { } }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestSendMessageChecksumNoInput(t *testing.T) { @@ -88,10 +97,16 @@ func TestSendMessageChecksumNoInput(t *testing.T) { r.Data = &sqs.SendMessageOutput{} }) err := req.Send() - assert.Error(t, err) + if err == nil { + t.Fatalf("expect error, got nil") + } - assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "cannot compute checksum. missing body") + if e, a := "InvalidChecksum", err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := err.(awserr.Error).Message(), "cannot compute checksum. missing body"; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v, was not", e, a) + } } func TestSendMessageChecksumNoOutput(t *testing.T) { @@ -104,10 +119,16 @@ func TestSendMessageChecksumNoOutput(t *testing.T) { r.Data = &sqs.SendMessageOutput{} }) err := req.Send() - assert.Error(t, err) + if err == nil { + t.Fatalf("expect error, got nil") + } - assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "cannot verify checksum. missing response MD5") + if e, a := "InvalidChecksum", err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := err.(awserr.Error).Message(), "cannot verify checksum. missing response MD5"; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v, was not", e, a) + } } func TestRecieveMessageChecksum(t *testing.T) { @@ -126,7 +147,9 @@ func TestRecieveMessageChecksum(t *testing.T) { } }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestRecieveMessageChecksumInvalid(t *testing.T) { @@ -146,10 +169,16 @@ func TestRecieveMessageChecksumInvalid(t *testing.T) { } }) err := req.Send() - assert.Error(t, err) + if err == nil { + t.Fatalf("expect error, got nil") + } - assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "invalid messages: 123, 456") + if e, a := "InvalidChecksum", err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := err.(awserr.Error).Message(), "invalid messages: 123, 456"; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v, was not", e, a) + } } func TestSendMessageBatchChecksum(t *testing.T) { @@ -175,7 +204,9 @@ func TestSendMessageBatchChecksum(t *testing.T) { } }) err := req.Send() - assert.NoError(t, err) + if err != nil { + t.Errorf("expect no error, got %v", err) + } } func TestSendMessageBatchChecksumInvalid(t *testing.T) { @@ -201,8 +232,14 @@ func TestSendMessageBatchChecksumInvalid(t *testing.T) { } }) err := req.Send() - assert.Error(t, err) + if err == nil { + t.Fatalf("expect error, got nil") + } - assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) - assert.Contains(t, err.(awserr.Error).Message(), "invalid messages: 456, 789") + if e, a := "InvalidChecksum", err.(awserr.Error).Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := err.(awserr.Error).Message(), "invalid messages: 456, 789"; !strings.Contains(a, e) { + t.Errorf("expect %v to be in %v, was not", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go index faedb646..3463f57c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go @@ -56,14 +56,14 @@ func (c *SSM) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *requ // AddTagsToResource API operation for Amazon Simple Systems Manager (SSM). // // Adds or overwrites one or more tags for the specified resource. Tags are -// metadata that you assign to your managed instances, Maintenance Windows, -// or Parameter Store parameters. Tags enable you to categorize your resources -// in different ways, for example, by purpose, owner, or environment. Each tag -// consists of a key and an optional value, both of which you define. For example, -// you could define a set of tags for your account's managed instances that -// helps you track each instance's owner and stack level. For example: Key=Owner -// and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, -// or Test. +// metadata that you can assign to your documents, managed instances, Maintenance +// Windows, Parameter Store parameters, and patch baselines. Tags enable you +// to categorize your resources in different ways, for example, by purpose, +// owner, or environment. Each tag consists of a key and an optional value, +// both of which you define. For example, you could define a set of tags for +// your account's managed instances that helps you track each instance's owner +// and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. +// Or Key=Stack and Value=Production, Pre-Production, or Test. // // Each resource can have a maximum of 10 tags. // @@ -85,8 +85,8 @@ func (c *SSM) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *requ // // Returned Error Codes: // * ErrCodeInvalidResourceType "InvalidResourceType" -// The resource type is not valid. If you are attempting to tag an instance, -// the instance must be a registered, managed instance. +// The resource type is not valid. For example, if you are attempting to tag +// an instance, the instance must be a registered, managed instance. // // * ErrCodeInvalidResourceId "InvalidResourceId" // The resource ID is not valid. Verify that you entered the correct ID and @@ -404,8 +404,9 @@ func (c *SSM) CreateAssociationRequest(input *CreateAssociationInput) (req *requ // The output location is not valid or does not exist. // // * ErrCodeInvalidParameters "InvalidParameters" -// You must specify values for all required parameters in the SSM document. -// You can only supply values to parameters defined in the SSM document. +// You must specify values for all required parameters in the Systems Manager +// document. You can only supply values to parameters defined in the Systems +// Manager document. // // * ErrCodeInvalidTarget "InvalidTarget" // The target is not valid or does not exist. It might not be configured for @@ -523,8 +524,9 @@ func (c *SSM) CreateAssociationBatchRequest(input *CreateAssociationBatchInput) // Stopping. Invalid states are: Shutting-down and Terminated. // // * ErrCodeInvalidParameters "InvalidParameters" -// You must specify values for all required parameters in the SSM document. -// You can only supply values to parameters defined in the SSM document. +// You must specify values for all required parameters in the Systems Manager +// document. You can only supply values to parameters defined in the Systems +// Manager document. // // * ErrCodeDuplicateInstanceId "DuplicateInstanceId" // You cannot specify an instance ID in more than one association. @@ -638,7 +640,7 @@ func (c *SSM) CreateDocumentRequest(input *CreateDocumentInput) (req *request.Re // The content for the document is not valid. // // * ErrCodeDocumentLimitExceeded "DocumentLimitExceeded" -// You can have at most 200 active SSM documents. +// You can have at most 200 active Systems Manager documents. // // * ErrCodeInvalidDocumentSchemaVersion "InvalidDocumentSchemaVersion" // The version of the document schema is not supported. @@ -2444,7 +2446,7 @@ func (c *SSM) DescribeDocumentRequest(input *DescribeDocumentInput) (req *reques // DescribeDocument API operation for Amazon Simple Systems Manager (SSM). // -// Describes the specified SSM document. +// Describes the specified Systems Manager document. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4582,7 +4584,7 @@ func (c *SSM) GetDocumentRequest(input *GetDocumentInput) (req *request.Request, // GetDocument API operation for Amazon Simple Systems Manager (SSM). // -// Gets the contents of the specified SSM document. +// Gets the contents of the specified Systems Manager document. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6458,8 +6460,8 @@ func (c *SSM) ListComplianceItemsRequest(input *ListComplianceItemsInput) (req * // // Returned Error Codes: // * ErrCodeInvalidResourceType "InvalidResourceType" -// The resource type is not valid. If you are attempting to tag an instance, -// the instance must be a registered, managed instance. +// The resource type is not valid. For example, if you are attempting to tag +// an instance, the instance must be a registered, managed instance. // // * ErrCodeInvalidResourceId "InvalidResourceId" // The resource ID is not valid. Verify that you entered the correct ID and @@ -6720,7 +6722,7 @@ func (c *SSM) ListDocumentsRequest(input *ListDocumentsInput) (req *request.Requ // ListDocuments API operation for Amazon Simple Systems Manager (SSM). // -// Describes one or more of your SSM documents. +// Describes one or more of your Systems Manager documents. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7149,8 +7151,8 @@ func (c *SSM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req * // // Returned Error Codes: // * ErrCodeInvalidResourceType "InvalidResourceType" -// The resource type is not valid. If you are attempting to tag an instance, -// the instance must be a registered, managed instance. +// The resource type is not valid. For example, if you are attempting to tag +// an instance, the instance must be a registered, managed instance. // // * ErrCodeInvalidResourceId "InvalidResourceId" // The resource ID is not valid. Verify that you entered the correct ID and @@ -7254,7 +7256,7 @@ func (c *SSM) ModifyDocumentPermissionRequest(input *ModifyDocumentPermissionInp // documents. If you need to increase this limit, contact AWS Support. // // * ErrCodeDocumentLimitExceeded "DocumentLimitExceeded" -// You can have at most 200 active SSM documents. +// You can have at most 200 active Systems Manager documents. // // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ModifyDocumentPermission func (c *SSM) ModifyDocumentPermission(input *ModifyDocumentPermissionInput) (*ModifyDocumentPermissionOutput, error) { @@ -7353,8 +7355,8 @@ func (c *SSM) PutComplianceItemsRequest(input *PutComplianceItemsInput) (req *re // of 10 different types. // // * ErrCodeInvalidResourceType "InvalidResourceType" -// The resource type is not valid. If you are attempting to tag an instance, -// the instance must be a registered, managed instance. +// The resource type is not valid. For example, if you are attempting to tag +// an instance, the instance must be a registered, managed instance. // // * ErrCodeInvalidResourceId "InvalidResourceId" // The resource ID is not valid. Verify that you entered the correct ID and @@ -8051,8 +8053,8 @@ func (c *SSM) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) // // Returned Error Codes: // * ErrCodeInvalidResourceType "InvalidResourceType" -// The resource type is not valid. If you are attempting to tag an instance, -// the instance must be a registered, managed instance. +// The resource type is not valid. For example, if you are attempting to tag +// an instance, the instance must be a registered, managed instance. // // * ErrCodeInvalidResourceId "InvalidResourceId" // The resource ID is not valid. Verify that you entered the correct ID and @@ -8252,8 +8254,9 @@ func (c *SSM) SendCommandRequest(input *SendCommandInput) (req *request.Request, // The S3 bucket does not exist. // // * ErrCodeInvalidParameters "InvalidParameters" -// You must specify values for all required parameters in the SSM document. -// You can only supply values to parameters defined in the SSM document. +// You must specify values for all required parameters in the Systems Manager +// document. You can only supply values to parameters defined in the Systems +// Manager document. // // * ErrCodeUnsupportedPlatformType "UnsupportedPlatformType" // The document does not support the platform type of the given instance ID(s). @@ -8538,8 +8541,9 @@ func (c *SSM) UpdateAssociationRequest(input *UpdateAssociationInput) (req *requ // The schedule is invalid. Verify your cron or rate expression and try again. // // * ErrCodeInvalidParameters "InvalidParameters" -// You must specify values for all required parameters in the SSM document. -// You can only supply values to parameters defined in the SSM document. +// You must specify values for all required parameters in the Systems Manager +// document. You can only supply values to parameters defined in the Systems +// Manager document. // // * ErrCodeInvalidOutputLocation "InvalidOutputLocation" // The output location is not valid or does not exist. @@ -9575,7 +9579,7 @@ type Association struct { // The date on which the association was last run. LastExecutionDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` // Information about the association. @@ -9690,7 +9694,7 @@ type AssociationDescription struct { // The date when the association was last updated. LastUpdateAssociationDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` // An Amazon S3 bucket where you want to store the output details of the request. @@ -10018,7 +10022,8 @@ type AssociationVersionInfo struct { // The date the association version was created. CreatedDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // The version of an SSM document used when the association version was created. + // The version of a Systems Manager document used when the association version + // was created. DocumentVersion *string `type:"string"` // The name specified when the association was created. @@ -13465,7 +13470,7 @@ type DescribeAssociationInput struct { // The instance ID. InstanceId *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` } @@ -13741,7 +13746,7 @@ type DescribeDocumentInput struct { // or the default version. DocumentVersion *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. // // Name is a required field Name *string `type:"string" required:"true"` @@ -13786,7 +13791,7 @@ func (s *DescribeDocumentInput) SetName(v string) *DescribeDocumentInput { type DescribeDocumentOutput struct { _ struct{} `type:"structure"` - // Information about the SSM document. + // Information about the Systems Manager document. Document *DocumentDescription `type:"structure"` } @@ -15855,7 +15860,7 @@ func (s *DocumentDefaultVersionDescription) SetName(v string) *DocumentDefaultVe return s } -// Describes an SSM document. +// Describes a Systems Manager document. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentDescription type DocumentDescription struct { _ struct{} `type:"structure"` @@ -15888,26 +15893,29 @@ type DocumentDescription struct { // The latest version of the document. LatestVersion *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` - // The AWS user account of the person who created the document. + // The AWS user account that created the document. Owner *string `type:"string"` // A description of the parameters for a document. Parameters []*DocumentParameter `locationNameList:"DocumentParameter" type:"list"` - // The list of OS platforms compatible with this SSM document. + // The list of OS platforms compatible with this Systems Manager document. PlatformTypes []*string `locationNameList:"PlatformType" type:"list"` // The schema version. SchemaVersion *string `type:"string"` - // The SHA1 hash of the document, which you can use for verification purposes. + // The SHA1 hash of the document, which you can use for verification. Sha1 *string `type:"string"` - // The status of the SSM document. + // The status of the Systems Manager document. Status *string `type:"string" enum:"DocumentStatus"` + + // The tags, or metadata, that have been applied to the document. + Tags []*Tag `type:"list"` } // String returns the string representation @@ -16010,6 +16018,12 @@ func (s *DocumentDescription) SetStatus(v string) *DocumentDescription { return s } +// SetTags sets the Tags field's value. +func (s *DocumentDescription) SetTags(v []*Tag) *DocumentDescription { + s.Tags = v + return s +} + // Describes a filter. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentFilter type DocumentFilter struct { @@ -16067,7 +16081,7 @@ func (s *DocumentFilter) SetValue(v string) *DocumentFilter { return s } -// Describes the name of an SSM document. +// Describes the name of a Systems Manager document. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentIdentifier type DocumentIdentifier struct { _ struct{} `type:"structure"` @@ -16078,10 +16092,10 @@ type DocumentIdentifier struct { // The document version. DocumentVersion *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` - // The AWS user account of the person who created the document. + // The AWS user account that created the document. Owner *string `type:"string"` // The operating system platform. @@ -16089,6 +16103,9 @@ type DocumentIdentifier struct { // The schema version. SchemaVersion *string `type:"string"` + + // The tags, or metadata, that have been applied to the document. + Tags []*Tag `type:"list"` } // String returns the string representation @@ -16137,6 +16154,83 @@ func (s *DocumentIdentifier) SetSchemaVersion(v string) *DocumentIdentifier { return s } +// SetTags sets the Tags field's value. +func (s *DocumentIdentifier) SetTags(v []*Tag) *DocumentIdentifier { + s.Tags = v + return s +} + +// One or more filters. Use a filter to return a more specific list of documents. +// +// For keys, you can specify one or more tags that have been applied to a document. +// +// Other valid values include Owner, Name, PlatformTypes, and DocumentType. +// +// Note that only one Owner can be specified in a request. For example: Key=Owner,Values=Self. +// +// If you use Name as a key, you can use a name prefix to return a list of documents. +// For example, in the AWS CLI, to return a list of all documents that begin +// with Te, run the following command: +// +// aws ssm list-documents --filters Key=Name,Values=Te +// +// If you specify more than two keys, only documents that are identified by +// all the tags are returned in the results. If you specify more than two values +// for a key, documents that are identified by any of the values are returned +// in the results. +// +// To specify a custom key and value pair, use the format Key=tag:[tagName],Values=[valueName]. +// +// For example, if you created a Key called region and are using the AWS CLI +// to call the list-documents command: +// +// aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentKeyValuesFilter +type DocumentKeyValuesFilter struct { + _ struct{} `type:"structure"` + + // The name of the filter key. + Key *string `min:"1" type:"string"` + + // The value for the filter key. + Values []*string `type:"list"` +} + +// String returns the string representation +func (s DocumentKeyValuesFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DocumentKeyValuesFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentKeyValuesFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentKeyValuesFilter"} + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *DocumentKeyValuesFilter) SetKey(v string) *DocumentKeyValuesFilter { + s.Key = &v + return s +} + +// SetValues sets the Values field's value. +func (s *DocumentKeyValuesFilter) SetValues(v []*string) *DocumentKeyValuesFilter { + s.Values = v + return s +} + // Parameters specified in a System Manager document that execute on the server // when the command is run. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentParameter @@ -16906,7 +17000,7 @@ type GetDocumentInput struct { // The document version for which you want information. DocumentVersion *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. // // Name is a required field Name *string `type:"string" required:"true"` @@ -16951,7 +17045,7 @@ func (s *GetDocumentInput) SetName(v string) *GetDocumentInput { type GetDocumentOutput struct { _ struct{} `type:"structure"` - // The contents of the SSM document. + // The contents of the Systems Manager document. Content *string `min:"1" type:"string"` // The document type. @@ -16960,7 +17054,7 @@ type GetDocumentOutput struct { // The document version. DocumentVersion *string `type:"string"` - // The name of the SSM document. + // The name of the Systems Manager document. Name *string `type:"string"` } @@ -17977,9 +18071,9 @@ type GetMaintenanceWindowTaskOutput struct { Targets []*Target `type:"list"` // The resource that the task used during execution. For RUN_COMMAND and AUTOMATION - // task types, the TaskArn is the SSM Document name/ARN. For LAMBDA tasks, the - // value is the function name/ARN. For STEP_FUNCTION tasks, the value is the - // state machine ARN. + // task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA + // tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value + // is the state machine ARN. TaskArn *string `min:"1" type:"string"` // The parameters to pass to the task when it executes. @@ -20760,6 +20854,9 @@ type ListDocumentsInput struct { // One or more filters. Use a filter to return a more specific list of results. DocumentFilterList []*DocumentFilter `locationNameList:"DocumentFilter" min:"1" type:"list"` + // One or more filters. Use a filter to return a more specific list of results. + Filters []*DocumentKeyValuesFilter `type:"list"` + // The maximum number of items to return for this call. The call also returns // a token that you can specify in a subsequent call to get the next set of // results. @@ -20799,6 +20896,16 @@ func (s *ListDocumentsInput) Validate() error { } } } + if s.Filters != nil { + for i, v := range s.Filters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -20812,6 +20919,12 @@ func (s *ListDocumentsInput) SetDocumentFilterList(v []*DocumentFilter) *ListDoc return s } +// SetFilters sets the Filters field's value. +func (s *ListDocumentsInput) SetFilters(v []*DocumentKeyValuesFilter) *ListDocumentsInput { + s.Filters = v + return s +} + // SetMaxResults sets the MaxResults field's value. func (s *ListDocumentsInput) SetMaxResults(v int64) *ListDocumentsInput { s.MaxResults = &v @@ -20828,7 +20941,7 @@ func (s *ListDocumentsInput) SetNextToken(v string) *ListDocumentsInput { type ListDocumentsOutput struct { _ struct{} `type:"structure"` - // The names of the SSM documents. + // The names of the Systems Manager documents. DocumentIdentifiers []*DocumentIdentifier `locationNameList:"DocumentIdentifier" type:"list"` // The token to use when requesting the next set of items. If there are no additional @@ -22159,9 +22272,9 @@ type MaintenanceWindowTask struct { Targets []*Target `type:"list"` // The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION - // task types, TaskArn is the SSM document name or ARN. For LAMBDA tasks, it's - // the function name or ARN. For STEP_FUNCTION tasks, it's the state machine - // ARN. + // task types, TaskArn is the Systems Manager document name or ARN. For LAMBDA + // tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state + // machine ARN. TaskArn *string `min:"1" type:"string"` // The parameters that should be passed to the task when it is executed. @@ -25619,9 +25732,10 @@ func (s StopAutomationExecutionOutput) GoString() string { return s.String() } -// Metadata that you assign to your managed instances. Tags enable you to categorize -// your managed instances in different ways, for example, by purpose, owner, -// or environment. +// Metadata that you assign to your AWS resources. Tags enable you to categorize +// your resources in different ways, for example, by purpose, owner, or environment. +// In Systems Manager, you can apply tags to documents, managed instances, Maintenance +// Windows, Parameter Store parameters, and patch baselines. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Tag type Tag struct { _ struct{} `type:"structure"` @@ -25907,7 +26021,7 @@ type UpdateAssociationStatusInput struct { // InstanceId is a required field InstanceId *string `type:"string" required:"true"` - // The name of the SSM document. + // The name of the Systems Manager document. // // Name is a required field Name *string `type:"string" required:"true"` @@ -27796,6 +27910,9 @@ const ( ) const ( + // ResourceTypeForTaggingDocument is a ResourceTypeForTagging enum value + ResourceTypeForTaggingDocument = "Document" + // ResourceTypeForTaggingManagedInstance is a ResourceTypeForTagging enum value ResourceTypeForTaggingManagedInstance = "ManagedInstance" @@ -27804,6 +27921,9 @@ const ( // ResourceTypeForTaggingParameter is a ResourceTypeForTagging enum value ResourceTypeForTaggingParameter = "Parameter" + + // ResourceTypeForTaggingPatchBaseline is a ResourceTypeForTagging enum value + ResourceTypeForTaggingPatchBaseline = "PatchBaseline" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go index f10e6aa8..84d2f1cc 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go @@ -17,6 +17,10 @@ // To get started, verify prerequisites and configure managed instances. For // more information, see Systems Manager Prerequisites (http://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html). // +// For information about other API actions you can perform on Amazon EC2 instances, +// see the Amazon EC2 API Reference (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/). +// For information about how to use a Query API, see Making API Requests (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/making-api-requests.html). +// // See https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06 for more information on this service. // // See ssm package documentation for more information. diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go index 35c3d70f..556e1140 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go @@ -92,7 +92,7 @@ const ( // ErrCodeDocumentLimitExceeded for service response error code // "DocumentLimitExceeded". // - // You can have at most 200 active SSM documents. + // You can have at most 200 active Systems Manager documents. ErrCodeDocumentLimitExceeded = "DocumentLimitExceeded" // ErrCodeDocumentPermissionLimit for service response error code @@ -342,8 +342,9 @@ const ( // ErrCodeInvalidParameters for service response error code // "InvalidParameters". // - // You must specify values for all required parameters in the SSM document. - // You can only supply values to parameters defined in the SSM document. + // You must specify values for all required parameters in the Systems Manager + // document. You can only supply values to parameters defined in the Systems + // Manager document. ErrCodeInvalidParameters = "InvalidParameters" // ErrCodeInvalidPermissionType for service response error code @@ -369,8 +370,8 @@ const ( // ErrCodeInvalidResourceType for service response error code // "InvalidResourceType". // - // The resource type is not valid. If you are attempting to tag an instance, - // the instance must be a registered, managed instance. + // The resource type is not valid. For example, if you are attempting to tag + // an instance, the instance must be a registered, managed instance. ErrCodeInvalidResourceType = "InvalidResourceType" // ErrCodeInvalidResultAttributeException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations_test.go b/vendor/github.com/aws/aws-sdk-go/service/sts/customizations_test.go index 6f870d35..18972b1f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations_test.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/customizations_test.go @@ -3,8 +3,6 @@ package sts_test import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/service/sts" @@ -22,8 +20,12 @@ func TestUnsignedRequest_AssumeRoleWithSAML(t *testing.T) { }) err := req.Sign() - assert.NoError(t, err) - assert.Equal(t, "", req.HTTPRequest.Header.Get("Authorization")) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "", req.HTTPRequest.Header.Get("Authorization"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } func TestUnsignedRequest_AssumeRoleWithWebIdentity(t *testing.T) { @@ -34,6 +36,10 @@ func TestUnsignedRequest_AssumeRoleWithWebIdentity(t *testing.T) { }) err := req.Sign() - assert.NoError(t, err) - assert.Equal(t, "", req.HTTPRequest.Header.Get("Authorization")) + if err != nil { + t.Errorf("expect no error, got %v", err) + } + if e, a := "", req.HTTPRequest.Header.Get("Authorization"); e != a { + t.Errorf("expect %v, got %v", e, a) + } } diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/.gitignore b/vendor/github.com/go-ini/ini/.gitignore similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/.gitignore rename to vendor/github.com/go-ini/ini/.gitignore diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/.travis.yml b/vendor/github.com/go-ini/ini/.travis.yml similarity index 83% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/.travis.yml rename to vendor/github.com/go-ini/ini/.travis.yml index 65c872ba..fbfaee21 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/.travis.yml +++ b/vendor/github.com/go-ini/ini/.travis.yml @@ -5,13 +5,10 @@ go: - 1.5.x - 1.6.x - 1.7.x + - 1.8.x - master script: - go get golang.org/x/tools/cmd/cover - go get github.com/smartystreets/goconvey - go test -v -cover -race - -notifications: - email: - - u@gogs.io diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/LICENSE b/vendor/github.com/go-ini/ini/LICENSE similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/LICENSE rename to vendor/github.com/go-ini/ini/LICENSE diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/Makefile b/vendor/github.com/go-ini/ini/Makefile similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/Makefile rename to vendor/github.com/go-ini/ini/Makefile diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README.md b/vendor/github.com/go-ini/ini/README.md similarity index 98% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README.md rename to vendor/github.com/go-ini/ini/README.md index 85947422..e67d51f3 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README.md +++ b/vendor/github.com/go-ini/ini/README.md @@ -83,8 +83,8 @@ sec1, err := cfg.GetSection("Section") sec2, err := cfg.GetSection("SecTIOn") // key1 and key2 are the exactly same key object -key1, err := cfg.GetKey("Key") -key2, err := cfg.GetKey("KeY") +key1, err := sec1.GetKey("Key") +key2, err := sec2.GetKey("KeY") ``` #### MySQL-like boolean key @@ -122,6 +122,12 @@ Take care that following format will be treated as comment: If you want to save a value with `#` or `;`, please quote them with ``` ` ``` or ``` """ ```. +Alternatively, you can use following `LoadOptions` to completely ignore inline comments: + +```go +cfg, err := LoadSources(LoadOptions{IgnoreInlineComment: true}, "app.ini")) +``` + ### Working with sections To get a section, you would need to: diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README_ZH.md b/vendor/github.com/go-ini/ini/README_ZH.md similarity index 98% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README_ZH.md rename to vendor/github.com/go-ini/ini/README_ZH.md index 163432db..0cf41944 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/README_ZH.md +++ b/vendor/github.com/go-ini/ini/README_ZH.md @@ -76,8 +76,8 @@ sec1, err := cfg.GetSection("Section") sec2, err := cfg.GetSection("SecTIOn") // key1 和 key2 指向同一个键对象 -key1, err := cfg.GetKey("Key") -key2, err := cfg.GetKey("KeY") +key1, err := sec1.GetKey("Key") +key2, err := sec2.GetKey("KeY") ``` #### 类似 MySQL 配置中的布尔值键 @@ -115,6 +115,12 @@ key, err := sec.NewBooleanKey("skip-host-cache") 如果你希望使用包含 `#` 或 `;` 的值,请使用 ``` ` ``` 或 ``` """ ``` 进行包覆。 +除此之外,您还可以通过 `LoadOptions` 完全忽略行内注释: + +```go +cfg, err := LoadSources(LoadOptions{IgnoreInlineComment: true}, "app.ini")) +``` + ### 操作分区(Section) 获取指定分区: diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/error.go b/vendor/github.com/go-ini/ini/error.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/error.go rename to vendor/github.com/go-ini/ini/error.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini.go b/vendor/github.com/go-ini/ini/ini.go similarity index 89% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini.go rename to vendor/github.com/go-ini/ini/ini.go index 68d73aa7..7f3c4d1e 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini.go +++ b/vendor/github.com/go-ini/ini/ini.go @@ -24,10 +24,8 @@ import ( "os" "regexp" "runtime" - "strconv" "strings" "sync" - "time" ) const ( @@ -37,7 +35,7 @@ const ( // Maximum allowed depth when recursively substituing variable names. _DEPTH_VALUES = 99 - _VERSION = "1.25.4" + _VERSION = "1.28.2" ) // Version returns current package version literal. @@ -60,6 +58,9 @@ var ( // Explicitly write DEFAULT section header DefaultHeader = false + + // Indicate whether to put a line between sections + PrettySection = true ) func init() { @@ -173,6 +174,8 @@ type LoadOptions struct { Insensitive bool // IgnoreContinuation indicates whether to ignore continuation lines while parsing. IgnoreContinuation bool + // IgnoreInlineComment indicates whether to ignore comments at the end of value and treat it as part of value. + IgnoreInlineComment bool // AllowBooleanKeys indicates whether to allow boolean type keys or treat as value is missing. // This type of keys are mostly used in my.cnf. AllowBooleanKeys bool @@ -319,6 +322,11 @@ func (f *File) Sections() []*Section { return sections } +// ChildSections returns a list of child sections of given section name. +func (f *File) ChildSections(name string) []*Section { + return f.Section(name).ChildSections() +} + // SectionStrings returns list of section names. func (f *File) SectionStrings() []string { list := make([]string, len(f.sectionList)) @@ -388,10 +396,7 @@ func (f *File) Append(source interface{}, others ...interface{}) error { return f.Reload() } -// WriteToIndent writes content into io.Writer with given indention. -// If PrettyFormat has been set to be true, -// it will align "=" sign with spaces under each section. -func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { +func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { equalSign := "=" if PrettyFormat { equalSign = " = " @@ -405,14 +410,14 @@ func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { if sec.Comment[0] != '#' && sec.Comment[0] != ';' { sec.Comment = "; " + sec.Comment } - if _, err = buf.WriteString(sec.Comment + LineBreak); err != nil { - return 0, err + if _, err := buf.WriteString(sec.Comment + LineBreak); err != nil { + return nil, err } } if i > 0 || DefaultHeader { - if _, err = buf.WriteString("[" + sname + "]" + LineBreak); err != nil { - return 0, err + if _, err := buf.WriteString("[" + sname + "]" + LineBreak); err != nil { + return nil, err } } else { // Write nothing if default section is empty @@ -422,8 +427,8 @@ func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { } if sec.isRawSection { - if _, err = buf.WriteString(sec.rawBody); err != nil { - return 0, err + if _, err := buf.WriteString(sec.rawBody); err != nil { + return nil, err } continue } @@ -459,8 +464,8 @@ func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { if key.Comment[0] != '#' && key.Comment[0] != ';' { key.Comment = "; " + key.Comment } - if _, err = buf.WriteString(key.Comment + LineBreak); err != nil { - return 0, err + if _, err := buf.WriteString(key.Comment + LineBreak); err != nil { + return nil, err } } @@ -478,8 +483,8 @@ func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { } for _, val := range key.ValueWithShadows() { - if _, err = buf.WriteString(kname); err != nil { - return 0, err + if _, err := buf.WriteString(kname); err != nil { + return nil, err } if key.isBooleanType { @@ -497,21 +502,34 @@ func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { // In case key value contains "\n", "`", "\"", "#" or ";" if strings.ContainsAny(val, "\n`") { val = `"""` + val + `"""` - } else if strings.ContainsAny(val, "#;") { + } else if !f.options.IgnoreInlineComment && strings.ContainsAny(val, "#;") { val = "`" + val + "`" } - if _, err = buf.WriteString(equalSign + val + LineBreak); err != nil { - return 0, err + if _, err := buf.WriteString(equalSign + val + LineBreak); err != nil { + return nil, err } } } - // Put a line between sections - if _, err = buf.WriteString(LineBreak); err != nil { - return 0, err + if PrettySection { + // Put a line between sections + if _, err := buf.WriteString(LineBreak); err != nil { + return nil, err + } } } + return buf, nil +} + +// WriteToIndent writes content into io.Writer with given indention. +// If PrettyFormat has been set to be true, +// it will align "=" sign with spaces under each section. +func (f *File) WriteToIndent(w io.Writer, indent string) (int64, error) { + buf, err := f.writeToBuffer(indent) + if err != nil { + return 0, err + } return buf.WriteTo(w) } @@ -524,23 +542,12 @@ func (f *File) WriteTo(w io.Writer) (int64, error) { func (f *File) SaveToIndent(filename, indent string) error { // Note: Because we are truncating with os.Create, // so it's safer to save to a temporary file location and rename afte done. - tmpPath := filename + "." + strconv.Itoa(time.Now().Nanosecond()) + ".tmp" - defer os.Remove(tmpPath) - - fw, err := os.Create(tmpPath) + buf, err := f.writeToBuffer(indent) if err != nil { return err } - if _, err = f.WriteToIndent(fw, indent); err != nil { - fw.Close() - return err - } - fw.Close() - - // Remove old file and rename the new one. - os.Remove(filename) - return os.Rename(tmpPath, filename) + return ioutil.WriteFile(filename, buf.Bytes(), 0666) } // SaveTo writes content to file system. diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini_test.go b/vendor/github.com/go-ini/ini/ini_test.go similarity index 91% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini_test.go rename to vendor/github.com/go-ini/ini/ini_test.go index 00b1baa8..b3dd217c 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/ini_test.go +++ b/vendor/github.com/go-ini/ini/ini_test.go @@ -207,6 +207,23 @@ key2=c\d\`)) So(cfg.Section("").Key("key2").String(), ShouldEqual, `c\d\`) }) + Convey("Load with ignoring inline comments", t, func() { + cfg, err := LoadSources(LoadOptions{IgnoreInlineComment: true}, []byte(`key1=value ;comment +key2=value #comment2`)) + So(err, ShouldBeNil) + So(cfg, ShouldNotBeNil) + + So(cfg.Section("").Key("key1").String(), ShouldEqual, `value ;comment`) + So(cfg.Section("").Key("key2").String(), ShouldEqual, `value #comment2`) + + var buf bytes.Buffer + cfg.WriteTo(&buf) + So(buf.String(), ShouldEqual, `key1 = value ;comment +key2 = value #comment2 + +`) + }) + Convey("Load with boolean type keys", t, func() { cfg, err := LoadSources(LoadOptions{AllowBooleanKeys: true}, []byte(`key1=hello key2 @@ -231,6 +248,31 @@ key5 }) } +func Test_File_ChildSections(t *testing.T) { + Convey("Find child sections by parent name", t, func() { + cfg, err := Load([]byte(` +[node] + +[node.biz1] + +[node.biz2] + +[node.biz3] + +[node.bizN] +`)) + So(err, ShouldBeNil) + So(cfg, ShouldNotBeNil) + + children := cfg.ChildSections("node") + names := make([]string, len(children)) + for i := range children { + names[i] = children[i].name + } + So(strings.Join(names, ","), ShouldEqual, "node.biz1,node.biz2,node.biz3,node.bizN") + }) +} + func Test_LooseLoad(t *testing.T) { Convey("Loose load from data sources", t, func() { Convey("Loose load mixed with nonexistent file", func() { diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/key.go b/vendor/github.com/go-ini/ini/key.go similarity index 93% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/key.go rename to vendor/github.com/go-ini/ini/key.go index 852696f4..838356af 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/key.go +++ b/vendor/github.com/go-ini/ini/key.go @@ -473,7 +473,7 @@ func (k *Key) StringsWithShadows(delim string) []string { // Float64s returns list of float64 divided by given delimiter. Any invalid input will be treated as zero value. func (k *Key) Float64s(delim string) []float64 { - vals, _ := k.getFloat64s(delim, true, false) + vals, _ := k.parseFloat64s(k.Strings(delim), true, false) return vals } @@ -491,20 +491,20 @@ func (k *Key) Int64s(delim string) []int64 { // Uints returns list of uint divided by given delimiter. Any invalid input will be treated as zero value. func (k *Key) Uints(delim string) []uint { - vals, _ := k.getUints(delim, true, false) + vals, _ := k.parseUints(k.Strings(delim), true, false) return vals } // Uint64s returns list of uint64 divided by given delimiter. Any invalid input will be treated as zero value. func (k *Key) Uint64s(delim string) []uint64 { - vals, _ := k.getUint64s(delim, true, false) + vals, _ := k.parseUint64s(k.Strings(delim), true, false) return vals } // TimesFormat parses with given format and returns list of time.Time divided by given delimiter. // Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC). func (k *Key) TimesFormat(format, delim string) []time.Time { - vals, _ := k.getTimesFormat(format, delim, true, false) + vals, _ := k.parseTimesFormat(format, k.Strings(delim), true, false) return vals } @@ -517,7 +517,7 @@ func (k *Key) Times(delim string) []time.Time { // ValidFloat64s returns list of float64 divided by given delimiter. If some value is not float, then // it will not be included to result list. func (k *Key) ValidFloat64s(delim string) []float64 { - vals, _ := k.getFloat64s(delim, false, false) + vals, _ := k.parseFloat64s(k.Strings(delim), false, false) return vals } @@ -538,20 +538,20 @@ func (k *Key) ValidInt64s(delim string) []int64 { // ValidUints returns list of uint divided by given delimiter. If some value is not unsigned integer, // then it will not be included to result list. func (k *Key) ValidUints(delim string) []uint { - vals, _ := k.getUints(delim, false, false) + vals, _ := k.parseUints(k.Strings(delim), false, false) return vals } // ValidUint64s returns list of uint64 divided by given delimiter. If some value is not 64-bit unsigned // integer, then it will not be included to result list. func (k *Key) ValidUint64s(delim string) []uint64 { - vals, _ := k.getUint64s(delim, false, false) + vals, _ := k.parseUint64s(k.Strings(delim), false, false) return vals } // ValidTimesFormat parses with given format and returns list of time.Time divided by given delimiter. func (k *Key) ValidTimesFormat(format, delim string) []time.Time { - vals, _ := k.getTimesFormat(format, delim, false, false) + vals, _ := k.parseTimesFormat(format, k.Strings(delim), false, false) return vals } @@ -562,7 +562,7 @@ func (k *Key) ValidTimes(delim string) []time.Time { // StrictFloat64s returns list of float64 divided by given delimiter or error on first invalid input. func (k *Key) StrictFloat64s(delim string) ([]float64, error) { - return k.getFloat64s(delim, false, true) + return k.parseFloat64s(k.Strings(delim), false, true) } // StrictInts returns list of int divided by given delimiter or error on first invalid input. @@ -577,18 +577,18 @@ func (k *Key) StrictInt64s(delim string) ([]int64, error) { // StrictUints returns list of uint divided by given delimiter or error on first invalid input. func (k *Key) StrictUints(delim string) ([]uint, error) { - return k.getUints(delim, false, true) + return k.parseUints(k.Strings(delim), false, true) } // StrictUint64s returns list of uint64 divided by given delimiter or error on first invalid input. func (k *Key) StrictUint64s(delim string) ([]uint64, error) { - return k.getUint64s(delim, false, true) + return k.parseUint64s(k.Strings(delim), false, true) } // StrictTimesFormat parses with given format and returns list of time.Time divided by given delimiter // or error on first invalid input. func (k *Key) StrictTimesFormat(format, delim string) ([]time.Time, error) { - return k.getTimesFormat(format, delim, false, true) + return k.parseTimesFormat(format, k.Strings(delim), false, true) } // StrictTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter @@ -597,9 +597,8 @@ func (k *Key) StrictTimes(delim string) ([]time.Time, error) { return k.StrictTimesFormat(time.RFC3339, delim) } -// getFloat64s returns list of float64 divided by given delimiter. -func (k *Key) getFloat64s(delim string, addInvalid, returnOnInvalid bool) ([]float64, error) { - strs := k.Strings(delim) +// parseFloat64s transforms strings to float64s. +func (k *Key) parseFloat64s(strs []string, addInvalid, returnOnInvalid bool) ([]float64, error) { vals := make([]float64, 0, len(strs)) for _, str := range strs { val, err := strconv.ParseFloat(str, 64) @@ -643,9 +642,8 @@ func (k *Key) parseInt64s(strs []string, addInvalid, returnOnInvalid bool) ([]in return vals, nil } -// getUints returns list of uint divided by given delimiter. -func (k *Key) getUints(delim string, addInvalid, returnOnInvalid bool) ([]uint, error) { - strs := k.Strings(delim) +// parseUints transforms strings to uints. +func (k *Key) parseUints(strs []string, addInvalid, returnOnInvalid bool) ([]uint, error) { vals := make([]uint, 0, len(strs)) for _, str := range strs { val, err := strconv.ParseUint(str, 10, 0) @@ -659,9 +657,8 @@ func (k *Key) getUints(delim string, addInvalid, returnOnInvalid bool) ([]uint, return vals, nil } -// getUint64s returns list of uint64 divided by given delimiter. -func (k *Key) getUint64s(delim string, addInvalid, returnOnInvalid bool) ([]uint64, error) { - strs := k.Strings(delim) +// parseUint64s transforms strings to uint64s. +func (k *Key) parseUint64s(strs []string, addInvalid, returnOnInvalid bool) ([]uint64, error) { vals := make([]uint64, 0, len(strs)) for _, str := range strs { val, err := strconv.ParseUint(str, 10, 64) @@ -675,9 +672,8 @@ func (k *Key) getUint64s(delim string, addInvalid, returnOnInvalid bool) ([]uint return vals, nil } -// getTimesFormat parses with given format and returns list of time.Time divided by given delimiter. -func (k *Key) getTimesFormat(format, delim string, addInvalid, returnOnInvalid bool) ([]time.Time, error) { - strs := k.Strings(delim) +// parseTimesFormat transforms strings to times in given format. +func (k *Key) parseTimesFormat(format string, strs []string, addInvalid, returnOnInvalid bool) ([]time.Time, error) { vals := make([]time.Time, 0, len(strs)) for _, str := range strs { val, err := time.Parse(format, str) diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/key_test.go b/vendor/github.com/go-ini/ini/key_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/key_test.go rename to vendor/github.com/go-ini/ini/key_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/parser.go b/vendor/github.com/go-ini/ini/parser.go similarity index 94% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/parser.go rename to vendor/github.com/go-ini/ini/parser.go index 673ef80c..69d54762 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/parser.go +++ b/vendor/github.com/go-ini/ini/parser.go @@ -189,11 +189,11 @@ func (p *parser) readContinuationLines(val string) (string, error) { // are quotes \" or \'. // It returns false if any other parts also contain same kind of quotes. func hasSurroundedQuote(in string, quote byte) bool { - return len(in) > 2 && in[0] == quote && in[len(in)-1] == quote && + return len(in) >= 2 && in[0] == quote && in[len(in)-1] == quote && strings.IndexByte(in[1:], quote) == len(in)-2 } -func (p *parser) readValue(in []byte, ignoreContinuation bool) (string, error) { +func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment bool) (string, error) { line := strings.TrimLeftFunc(string(in), unicode.IsSpace) if len(line) == 0 { return "", nil @@ -217,18 +217,21 @@ func (p *parser) readValue(in []byte, ignoreContinuation bool) (string, error) { return line[startIdx : pos+startIdx], nil } - // Won't be able to reach here if value only contains whitespace. + // Won't be able to reach here if value only contains whitespace line = strings.TrimSpace(line) - // Check continuation lines when desired. + // Check continuation lines when desired if !ignoreContinuation && line[len(line)-1] == '\\' { return p.readContinuationLines(line[:len(line)-1]) } - i := strings.IndexAny(line, "#;") - if i > -1 { - p.comment.WriteString(line[i:]) - line = strings.TrimSpace(line[:i]) + // Check if ignore inline comment + if !ignoreInlineComment { + i := strings.IndexAny(line, "#;") + if i > -1 { + p.comment.WriteString(line[i:]) + line = strings.TrimSpace(line[:i]) + } } // Trim single quotes @@ -318,7 +321,7 @@ func (f *File) parse(reader io.Reader) (err error) { if err != nil { // Treat as boolean key when desired, and whole line is key name. if IsErrDelimiterNotFound(err) && f.options.AllowBooleanKeys { - kname, err := p.readValue(line, f.options.IgnoreContinuation) + kname, err := p.readValue(line, f.options.IgnoreContinuation, f.options.IgnoreInlineComment) if err != nil { return err } @@ -341,7 +344,7 @@ func (f *File) parse(reader io.Reader) (err error) { p.count++ } - value, err := p.readValue(line[offset:], f.options.IgnoreContinuation) + value, err := p.readValue(line[offset:], f.options.IgnoreContinuation, f.options.IgnoreInlineComment) if err != nil { return err } diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/parser_test.go b/vendor/github.com/go-ini/ini/parser_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/parser_test.go rename to vendor/github.com/go-ini/ini/parser_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/section.go b/vendor/github.com/go-ini/ini/section.go similarity index 92% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/section.go rename to vendor/github.com/go-ini/ini/section.go index c9fa27e9..94f7375e 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/section.go +++ b/vendor/github.com/go-ini/ini/section.go @@ -232,3 +232,17 @@ func (s *Section) DeleteKey(name string) { } } } + +// ChildSections returns a list of child sections of current section. +// For example, "[parent.child1]" and "[parent.child12]" are child sections +// of section "[parent]". +func (s *Section) ChildSections() []*Section { + prefix := s.name + "." + children := make([]*Section, 0, 3) + for _, name := range s.f.sectionList { + if strings.HasPrefix(name, prefix) { + children = append(children, s.f.sections[name]) + } + } + return children +} diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/section_test.go b/vendor/github.com/go-ini/ini/section_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/section_test.go rename to vendor/github.com/go-ini/ini/section_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct.go b/vendor/github.com/go-ini/ini/struct.go similarity index 83% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct.go rename to vendor/github.com/go-ini/ini/struct.go index 509c682f..eeb8daba 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct.go +++ b/vendor/github.com/go-ini/ini/struct.go @@ -78,7 +78,7 @@ func parseDelim(actual string) string { var reflectTime = reflect.TypeOf(time.Now()).Kind() // setSliceWithProperType sets proper values to slice based on its type. -func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow bool) error { +func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { var strs []string if allowShadow { strs = key.StringsWithShadows(delim) @@ -92,26 +92,30 @@ func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowSh } var vals interface{} + var err error sliceOf := field.Type().Elem().Kind() switch sliceOf { case reflect.String: vals = strs case reflect.Int: - vals, _ = key.parseInts(strs, true, false) + vals, err = key.parseInts(strs, true, false) case reflect.Int64: - vals, _ = key.parseInt64s(strs, true, false) + vals, err = key.parseInt64s(strs, true, false) case reflect.Uint: - vals = key.Uints(delim) + vals, err = key.parseUints(strs, true, false) case reflect.Uint64: - vals = key.Uint64s(delim) + vals, err = key.parseUint64s(strs, true, false) case reflect.Float64: - vals = key.Float64s(delim) + vals, err = key.parseFloat64s(strs, true, false) case reflectTime: - vals = key.Times(delim) + vals, err = key.parseTimesFormat(time.RFC3339, strs, true, false) default: return fmt.Errorf("unsupported type '[]%s'", sliceOf) } + if isStrict { + return err + } slice := reflect.MakeSlice(field.Type(), numVals, numVals) for i := 0; i < numVals; i++ { @@ -136,10 +140,17 @@ func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowSh return nil } +func wrapStrictError(err error, isStrict bool) error { + if isStrict { + return err + } + return nil +} + // setWithProperType sets proper value to field based on its type, // but it does not return error for failing parsing, // because we want to use default value that is already assigned to strcut. -func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow bool) error { +func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { switch t.Kind() { case reflect.String: if len(key.String()) == 0 { @@ -149,7 +160,7 @@ func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim stri case reflect.Bool: boolVal, err := key.Bool() if err != nil { - return nil + return wrapStrictError(err, isStrict) } field.SetBool(boolVal) case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: @@ -161,8 +172,8 @@ func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim stri } intVal, err := key.Int64() - if err != nil || intVal == 0 { - return nil + if err != nil { + return wrapStrictError(err, isStrict) } field.SetInt(intVal) // byte is an alias for uint8, so supporting uint8 breaks support for byte @@ -176,24 +187,24 @@ func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim stri uintVal, err := key.Uint64() if err != nil { - return nil + return wrapStrictError(err, isStrict) } field.SetUint(uintVal) case reflect.Float32, reflect.Float64: floatVal, err := key.Float64() if err != nil { - return nil + return wrapStrictError(err, isStrict) } field.SetFloat(floatVal) case reflectTime: timeVal, err := key.Time() if err != nil { - return nil + return wrapStrictError(err, isStrict) } field.Set(reflect.ValueOf(timeVal)) case reflect.Slice: - return setSliceWithProperType(key, field, delim, allowShadow) + return setSliceWithProperType(key, field, delim, allowShadow, isStrict) default: return fmt.Errorf("unsupported type '%s'", t) } @@ -212,7 +223,7 @@ func parseTagOptions(tag string) (rawName string, omitEmpty bool, allowShadow bo return rawName, omitEmpty, allowShadow } -func (s *Section) mapTo(val reflect.Value) error { +func (s *Section) mapTo(val reflect.Value, isStrict bool) error { if val.Kind() == reflect.Ptr { val = val.Elem() } @@ -241,7 +252,7 @@ func (s *Section) mapTo(val reflect.Value) error { if isAnonymous || isStruct { if sec, err := s.f.GetSection(fieldName); err == nil { - if err = sec.mapTo(field); err != nil { + if err = sec.mapTo(field, isStrict); err != nil { return fmt.Errorf("error mapping field(%s): %v", fieldName, err) } continue @@ -250,7 +261,7 @@ func (s *Section) mapTo(val reflect.Value) error { if key, err := s.GetKey(fieldName); err == nil { delim := parseDelim(tpField.Tag.Get("delim")) - if err = setWithProperType(tpField.Type, key, field, delim, allowShadow); err != nil { + if err = setWithProperType(tpField.Type, key, field, delim, allowShadow, isStrict); err != nil { return fmt.Errorf("error mapping field(%s): %v", fieldName, err) } } @@ -269,7 +280,22 @@ func (s *Section) MapTo(v interface{}) error { return errors.New("cannot map to non-pointer struct") } - return s.mapTo(val) + return s.mapTo(val, false) +} + +// MapTo maps section to given struct in strict mode, +// which returns all possible error including value parsing error. +func (s *Section) StrictMapTo(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot map to non-pointer struct") + } + + return s.mapTo(val, true) } // MapTo maps file to given struct. @@ -277,6 +303,12 @@ func (f *File) MapTo(v interface{}) error { return f.Section("").MapTo(v) } +// MapTo maps file to given struct in strict mode, +// which returns all possible error including value parsing error. +func (f *File) StrictMapTo(v interface{}) error { + return f.Section("").StrictMapTo(v) +} + // MapTo maps data sources to given struct with name mapper. func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { cfg, err := Load(source, others...) @@ -287,11 +319,28 @@ func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, other return cfg.MapTo(v) } +// StrictMapToWithMapper maps data sources to given struct with name mapper in strict mode, +// which returns all possible error including value parsing error. +func StrictMapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { + cfg, err := Load(source, others...) + if err != nil { + return err + } + cfg.NameMapper = mapper + return cfg.StrictMapTo(v) +} + // MapTo maps data sources to given struct. func MapTo(v, source interface{}, others ...interface{}) error { return MapToWithMapper(v, nil, source, others...) } +// StrictMapTo maps data sources to given struct in strict mode, +// which returns all possible error including value parsing error. +func StrictMapTo(v, source interface{}, others ...interface{}) error { + return StrictMapToWithMapper(v, nil, source, others...) +} + // reflectSliceWithProperType does the opposite thing as setSliceWithProperType. func reflectSliceWithProperType(key *Key, field reflect.Value, delim string) error { slice := field.Slice(0, field.Len()) @@ -359,10 +408,11 @@ func isEmptyValue(v reflect.Value) bool { return v.Uint() == 0 case reflect.Float32, reflect.Float64: return v.Float() == 0 - case reflectTime: - return v.Interface().(time.Time).IsZero() case reflect.Interface, reflect.Ptr: return v.IsNil() + case reflectTime: + t, ok := v.Interface().(time.Time) + return ok && t.IsZero() } return false } diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct_test.go b/vendor/github.com/go-ini/ini/struct_test.go similarity index 96% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct_test.go rename to vendor/github.com/go-ini/ini/struct_test.go index 7237715a..b8ba2529 100644 --- a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/struct_test.go +++ b/vendor/github.com/go-ini/ini/struct_test.go @@ -229,6 +229,21 @@ func Test_Struct(t *testing.T) { }) }) + Convey("Map to struct in strict mode", t, func() { + cfg, err := Load([]byte(` +name=bruce +age=a30`)) + So(err, ShouldBeNil) + + type Strict struct { + Name string `ini:"name"` + Age int `ini:"age"` + } + s := new(Strict) + + So(cfg.Section("").StrictMapTo(s), ShouldNotBeNil) + }) + Convey("Reflect from struct", t, func() { type Embeded struct { Dates []time.Time `delim:"|"` diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-16-BE-BOM.ini b/vendor/github.com/go-ini/ini/testdata/UTF-16-BE-BOM.ini similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-16-BE-BOM.ini rename to vendor/github.com/go-ini/ini/testdata/UTF-16-BE-BOM.ini diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-16-LE-BOM.ini b/vendor/github.com/go-ini/ini/testdata/UTF-16-LE-BOM.ini similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-16-LE-BOM.ini rename to vendor/github.com/go-ini/ini/testdata/UTF-16-LE-BOM.ini diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-8-BOM.ini b/vendor/github.com/go-ini/ini/testdata/UTF-8-BOM.ini similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/UTF-8-BOM.ini rename to vendor/github.com/go-ini/ini/testdata/UTF-8-BOM.ini diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/aicc.ini b/vendor/github.com/go-ini/ini/testdata/aicc.ini similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/aicc.ini rename to vendor/github.com/go-ini/ini/testdata/aicc.ini diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/conf.ini b/vendor/github.com/go-ini/ini/testdata/conf.ini similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/testdata/conf.ini rename to vendor/github.com/go-ini/ini/testdata/conf.ini diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/.gitignore b/vendor/github.com/jmespath/go-jmespath/.gitignore similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/.gitignore rename to vendor/github.com/jmespath/go-jmespath/.gitignore diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/.travis.yml b/vendor/github.com/jmespath/go-jmespath/.travis.yml similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/.travis.yml rename to vendor/github.com/jmespath/go-jmespath/.travis.yml diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/LICENSE b/vendor/github.com/jmespath/go-jmespath/LICENSE similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/LICENSE rename to vendor/github.com/jmespath/go-jmespath/LICENSE diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/Makefile b/vendor/github.com/jmespath/go-jmespath/Makefile similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/Makefile rename to vendor/github.com/jmespath/go-jmespath/Makefile diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/README.md b/vendor/github.com/jmespath/go-jmespath/README.md similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/README.md rename to vendor/github.com/jmespath/go-jmespath/README.md diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/api.go b/vendor/github.com/jmespath/go-jmespath/api.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/api.go rename to vendor/github.com/jmespath/go-jmespath/api.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/api_test.go b/vendor/github.com/jmespath/go-jmespath/api_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/api_test.go rename to vendor/github.com/jmespath/go-jmespath/api_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go b/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go rename to vendor/github.com/jmespath/go-jmespath/astnodetype_string.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/basic.json b/vendor/github.com/jmespath/go-jmespath/compliance/basic.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/basic.json rename to vendor/github.com/jmespath/go-jmespath/compliance/basic.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/boolean.json b/vendor/github.com/jmespath/go-jmespath/compliance/boolean.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/boolean.json rename to vendor/github.com/jmespath/go-jmespath/compliance/boolean.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/current.json b/vendor/github.com/jmespath/go-jmespath/compliance/current.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/current.json rename to vendor/github.com/jmespath/go-jmespath/compliance/current.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/escape.json b/vendor/github.com/jmespath/go-jmespath/compliance/escape.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/escape.json rename to vendor/github.com/jmespath/go-jmespath/compliance/escape.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/filters.json b/vendor/github.com/jmespath/go-jmespath/compliance/filters.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/filters.json rename to vendor/github.com/jmespath/go-jmespath/compliance/filters.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/functions.json b/vendor/github.com/jmespath/go-jmespath/compliance/functions.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/functions.json rename to vendor/github.com/jmespath/go-jmespath/compliance/functions.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/identifiers.json b/vendor/github.com/jmespath/go-jmespath/compliance/identifiers.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/identifiers.json rename to vendor/github.com/jmespath/go-jmespath/compliance/identifiers.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/indices.json b/vendor/github.com/jmespath/go-jmespath/compliance/indices.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/indices.json rename to vendor/github.com/jmespath/go-jmespath/compliance/indices.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/literal.json b/vendor/github.com/jmespath/go-jmespath/compliance/literal.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/literal.json rename to vendor/github.com/jmespath/go-jmespath/compliance/literal.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/multiselect.json b/vendor/github.com/jmespath/go-jmespath/compliance/multiselect.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/multiselect.json rename to vendor/github.com/jmespath/go-jmespath/compliance/multiselect.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/ormatch.json b/vendor/github.com/jmespath/go-jmespath/compliance/ormatch.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/ormatch.json rename to vendor/github.com/jmespath/go-jmespath/compliance/ormatch.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/pipe.json b/vendor/github.com/jmespath/go-jmespath/compliance/pipe.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/pipe.json rename to vendor/github.com/jmespath/go-jmespath/compliance/pipe.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/slice.json b/vendor/github.com/jmespath/go-jmespath/compliance/slice.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/slice.json rename to vendor/github.com/jmespath/go-jmespath/compliance/slice.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/syntax.json b/vendor/github.com/jmespath/go-jmespath/compliance/syntax.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/syntax.json rename to vendor/github.com/jmespath/go-jmespath/compliance/syntax.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/unicode.json b/vendor/github.com/jmespath/go-jmespath/compliance/unicode.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/unicode.json rename to vendor/github.com/jmespath/go-jmespath/compliance/unicode.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/wildcard.json b/vendor/github.com/jmespath/go-jmespath/compliance/wildcard.json similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance/wildcard.json rename to vendor/github.com/jmespath/go-jmespath/compliance/wildcard.json diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance_test.go b/vendor/github.com/jmespath/go-jmespath/compliance_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/compliance_test.go rename to vendor/github.com/jmespath/go-jmespath/compliance_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/functions.go b/vendor/github.com/jmespath/go-jmespath/functions.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/functions.go rename to vendor/github.com/jmespath/go-jmespath/functions.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/fuzz/jmespath.go b/vendor/github.com/jmespath/go-jmespath/fuzz/jmespath.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/fuzz/jmespath.go rename to vendor/github.com/jmespath/go-jmespath/fuzz/jmespath.go diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-1 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-1 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-1 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-10 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-10 new file mode 100644 index 00000000..4d5f9756 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-10 @@ -0,0 +1 @@ +foo.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-100 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-100 new file mode 100644 index 00000000..bc4f6a3f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-100 @@ -0,0 +1 @@ +ends_with(str, 'SStr') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-101 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-101 new file mode 100644 index 00000000..81bf07a7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-101 @@ -0,0 +1 @@ +ends_with(str, 'foo') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-102 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-102 new file mode 100644 index 00000000..3225de91 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-102 @@ -0,0 +1 @@ +floor(`1.2`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-103 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-103 new file mode 100644 index 00000000..8cac9595 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-103 @@ -0,0 +1 @@ +floor(decimals[0]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-104 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-104 new file mode 100644 index 00000000..bd76f47e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-104 @@ -0,0 +1 @@ +floor(foo) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-105 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-105 new file mode 100644 index 00000000..c719add3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-105 @@ -0,0 +1 @@ +length('abc') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-106 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-106 new file mode 100644 index 00000000..ff12f04f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-106 @@ -0,0 +1 @@ +length('') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-107 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-107 new file mode 100644 index 00000000..0eccba1d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-107 @@ -0,0 +1 @@ +length(@) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-108 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-108 new file mode 100644 index 00000000..ab14b0fa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-108 @@ -0,0 +1 @@ +length(strings[0]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-109 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-109 new file mode 100644 index 00000000..f1514bb7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-109 @@ -0,0 +1 @@ +length(str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-110 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-110 new file mode 100644 index 00000000..09276059 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-110 @@ -0,0 +1 @@ +length(array) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-112 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-112 new file mode 100644 index 00000000..ab14b0fa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-112 @@ -0,0 +1 @@ +length(strings[0]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-115 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-115 new file mode 100644 index 00000000..bfb41ae9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-115 @@ -0,0 +1 @@ +max(strings) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-118 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-118 new file mode 100644 index 00000000..915ec172 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-118 @@ -0,0 +1 @@ +merge(`{}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-119 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-119 new file mode 100644 index 00000000..5b74e9b5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-119 @@ -0,0 +1 @@ +merge(`{}`, `{}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-12 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-12 new file mode 100644 index 00000000..64c5e588 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-12 @@ -0,0 +1 @@ +two \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-120 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-120 new file mode 100644 index 00000000..f34dcd8f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-120 @@ -0,0 +1 @@ +merge(`{"a": 1}`, `{"b": 2}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-121 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-121 new file mode 100644 index 00000000..e335dc96 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-121 @@ -0,0 +1 @@ +merge(`{"a": 1}`, `{"a": 2}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-122 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-122 new file mode 100644 index 00000000..aac28fff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-122 @@ -0,0 +1 @@ +merge(`{"a": 1, "b": 2}`, `{"a": 2, "c": 3}`, `{"d": 4}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-123 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-123 new file mode 100644 index 00000000..1c6fd671 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-123 @@ -0,0 +1 @@ +min(numbers) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-126 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-126 new file mode 100644 index 00000000..93e68db7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-126 @@ -0,0 +1 @@ +min(decimals) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-128 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-128 new file mode 100644 index 00000000..554601ea --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-128 @@ -0,0 +1 @@ +type('abc') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-129 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-129 new file mode 100644 index 00000000..1ab2d983 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-129 @@ -0,0 +1 @@ +type(`1.0`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-13 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-13 new file mode 100644 index 00000000..1d19714f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-13 @@ -0,0 +1 @@ +three \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-130 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-130 new file mode 100644 index 00000000..3cee2f56 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-130 @@ -0,0 +1 @@ +type(`2`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-131 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-131 new file mode 100644 index 00000000..4821f9ae --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-131 @@ -0,0 +1 @@ +type(`true`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-132 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-132 new file mode 100644 index 00000000..40b6913a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-132 @@ -0,0 +1 @@ +type(`false`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-133 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-133 new file mode 100644 index 00000000..c711252b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-133 @@ -0,0 +1 @@ +type(`null`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-134 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-134 new file mode 100644 index 00000000..ec5d07e9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-134 @@ -0,0 +1 @@ +type(`[0]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-135 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-135 new file mode 100644 index 00000000..2080401e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-135 @@ -0,0 +1 @@ +type(`{"a": "b"}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-136 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-136 new file mode 100644 index 00000000..c5ee2ba5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-136 @@ -0,0 +1 @@ +type(@) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-137 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-137 new file mode 100644 index 00000000..1814ca17 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-137 @@ -0,0 +1 @@ +keys(objects) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-138 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-138 new file mode 100644 index 00000000..e03cdb0d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-138 @@ -0,0 +1 @@ +values(objects) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-139 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-139 new file mode 100644 index 00000000..7fea8d2c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-139 @@ -0,0 +1 @@ +keys(empty_hash) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-14 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-14 new file mode 100644 index 00000000..a17c92f5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-14 @@ -0,0 +1 @@ +one.two \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-140 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-140 new file mode 100644 index 00000000..4f1d882a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-140 @@ -0,0 +1 @@ +join(', ', strings) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-141 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-141 new file mode 100644 index 00000000..4f1d882a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-141 @@ -0,0 +1 @@ +join(', ', strings) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-142 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-142 new file mode 100644 index 00000000..19ec1fe0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-142 @@ -0,0 +1 @@ +join(',', `["a", "b"]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-143 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-143 new file mode 100644 index 00000000..761c68a6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-143 @@ -0,0 +1 @@ +join('|', strings) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-144 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-144 new file mode 100644 index 00000000..a0dd68ea --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-144 @@ -0,0 +1 @@ +join('|', decimals[].to_string(@)) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-145 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-145 new file mode 100644 index 00000000..a4190b2b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-145 @@ -0,0 +1 @@ +join('|', empty_list) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-146 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-146 new file mode 100644 index 00000000..f5033c30 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-146 @@ -0,0 +1 @@ +reverse(numbers) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-147 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-147 new file mode 100644 index 00000000..822f054d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-147 @@ -0,0 +1 @@ +reverse(array) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-148 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-148 new file mode 100644 index 00000000..a584adcc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-148 @@ -0,0 +1 @@ +reverse(`[]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-149 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-149 new file mode 100644 index 00000000..fb4cc5dc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-149 @@ -0,0 +1 @@ +reverse('') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-15 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-15 new file mode 100644 index 00000000..693f9549 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-15 @@ -0,0 +1 @@ +foo."1" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-150 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-150 new file mode 100644 index 00000000..aa260fab --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-150 @@ -0,0 +1 @@ +reverse('hello world') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-151 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-151 new file mode 100644 index 00000000..d8c58826 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-151 @@ -0,0 +1 @@ +starts_with(str, 'S') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-152 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-152 new file mode 100644 index 00000000..32e16b7b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-152 @@ -0,0 +1 @@ +starts_with(str, 'St') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-153 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-153 new file mode 100644 index 00000000..5f575ae7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-153 @@ -0,0 +1 @@ +starts_with(str, 'Str') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-155 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-155 new file mode 100644 index 00000000..f31551c6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-155 @@ -0,0 +1 @@ +sum(numbers) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-156 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-156 new file mode 100644 index 00000000..18b90446 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-156 @@ -0,0 +1 @@ +sum(decimals) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-157 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-157 new file mode 100644 index 00000000..def4d0bc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-157 @@ -0,0 +1 @@ +sum(array[].to_number(@)) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-158 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-158 new file mode 100644 index 00000000..48e4a770 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-158 @@ -0,0 +1 @@ +sum(`[]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-159 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-159 new file mode 100644 index 00000000..9fb939a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-159 @@ -0,0 +1 @@ +to_array('foo') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-16 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-16 new file mode 100644 index 00000000..86155ed7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-16 @@ -0,0 +1 @@ +foo."1"[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-160 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-160 new file mode 100644 index 00000000..74ba7cc6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-160 @@ -0,0 +1 @@ +to_array(`0`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-161 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-161 new file mode 100644 index 00000000..57f8b983 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-161 @@ -0,0 +1 @@ +to_array(objects) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-162 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-162 new file mode 100644 index 00000000..d17c7345 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-162 @@ -0,0 +1 @@ +to_array(`[1, 2, 3]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-163 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-163 new file mode 100644 index 00000000..15f70f78 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-163 @@ -0,0 +1 @@ +to_array(false) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-164 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-164 new file mode 100644 index 00000000..9b227529 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-164 @@ -0,0 +1 @@ +to_string('foo') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-165 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-165 new file mode 100644 index 00000000..489a4293 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-165 @@ -0,0 +1 @@ +to_string(`1.2`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-166 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-166 new file mode 100644 index 00000000..d17106a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-166 @@ -0,0 +1 @@ +to_string(`[0, 1]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-167 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-167 new file mode 100644 index 00000000..4f4ae9e6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-167 @@ -0,0 +1 @@ +to_number('1.0') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-168 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-168 new file mode 100644 index 00000000..ce932e2e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-168 @@ -0,0 +1 @@ +to_number('1.1') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-169 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-169 new file mode 100644 index 00000000..e246fa4d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-169 @@ -0,0 +1 @@ +to_number('4') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-17 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-17 new file mode 100644 index 00000000..de0b4c39 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-17 @@ -0,0 +1 @@ +foo."-1" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-170 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-170 new file mode 100644 index 00000000..f8c26474 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-170 @@ -0,0 +1 @@ +to_number('notanumber') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-171 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-171 new file mode 100644 index 00000000..7d423b1c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-171 @@ -0,0 +1 @@ +to_number(`false`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-172 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-172 new file mode 100644 index 00000000..503716b6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-172 @@ -0,0 +1 @@ +to_number(`null`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-173 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-173 new file mode 100644 index 00000000..7f61dfa1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-173 @@ -0,0 +1 @@ +to_number(`[0]`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-174 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-174 new file mode 100644 index 00000000..ee72a8c0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-174 @@ -0,0 +1 @@ +to_number(`{"foo": 0}`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-175 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-175 new file mode 100644 index 00000000..8d8f1f75 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-175 @@ -0,0 +1 @@ +sort(numbers) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-178 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-178 new file mode 100644 index 00000000..8cb54ba4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-178 @@ -0,0 +1 @@ +sort(empty_list) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-179 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-179 new file mode 100644 index 00000000..cf2c9b1d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-179 @@ -0,0 +1 @@ +not_null(unknown_key, str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-18 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-18 new file mode 100644 index 00000000..b516b2c4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-18 @@ -0,0 +1 @@ +@ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-180 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-180 new file mode 100644 index 00000000..e047d486 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-180 @@ -0,0 +1 @@ +not_null(unknown_key, foo.bar, empty_list, str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-181 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-181 new file mode 100644 index 00000000..c4cc87b9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-181 @@ -0,0 +1 @@ +not_null(unknown_key, null_key, empty_list, str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-182 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-182 new file mode 100644 index 00000000..2c7fa0a9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-182 @@ -0,0 +1 @@ +not_null(all, expressions, are_null) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-183 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-183 new file mode 100644 index 00000000..eb096e61 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-183 @@ -0,0 +1 @@ +numbers[].to_string(@) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-184 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-184 new file mode 100644 index 00000000..4958abae --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-184 @@ -0,0 +1 @@ +array[].to_number(@) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-185 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-185 new file mode 100644 index 00000000..10270847 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-185 @@ -0,0 +1 @@ +foo[].not_null(f, e, d, c, b, a) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-186 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-186 new file mode 100644 index 00000000..83cb9161 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-186 @@ -0,0 +1 @@ +sort_by(people, &age) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-187 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-187 new file mode 100644 index 00000000..a494d6c4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-187 @@ -0,0 +1 @@ +sort_by(people, &to_number(age_str)) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-188 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-188 new file mode 100644 index 00000000..2294fc54 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-188 @@ -0,0 +1 @@ +sort_by(people, &age)[].name \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-189 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-189 new file mode 100644 index 00000000..bb8c2b46 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-189 @@ -0,0 +1 @@ +sort_by(people, &age)[].extra \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-19 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-19 new file mode 100644 index 00000000..e3ed49ac --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-19 @@ -0,0 +1 @@ +@.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-190 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-190 new file mode 100644 index 00000000..3ab02903 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-190 @@ -0,0 +1 @@ +sort_by(`[]`, &age) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-191 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-191 new file mode 100644 index 00000000..97db56f7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-191 @@ -0,0 +1 @@ +max_by(people, &age) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-192 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-192 new file mode 100644 index 00000000..a7e648de --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-192 @@ -0,0 +1 @@ +max_by(people, &age_str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-193 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-193 new file mode 100644 index 00000000..be4348d0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-193 @@ -0,0 +1 @@ +max_by(people, &to_number(age_str)) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-194 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-194 new file mode 100644 index 00000000..a707283d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-194 @@ -0,0 +1 @@ +min_by(people, &age) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-195 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-195 new file mode 100644 index 00000000..2cd6618d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-195 @@ -0,0 +1 @@ +min_by(people, &age_str) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-196 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-196 new file mode 100644 index 00000000..833e6837 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-196 @@ -0,0 +1 @@ +min_by(people, &to_number(age_str)) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-198 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-198 new file mode 100644 index 00000000..706dbda8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-198 @@ -0,0 +1 @@ +__L \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-199 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-199 new file mode 100644 index 00000000..ca593ca9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-199 @@ -0,0 +1 @@ +"!\r" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-2 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-2 new file mode 100644 index 00000000..4d5f9756 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-2 @@ -0,0 +1 @@ +foo.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-20 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-20 new file mode 100644 index 00000000..f300ab91 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-20 @@ -0,0 +1 @@ +@.foo[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-200 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-200 new file mode 100644 index 00000000..9c938435 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-200 @@ -0,0 +1 @@ +Y_1623 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-201 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-201 new file mode 100644 index 00000000..c1b0730e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-201 @@ -0,0 +1 @@ +x \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-202 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-202 new file mode 100644 index 00000000..1552ec63 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-202 @@ -0,0 +1 @@ +"\tF\uCebb" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-203 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-203 new file mode 100644 index 00000000..04704127 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-203 @@ -0,0 +1 @@ +" \t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-204 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-204 new file mode 100644 index 00000000..efd782cc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-204 @@ -0,0 +1 @@ +" " \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-205 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-205 new file mode 100644 index 00000000..8494ac27 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-205 @@ -0,0 +1 @@ +v2 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-206 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-206 new file mode 100644 index 00000000..c61f7f7e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-206 @@ -0,0 +1 @@ +"\t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-207 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-207 new file mode 100644 index 00000000..f6055f18 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-207 @@ -0,0 +1 @@ +_X \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-208 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-208 new file mode 100644 index 00000000..4f58e0e7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-208 @@ -0,0 +1 @@ +"\t4\ud9da\udd15" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-209 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-209 new file mode 100644 index 00000000..f536bfbf --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-209 @@ -0,0 +1 @@ +v24_W \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-21 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-21 new file mode 100644 index 00000000..ef47ff2c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-21 @@ -0,0 +1 @@ +"foo.bar" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-210 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-210 new file mode 100644 index 00000000..69759281 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-210 @@ -0,0 +1 @@ +"H" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-211 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-211 new file mode 100644 index 00000000..c3e8b592 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-211 @@ -0,0 +1 @@ +"\f" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-212 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-212 new file mode 100644 index 00000000..24ecc222 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-212 @@ -0,0 +1 @@ +"E4" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-213 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-213 new file mode 100644 index 00000000..5693009d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-213 @@ -0,0 +1 @@ +"!" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-214 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-214 new file mode 100644 index 00000000..62dd220e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-214 @@ -0,0 +1 @@ +tM \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-215 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-215 new file mode 100644 index 00000000..3c1e81f5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-215 @@ -0,0 +1 @@ +" [" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-216 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-216 new file mode 100644 index 00000000..493daa67 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-216 @@ -0,0 +1 @@ +"R!" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-217 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-217 new file mode 100644 index 00000000..116b50ab --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-217 @@ -0,0 +1 @@ +_6W \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-218 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-218 new file mode 100644 index 00000000..0073fac4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-218 @@ -0,0 +1 @@ +"\uaBA1\r" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-219 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-219 new file mode 100644 index 00000000..00d8fa37 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-219 @@ -0,0 +1 @@ +tL7 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-22 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-22 new file mode 100644 index 00000000..661ebcfa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-22 @@ -0,0 +1 @@ +"foo bar" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-220 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-220 new file mode 100644 index 00000000..c14f16e0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-220 @@ -0,0 +1 @@ +"<" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-257 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-257 new file mode 100644 index 00000000..8a2443e6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-257 @@ -0,0 +1 @@ +hvu \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-258 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-258 new file mode 100644 index 00000000..c9ddacbb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-258 @@ -0,0 +1 @@ +"; !" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-259 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-259 new file mode 100644 index 00000000..d0209c6d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-259 @@ -0,0 +1 @@ +hU \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-26 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-26 new file mode 100644 index 00000000..82649bd2 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-26 @@ -0,0 +1 @@ +"/unix/path" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-260 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-260 new file mode 100644 index 00000000..c07242aa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-260 @@ -0,0 +1 @@ +"!I\n\/" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-261 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-261 new file mode 100644 index 00000000..7aae4eff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-261 @@ -0,0 +1 @@ +"\uEEbF" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-262 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-262 new file mode 100644 index 00000000..c1574f35 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-262 @@ -0,0 +1 @@ +"U)\t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-263 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-263 new file mode 100644 index 00000000..5197e3a2 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-263 @@ -0,0 +1 @@ +fa0_9 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-264 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-264 new file mode 100644 index 00000000..320558b0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-264 @@ -0,0 +1 @@ +"/" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-265 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-265 new file mode 100644 index 00000000..4a2cb086 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-265 @@ -0,0 +1 @@ +Gy \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-266 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-266 new file mode 100644 index 00000000..9524c838 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-266 @@ -0,0 +1 @@ +"\b" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-267 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-267 new file mode 100644 index 00000000..066b8d98 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-267 @@ -0,0 +1 @@ +"<" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-268 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-268 new file mode 100644 index 00000000..c61f7f7e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-268 @@ -0,0 +1 @@ +"\t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-269 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-269 new file mode 100644 index 00000000..a582f62d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-269 @@ -0,0 +1 @@ +"\t&\\\r" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-27 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-27 new file mode 100644 index 00000000..a1d50731 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-27 @@ -0,0 +1 @@ +"\"\"\"" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-270 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-270 new file mode 100644 index 00000000..e3c5eede --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-270 @@ -0,0 +1 @@ +"#" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-271 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-271 new file mode 100644 index 00000000..e75309a5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-271 @@ -0,0 +1 @@ +B__ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-272 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-272 new file mode 100644 index 00000000..02717727 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-272 @@ -0,0 +1 @@ +"\nS \n" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-273 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-273 new file mode 100644 index 00000000..99432276 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-273 @@ -0,0 +1 @@ +Bp \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-274 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-274 new file mode 100644 index 00000000..d4f8a788 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-274 @@ -0,0 +1 @@ +",\t;" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-275 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-275 new file mode 100644 index 00000000..56c384f7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-275 @@ -0,0 +1 @@ +B_q \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-276 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-276 new file mode 100644 index 00000000..f093d2aa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-276 @@ -0,0 +1 @@ +"\/+\t\n\b!Z" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-277 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-277 new file mode 100644 index 00000000..11e1229d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-277 @@ -0,0 +1 @@ +"󇟇\\ueFAc" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-278 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-278 new file mode 100644 index 00000000..90dbfcfc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-278 @@ -0,0 +1 @@ +":\f" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-279 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-279 new file mode 100644 index 00000000..b06b8302 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-279 @@ -0,0 +1 @@ +"\/" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-28 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-28 new file mode 100644 index 00000000..5f55d73a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-28 @@ -0,0 +1 @@ +"bar"."baz" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-280 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-280 new file mode 100644 index 00000000..0e4bf7c1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-280 @@ -0,0 +1 @@ +_BW_6Hg_Gl \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-281 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-281 new file mode 100644 index 00000000..81bb45f8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-281 @@ -0,0 +1 @@ +"􃰂" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-282 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-282 new file mode 100644 index 00000000..d0b4de14 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-282 @@ -0,0 +1 @@ +zs1DC \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-283 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-283 new file mode 100644 index 00000000..68797580 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-283 @@ -0,0 +1 @@ +__434 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-284 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-284 new file mode 100644 index 00000000..e61be91c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-284 @@ -0,0 +1 @@ +"󵅁" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-285 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-285 new file mode 100644 index 00000000..026cb9cb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-285 @@ -0,0 +1 @@ +Z_5 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-286 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-286 new file mode 100644 index 00000000..ca9587d0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-286 @@ -0,0 +1 @@ +z_M_ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-287 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-287 new file mode 100644 index 00000000..67f6d9c4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-287 @@ -0,0 +1 @@ +YU_2 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-288 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-288 new file mode 100644 index 00000000..927ab653 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-288 @@ -0,0 +1 @@ +_0 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-289 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-289 new file mode 100644 index 00000000..39307ab9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-289 @@ -0,0 +1 @@ +"\b+" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-29 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-29 new file mode 100644 index 00000000..8b0c5b41 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-29 @@ -0,0 +1 @@ +foo[?name == 'a'] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-290 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-290 new file mode 100644 index 00000000..a3ec2ed7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-290 @@ -0,0 +1 @@ +"\"" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-291 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-291 new file mode 100644 index 00000000..26bf7e12 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-291 @@ -0,0 +1 @@ +D7 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-292 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-292 new file mode 100644 index 00000000..d595c9f4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-292 @@ -0,0 +1 @@ +_62L \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-293 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-293 new file mode 100644 index 00000000..f6869694 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-293 @@ -0,0 +1 @@ +"\tK\t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-294 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-294 new file mode 100644 index 00000000..f3a9b7ed --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-294 @@ -0,0 +1 @@ +"\n\\\f" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-295 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-295 new file mode 100644 index 00000000..455f00ff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-295 @@ -0,0 +1 @@ +I_ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-296 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-296 new file mode 100644 index 00000000..ccd5968f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-296 @@ -0,0 +1 @@ +W_a0_ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-297 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-297 new file mode 100644 index 00000000..ee55c16f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-297 @@ -0,0 +1 @@ +BQ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-298 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-298 new file mode 100644 index 00000000..0d1a169a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-298 @@ -0,0 +1 @@ +"\tX$\uABBb" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-299 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-299 new file mode 100644 index 00000000..0573cfd7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-299 @@ -0,0 +1 @@ +Z9 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-3 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-3 new file mode 100644 index 00000000..f0fcbd8e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-3 @@ -0,0 +1 @@ +foo.bar.baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-30 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-30 new file mode 100644 index 00000000..4f8e6a17 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-30 @@ -0,0 +1 @@ +*[?[0] == `0`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-300 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-300 new file mode 100644 index 00000000..a0db02be --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-300 @@ -0,0 +1 @@ +"\b%\"򞄏" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-301 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-301 new file mode 100644 index 00000000..56032f7a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-301 @@ -0,0 +1 @@ +_F \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-302 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-302 new file mode 100644 index 00000000..4a8a3cff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-302 @@ -0,0 +1 @@ +"!," \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-303 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-303 new file mode 100644 index 00000000..7c1efac0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-303 @@ -0,0 +1 @@ +"\"!" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-304 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-304 new file mode 100644 index 00000000..a0f489d5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-304 @@ -0,0 +1 @@ +Hh \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-305 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-305 new file mode 100644 index 00000000..c64e8d5a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-305 @@ -0,0 +1 @@ +"&" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-306 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-306 new file mode 100644 index 00000000..0567e992 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-306 @@ -0,0 +1 @@ +"9\r\\R" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-307 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-307 new file mode 100644 index 00000000..ce8245c5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-307 @@ -0,0 +1 @@ +M_k \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-308 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-308 new file mode 100644 index 00000000..8f16a5ac --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-308 @@ -0,0 +1 @@ +"!\b\n󑩒\"\"" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-309 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-309 new file mode 100644 index 00000000..504ff5ae --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-309 @@ -0,0 +1 @@ +"6" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-31 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-31 new file mode 100644 index 00000000..07fb5723 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-31 @@ -0,0 +1 @@ +foo[?first == last] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-310 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-310 new file mode 100644 index 00000000..533dd8e5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-310 @@ -0,0 +1 @@ +_7 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-311 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-311 new file mode 100644 index 00000000..1e4a3a34 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-311 @@ -0,0 +1 @@ +"0" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-312 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-312 new file mode 100644 index 00000000..37961f6c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-312 @@ -0,0 +1 @@ +"\\8\\" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-313 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-313 new file mode 100644 index 00000000..23480cff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-313 @@ -0,0 +1 @@ +b7eo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-314 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-314 new file mode 100644 index 00000000..e609f81a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-314 @@ -0,0 +1 @@ +xIUo9 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-315 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-315 new file mode 100644 index 00000000..d89a25f0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-315 @@ -0,0 +1 @@ +"5" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-316 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-316 new file mode 100644 index 00000000..5adcf5e7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-316 @@ -0,0 +1 @@ +"?" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-317 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-317 new file mode 100644 index 00000000..ace4a897 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-317 @@ -0,0 +1 @@ +sU \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-318 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-318 new file mode 100644 index 00000000..feffb706 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-318 @@ -0,0 +1 @@ +"VH2&H\\\/" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-319 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-319 new file mode 100644 index 00000000..8223f1e5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-319 @@ -0,0 +1 @@ +_C \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-32 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-32 new file mode 100644 index 00000000..7e85c4bd --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-32 @@ -0,0 +1 @@ +foo[?first == last].first \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-320 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-320 new file mode 100644 index 00000000..c9cdc63b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-320 @@ -0,0 +1 @@ +_ \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-321 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-321 new file mode 100644 index 00000000..c82f7982 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-321 @@ -0,0 +1 @@ +"<\t" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-322 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-322 new file mode 100644 index 00000000..dae65c51 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-322 @@ -0,0 +1 @@ +"\uD834\uDD1E" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-323 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-323 new file mode 100644 index 00000000..b6b36954 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-323 @@ -0,0 +1 @@ +foo.bar[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-324 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-324 new file mode 100644 index 00000000..bf06e678 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-324 @@ -0,0 +1 @@ +foo.bar[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-325 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-325 new file mode 100644 index 00000000..5d48e020 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-325 @@ -0,0 +1 @@ +foo.bar[2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-326 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-326 new file mode 100644 index 00000000..de3af723 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-326 @@ -0,0 +1 @@ +foo.bar[3] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-327 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-327 new file mode 100644 index 00000000..a1c33350 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-327 @@ -0,0 +1 @@ +foo.bar[-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-328 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-328 new file mode 100644 index 00000000..ad0fef91 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-328 @@ -0,0 +1 @@ +foo.bar[-2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-329 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-329 new file mode 100644 index 00000000..3e83c6f7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-329 @@ -0,0 +1 @@ +foo.bar[-3] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-33 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-33 new file mode 100644 index 00000000..72fc0a53 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-33 @@ -0,0 +1 @@ +foo[?age > `25`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-330 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-330 new file mode 100644 index 00000000..433a737d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-330 @@ -0,0 +1 @@ +foo.bar[-4] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-331 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-331 new file mode 100644 index 00000000..4d5f9756 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-331 @@ -0,0 +1 @@ +foo.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-332 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-332 new file mode 100644 index 00000000..5e0d9b71 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-332 @@ -0,0 +1 @@ +foo[0].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-333 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-333 new file mode 100644 index 00000000..3cd7e946 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-333 @@ -0,0 +1 @@ +foo[1].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-334 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-334 new file mode 100644 index 00000000..74cb1765 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-334 @@ -0,0 +1 @@ +foo[2].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-335 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-335 new file mode 100644 index 00000000..3cf2007f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-335 @@ -0,0 +1 @@ +foo[3].notbar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-336 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-336 new file mode 100644 index 00000000..9674d880 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-336 @@ -0,0 +1 @@ +foo[3].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-337 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-337 new file mode 100644 index 00000000..9b0b2f81 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-337 @@ -0,0 +1 @@ +foo[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-338 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-338 new file mode 100644 index 00000000..83c639a1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-338 @@ -0,0 +1 @@ +foo[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-339 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-339 new file mode 100644 index 00000000..3b76c9f6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-339 @@ -0,0 +1 @@ +foo[2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-34 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-34 new file mode 100644 index 00000000..9a2b0184 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-34 @@ -0,0 +1 @@ +foo[?age >= `25`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-340 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-340 new file mode 100644 index 00000000..ff99e045 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-340 @@ -0,0 +1 @@ +foo[3] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-341 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-341 new file mode 100644 index 00000000..040ecb24 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-341 @@ -0,0 +1 @@ +foo[4] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-342 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-342 new file mode 100644 index 00000000..6e7ea636 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-342 @@ -0,0 +1 @@ +[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-343 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-343 new file mode 100644 index 00000000..bace2a0b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-343 @@ -0,0 +1 @@ +[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-344 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-344 new file mode 100644 index 00000000..5d50c80c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-344 @@ -0,0 +1 @@ +[2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-345 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-345 new file mode 100644 index 00000000..99d21a2a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-345 @@ -0,0 +1 @@ +[-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-346 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-346 new file mode 100644 index 00000000..133a9c62 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-346 @@ -0,0 +1 @@ +[-2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-347 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-347 new file mode 100644 index 00000000..b7f78c5d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-347 @@ -0,0 +1 @@ +[-3] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-348 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-348 new file mode 100644 index 00000000..bd9de815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-348 @@ -0,0 +1 @@ +reservations[].instances[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-349 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-349 new file mode 100644 index 00000000..55e62573 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-349 @@ -0,0 +1 @@ +reservations[].instances[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-35 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-35 new file mode 100644 index 00000000..fa83f1da --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-35 @@ -0,0 +1 @@ +foo[?age > `30`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-350 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-350 new file mode 100644 index 00000000..1661747c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-350 @@ -0,0 +1 @@ +reservations[].notinstances[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-351 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-351 new file mode 100644 index 00000000..1661747c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-351 @@ -0,0 +1 @@ +reservations[].notinstances[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-352 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-352 new file mode 100644 index 00000000..3debc70f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-352 @@ -0,0 +1 @@ +reservations[].instances[].foo[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-353 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-353 new file mode 100644 index 00000000..75af2fda --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-353 @@ -0,0 +1 @@ +reservations[].instances[].foo[].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-354 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-354 new file mode 100644 index 00000000..4a70cd8a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-354 @@ -0,0 +1 @@ +reservations[].instances[].notfoo[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-355 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-355 new file mode 100644 index 00000000..987985b0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-355 @@ -0,0 +1 @@ +reservations[].instances[].notfoo[].notbar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-356 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-356 new file mode 100644 index 00000000..1661747c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-356 @@ -0,0 +1 @@ +reservations[].notinstances[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-357 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-357 new file mode 100644 index 00000000..634f937e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-357 @@ -0,0 +1 @@ +reservations[].instances[].foo[].notbar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-358 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-358 new file mode 100644 index 00000000..09cb7b8b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-358 @@ -0,0 +1 @@ +reservations[].instances[].bar[].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-359 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-359 new file mode 100644 index 00000000..f5d9ac5b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-359 @@ -0,0 +1 @@ +reservations[].instances[].baz[].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-36 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-36 new file mode 100644 index 00000000..463a2a54 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-36 @@ -0,0 +1 @@ +foo[?age < `25`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-360 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-360 new file mode 100644 index 00000000..d1016d6e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-360 @@ -0,0 +1 @@ +reservations[].instances[].qux[].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-361 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-361 new file mode 100644 index 00000000..ef54cf52 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-361 @@ -0,0 +1 @@ +reservations[].instances[].qux[].baz[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-362 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-362 new file mode 100644 index 00000000..bea506ff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-362 @@ -0,0 +1 @@ +foo[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-363 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-363 new file mode 100644 index 00000000..20dd081e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-363 @@ -0,0 +1 @@ +foo[][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-364 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-364 new file mode 100644 index 00000000..4803734b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-364 @@ -0,0 +1 @@ +foo[][1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-365 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-365 new file mode 100644 index 00000000..1be56598 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-365 @@ -0,0 +1 @@ +foo[][0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-366 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-366 new file mode 100644 index 00000000..d2cf6da5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-366 @@ -0,0 +1 @@ +foo[][2][2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-367 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-367 new file mode 100644 index 00000000..c609ca64 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-367 @@ -0,0 +1 @@ +foo[][0][0][100] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-368 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-368 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-368 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-369 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-369 new file mode 100644 index 00000000..bea506ff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-369 @@ -0,0 +1 @@ +foo[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-37 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-37 new file mode 100644 index 00000000..10ed5d3f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-37 @@ -0,0 +1 @@ +foo[?age <= `25`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-370 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-370 new file mode 100644 index 00000000..13f2c4a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-370 @@ -0,0 +1 @@ +foo[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-371 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-371 new file mode 100644 index 00000000..edf3d927 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-371 @@ -0,0 +1 @@ +foo[].bar[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-372 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-372 new file mode 100644 index 00000000..2a3b993a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-372 @@ -0,0 +1 @@ +foo[].bar[].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-373 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-373 new file mode 100644 index 00000000..d5ca878a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-373 @@ -0,0 +1 @@ +string[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-374 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-374 new file mode 100644 index 00000000..fcd255f5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-374 @@ -0,0 +1 @@ +hash[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-375 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-375 new file mode 100644 index 00000000..2d53bd7c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-375 @@ -0,0 +1 @@ +number[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-376 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-376 new file mode 100644 index 00000000..cb10d249 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-376 @@ -0,0 +1 @@ +nullvalue[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-377 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-377 new file mode 100644 index 00000000..f6c79ca8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-377 @@ -0,0 +1 @@ +string[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-378 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-378 new file mode 100644 index 00000000..09bf36e8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-378 @@ -0,0 +1 @@ +hash[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-379 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-379 new file mode 100644 index 00000000..4c357818 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-379 @@ -0,0 +1 @@ +number[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-38 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-38 new file mode 100644 index 00000000..16a4c36a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-38 @@ -0,0 +1 @@ +foo[?age < `20`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-380 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-380 new file mode 100644 index 00000000..2dd8ae21 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-380 @@ -0,0 +1 @@ +nullvalue[].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-381 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-381 new file mode 100644 index 00000000..dfed8160 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-381 @@ -0,0 +1 @@ +nullvalue[].foo[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-382 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-382 new file mode 100644 index 00000000..d7628e64 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-382 @@ -0,0 +1 @@ +`"foo"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-383 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-383 new file mode 100644 index 00000000..49c5269b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-383 @@ -0,0 +1 @@ +`"\u03a6"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-384 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-384 new file mode 100644 index 00000000..d5db721d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-384 @@ -0,0 +1 @@ +`"✓"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-385 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-385 new file mode 100644 index 00000000..a2b6e4ec --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-385 @@ -0,0 +1 @@ +`[1, 2, 3]` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-386 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-386 new file mode 100644 index 00000000..f5801bdd --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-386 @@ -0,0 +1 @@ +`{"a": "b"}` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-387 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-387 new file mode 100644 index 00000000..f87db59a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-387 @@ -0,0 +1 @@ +`true` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-388 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-388 new file mode 100644 index 00000000..3b20d905 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-388 @@ -0,0 +1 @@ +`false` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-389 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-389 new file mode 100644 index 00000000..70bcd29a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-389 @@ -0,0 +1 @@ +`null` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-39 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-39 new file mode 100644 index 00000000..351054d3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-39 @@ -0,0 +1 @@ +foo[?age == `20`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-390 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-390 new file mode 100644 index 00000000..0918d415 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-390 @@ -0,0 +1 @@ +`0` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-391 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-391 new file mode 100644 index 00000000..ef70c4c1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-391 @@ -0,0 +1 @@ +`1` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-392 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-392 new file mode 100644 index 00000000..b39a922f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-392 @@ -0,0 +1 @@ +`2` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-393 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-393 new file mode 100644 index 00000000..7e65687d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-393 @@ -0,0 +1 @@ +`3` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-394 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-394 new file mode 100644 index 00000000..770d1ece --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-394 @@ -0,0 +1 @@ +`4` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-395 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-395 new file mode 100644 index 00000000..a8b81985 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-395 @@ -0,0 +1 @@ +`5` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-396 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-396 new file mode 100644 index 00000000..7f086106 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-396 @@ -0,0 +1 @@ +`6` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-397 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-397 new file mode 100644 index 00000000..495114d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-397 @@ -0,0 +1 @@ +`7` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-398 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-398 new file mode 100644 index 00000000..94f355c4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-398 @@ -0,0 +1 @@ +`8` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-399 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-399 new file mode 100644 index 00000000..600d2aa3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-399 @@ -0,0 +1 @@ +`9` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-4 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-4 new file mode 100644 index 00000000..31485223 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-4 @@ -0,0 +1 @@ +foo.bar.baz.bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-40 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-40 new file mode 100644 index 00000000..99d9258a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-40 @@ -0,0 +1 @@ +foo[?age != `20`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-400 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-400 new file mode 100644 index 00000000..637015b5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-400 @@ -0,0 +1 @@ +`"foo\`bar"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-401 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-401 new file mode 100644 index 00000000..6fa7557b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-401 @@ -0,0 +1 @@ +`"foo\"bar"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-402 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-402 new file mode 100644 index 00000000..5aabeec3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-402 @@ -0,0 +1 @@ +`"1\`"` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-403 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-403 new file mode 100644 index 00000000..8302ea19 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-403 @@ -0,0 +1 @@ +`"\\"`.{a:`"b"`} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-404 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-404 new file mode 100644 index 00000000..d88d014a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-404 @@ -0,0 +1 @@ +`{"a": "b"}`.a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-405 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-405 new file mode 100644 index 00000000..47152ddd --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-405 @@ -0,0 +1 @@ +`{"a": {"b": "c"}}`.a.b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-406 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-406 new file mode 100644 index 00000000..895d4293 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-406 @@ -0,0 +1 @@ +`[0, 1, 2]`[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-407 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-407 new file mode 100644 index 00000000..42500a36 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-407 @@ -0,0 +1 @@ +` {"foo": true}` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-408 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-408 new file mode 100644 index 00000000..08b944da --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-408 @@ -0,0 +1 @@ +`{"foo": true} ` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-409 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-409 new file mode 100644 index 00000000..6de163f8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-409 @@ -0,0 +1 @@ +'foo' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-41 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-41 new file mode 100644 index 00000000..5bc357d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-41 @@ -0,0 +1 @@ +foo[?top.name == 'a'] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-410 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-410 new file mode 100644 index 00000000..b84bbdb2 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-410 @@ -0,0 +1 @@ +' foo ' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-411 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-411 new file mode 100644 index 00000000..bf6a07ac --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-411 @@ -0,0 +1 @@ +'0' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-412 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-412 new file mode 100644 index 00000000..c742f5b0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-412 @@ -0,0 +1,2 @@ +'newline +' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-413 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-413 new file mode 100644 index 00000000..04e9b3ad --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-413 @@ -0,0 +1,2 @@ +' +' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-414 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-414 new file mode 100644 index 00000000..ebdaf120 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-414 @@ -0,0 +1 @@ +'✓' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-415 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-415 new file mode 100644 index 00000000..d0ba5d7f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-415 @@ -0,0 +1 @@ +'𝄞' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-416 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-416 new file mode 100644 index 00000000..19c2e2ef --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-416 @@ -0,0 +1 @@ +' [foo] ' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-417 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-417 new file mode 100644 index 00000000..5faa483b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-417 @@ -0,0 +1 @@ +'[foo]' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-418 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-418 new file mode 100644 index 00000000..e3c05c16 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-418 @@ -0,0 +1 @@ +'\u03a6' \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-419 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-419 new file mode 100644 index 00000000..7c13861a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-419 @@ -0,0 +1 @@ +foo.{bar: bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-42 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-42 new file mode 100644 index 00000000..d037a0a4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-42 @@ -0,0 +1 @@ +foo[?top.first == top.last] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-420 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-420 new file mode 100644 index 00000000..f795c255 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-420 @@ -0,0 +1 @@ +foo.{"bar": bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-421 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-421 new file mode 100644 index 00000000..772c4563 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-421 @@ -0,0 +1 @@ +foo.{"foo.bar": bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-422 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-422 new file mode 100644 index 00000000..8808e92b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-422 @@ -0,0 +1 @@ +foo.{bar: bar, baz: baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-423 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-423 new file mode 100644 index 00000000..3f13757a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-423 @@ -0,0 +1 @@ +foo.{"bar": bar, "baz": baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-424 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-424 new file mode 100644 index 00000000..23cd8903 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-424 @@ -0,0 +1 @@ +{"baz": baz, "qux\"": "qux\""} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-425 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-425 new file mode 100644 index 00000000..fabb6da4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-425 @@ -0,0 +1 @@ +foo.{bar:bar,baz:baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-426 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-426 new file mode 100644 index 00000000..4c3f615b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-426 @@ -0,0 +1 @@ +foo.{bar: bar,qux: qux} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-427 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-427 new file mode 100644 index 00000000..8bc46535 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-427 @@ -0,0 +1 @@ +foo.{bar: bar, noexist: noexist} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-428 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-428 new file mode 100644 index 00000000..2024b6f1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-428 @@ -0,0 +1 @@ +foo.{noexist: noexist, alsonoexist: alsonoexist} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-429 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-429 new file mode 100644 index 00000000..b52191d1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-429 @@ -0,0 +1 @@ +foo.badkey.{nokey: nokey, alsonokey: alsonokey} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-43 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-43 new file mode 100644 index 00000000..8534a5ca --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-43 @@ -0,0 +1 @@ +foo[?top == `{"first": "foo", "last": "bar"}`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-430 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-430 new file mode 100644 index 00000000..5cd310b6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-430 @@ -0,0 +1 @@ +foo.nested.*.{a: a,b: b} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-431 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-431 new file mode 100644 index 00000000..0b24ef53 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-431 @@ -0,0 +1 @@ +foo.nested.three.{a: a, cinner: c.inner} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-432 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-432 new file mode 100644 index 00000000..473c1c35 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-432 @@ -0,0 +1 @@ +foo.nested.three.{a: a, c: c.inner.bad.key} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-433 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-433 new file mode 100644 index 00000000..44ba735a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-433 @@ -0,0 +1 @@ +foo.{a: nested.one.a, b: nested.two.b} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-434 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-434 new file mode 100644 index 00000000..f5f89b12 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-434 @@ -0,0 +1 @@ +{bar: bar, baz: baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-435 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-435 new file mode 100644 index 00000000..697764cb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-435 @@ -0,0 +1 @@ +{bar: bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-436 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-436 new file mode 100644 index 00000000..20447fb1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-436 @@ -0,0 +1 @@ +{otherkey: bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-437 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-437 new file mode 100644 index 00000000..310b9b1d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-437 @@ -0,0 +1 @@ +{no: no, exist: exist} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-438 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-438 new file mode 100644 index 00000000..c79b2e24 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-438 @@ -0,0 +1 @@ +foo.[bar] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-439 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-439 new file mode 100644 index 00000000..ab498ef6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-439 @@ -0,0 +1 @@ +foo.[bar,baz] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-44 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-44 new file mode 100644 index 00000000..71307c40 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-44 @@ -0,0 +1 @@ +foo[?key == `true`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-440 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-440 new file mode 100644 index 00000000..4b8f39a4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-440 @@ -0,0 +1 @@ +foo.[bar,qux] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-441 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-441 new file mode 100644 index 00000000..b8f9020f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-441 @@ -0,0 +1 @@ +foo.[bar,noexist] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-442 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-442 new file mode 100644 index 00000000..b7c7b3f6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-442 @@ -0,0 +1 @@ +foo.[noexist,alsonoexist] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-443 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-443 new file mode 100644 index 00000000..fabb6da4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-443 @@ -0,0 +1 @@ +foo.{bar:bar,baz:baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-444 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-444 new file mode 100644 index 00000000..c15c39f8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-444 @@ -0,0 +1 @@ +foo.[bar,baz[0]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-445 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-445 new file mode 100644 index 00000000..9cebd898 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-445 @@ -0,0 +1 @@ +foo.[bar,baz[1]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-446 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-446 new file mode 100644 index 00000000..c5bbfbf8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-446 @@ -0,0 +1 @@ +foo.[bar,baz[2]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-447 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-447 new file mode 100644 index 00000000..d81cb2b9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-447 @@ -0,0 +1 @@ +foo.[bar,baz[3]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-448 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-448 new file mode 100644 index 00000000..3a65aa7d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-448 @@ -0,0 +1 @@ +foo.[bar[0],baz[3]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-449 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-449 new file mode 100644 index 00000000..8808e92b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-449 @@ -0,0 +1 @@ +foo.{bar: bar, baz: baz} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-45 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-45 new file mode 100644 index 00000000..e142b22a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-45 @@ -0,0 +1 @@ +foo[?key == `false`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-450 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-450 new file mode 100644 index 00000000..ab498ef6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-450 @@ -0,0 +1 @@ +foo.[bar,baz] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-451 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-451 new file mode 100644 index 00000000..8e3d22dc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-451 @@ -0,0 +1 @@ +foo.{bar: bar.baz[1],includeme: includeme} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-452 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-452 new file mode 100644 index 00000000..398c7f8b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-452 @@ -0,0 +1 @@ +foo.{"bar.baz.two": bar.baz[1].two, includeme: includeme} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-453 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-453 new file mode 100644 index 00000000..a1764448 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-453 @@ -0,0 +1 @@ +foo.[includeme, bar.baz[*].common] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-454 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-454 new file mode 100644 index 00000000..da5225dd --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-454 @@ -0,0 +1 @@ +foo.[includeme, bar.baz[*].none] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-455 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-455 new file mode 100644 index 00000000..a8870b22 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-455 @@ -0,0 +1 @@ +foo.[includeme, bar.baz[].common] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-456 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-456 new file mode 100644 index 00000000..420b1a57 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-456 @@ -0,0 +1 @@ +reservations[*].instances[*].{id: id, name: name} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-457 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-457 new file mode 100644 index 00000000..0761ee16 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-457 @@ -0,0 +1 @@ +reservations[].instances[].{id: id, name: name} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-458 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-458 new file mode 100644 index 00000000..aa1191a4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-458 @@ -0,0 +1 @@ +reservations[].instances[].[id, name] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-459 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-459 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-459 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-46 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-46 new file mode 100644 index 00000000..9a24a464 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-46 @@ -0,0 +1 @@ +foo[?key == `0`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-460 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-460 new file mode 100644 index 00000000..bea506ff --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-460 @@ -0,0 +1 @@ +foo[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-461 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-461 new file mode 100644 index 00000000..13f2c4a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-461 @@ -0,0 +1 @@ +foo[].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-462 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-462 new file mode 100644 index 00000000..edf3d927 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-462 @@ -0,0 +1 @@ +foo[].bar[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-463 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-463 new file mode 100644 index 00000000..d965466e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-463 @@ -0,0 +1 @@ +foo[].bar[].[baz, qux] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-464 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-464 new file mode 100644 index 00000000..f1822a17 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-464 @@ -0,0 +1 @@ +foo[].bar[].[baz] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-465 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-465 new file mode 100644 index 00000000..c6f77b80 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-465 @@ -0,0 +1 @@ +foo[].bar[].[baz, qux][] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-466 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-466 new file mode 100644 index 00000000..db56262a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-466 @@ -0,0 +1 @@ +foo.[baz[*].bar, qux[0]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-467 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-467 new file mode 100644 index 00000000..b901067d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-467 @@ -0,0 +1 @@ +foo.[baz[*].[bar, boo], qux[0]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-468 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-468 new file mode 100644 index 00000000..738479fa --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-468 @@ -0,0 +1 @@ +foo.[baz[*].not_there || baz[*].bar, qux[0]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-469 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-469 new file mode 100644 index 00000000..6926996a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-469 @@ -0,0 +1 @@ +[[*],*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-47 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-47 new file mode 100644 index 00000000..6d33cc72 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-47 @@ -0,0 +1 @@ +foo[?key == `1`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-470 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-470 new file mode 100644 index 00000000..736be0a3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-470 @@ -0,0 +1 @@ +[[*]] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-471 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-471 new file mode 100644 index 00000000..29e1fb20 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-471 @@ -0,0 +1 @@ +outer.foo || outer.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-472 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-472 new file mode 100644 index 00000000..c0070ba7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-472 @@ -0,0 +1 @@ +outer.foo||outer.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-473 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-473 new file mode 100644 index 00000000..661b0bec --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-473 @@ -0,0 +1 @@ +outer.bar || outer.baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-474 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-474 new file mode 100644 index 00000000..296d5aee --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-474 @@ -0,0 +1 @@ +outer.bar||outer.baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-475 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-475 new file mode 100644 index 00000000..ca140f8a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-475 @@ -0,0 +1 @@ +outer.bad || outer.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-476 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-476 new file mode 100644 index 00000000..15d30924 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-476 @@ -0,0 +1 @@ +outer.bad||outer.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-477 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-477 new file mode 100644 index 00000000..56148d95 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-477 @@ -0,0 +1 @@ +outer.foo || outer.bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-478 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-478 new file mode 100644 index 00000000..6d3cf6d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-478 @@ -0,0 +1 @@ +outer.foo||outer.bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-479 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-479 new file mode 100644 index 00000000..100fa833 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-479 @@ -0,0 +1 @@ +outer.bad || outer.alsobad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-48 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-48 new file mode 100644 index 00000000..de56fc04 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-48 @@ -0,0 +1 @@ +foo[?key == `[0]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-480 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-480 new file mode 100644 index 00000000..64490352 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-480 @@ -0,0 +1 @@ +outer.bad||outer.alsobad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-481 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-481 new file mode 100644 index 00000000..af901bde --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-481 @@ -0,0 +1 @@ +outer.empty_string || outer.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-482 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-482 new file mode 100644 index 00000000..36b63e46 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-482 @@ -0,0 +1 @@ +outer.nokey || outer.bool || outer.empty_list || outer.empty_string || outer.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-483 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-483 new file mode 100644 index 00000000..aba584f9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-483 @@ -0,0 +1 @@ +foo.*.baz | [0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-484 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-484 new file mode 100644 index 00000000..4234ac01 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-484 @@ -0,0 +1 @@ +foo.*.baz | [1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-485 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-485 new file mode 100644 index 00000000..12330d99 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-485 @@ -0,0 +1 @@ +foo.*.baz | [2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-486 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-486 new file mode 100644 index 00000000..1b2d93e1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-486 @@ -0,0 +1 @@ +foo.bar.* | [0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-487 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-487 new file mode 100644 index 00000000..c371fc64 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-487 @@ -0,0 +1 @@ +foo.*.notbaz | [*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-488 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-488 new file mode 100644 index 00000000..3c835642 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-488 @@ -0,0 +1 @@ +foo | bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-489 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-489 new file mode 100644 index 00000000..decaa042 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-489 @@ -0,0 +1 @@ +foo | bar | baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-49 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-49 new file mode 100644 index 00000000..49d9c63a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-49 @@ -0,0 +1 @@ +foo[?key == `{"bar": [0]}`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-490 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-490 new file mode 100644 index 00000000..b9106803 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-490 @@ -0,0 +1 @@ +foo|bar| baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-491 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-491 new file mode 100644 index 00000000..11df74d8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-491 @@ -0,0 +1 @@ +not_there | [0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-492 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-492 new file mode 100644 index 00000000..11df74d8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-492 @@ -0,0 +1 @@ +not_there | [0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-493 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-493 new file mode 100644 index 00000000..37da9fc0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-493 @@ -0,0 +1 @@ +[foo.bar, foo.other] | [0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-494 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-494 new file mode 100644 index 00000000..1f4fc943 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-494 @@ -0,0 +1 @@ +{"a": foo.bar, "b": foo.other} | a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-495 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-495 new file mode 100644 index 00000000..67c7ea9c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-495 @@ -0,0 +1 @@ +{"a": foo.bar, "b": foo.other} | b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-496 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-496 new file mode 100644 index 00000000..d87f9bba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-496 @@ -0,0 +1 @@ +{"a": foo.bar, "b": foo.other} | *.baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-497 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-497 new file mode 100644 index 00000000..ebf8e271 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-497 @@ -0,0 +1 @@ +foo.bam || foo.bar | baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-498 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-498 new file mode 100644 index 00000000..f32bc6db --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-498 @@ -0,0 +1 @@ +foo | not_there || bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-499 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-499 new file mode 100644 index 00000000..d04459d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-499 @@ -0,0 +1 @@ +foo[*].bar[*] | [0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-5 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-5 new file mode 100644 index 00000000..b537264a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-5 @@ -0,0 +1 @@ +foo.bar.bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-50 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-50 new file mode 100644 index 00000000..c17c1df1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-50 @@ -0,0 +1 @@ +foo[?key == `null`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-500 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-500 new file mode 100644 index 00000000..3eb869f4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-500 @@ -0,0 +1 @@ +bar[0:10] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-501 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-501 new file mode 100644 index 00000000..aa5d6be5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-501 @@ -0,0 +1 @@ +foo[0:10:1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-502 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-502 new file mode 100644 index 00000000..1a4d1682 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-502 @@ -0,0 +1 @@ +foo[0:10] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-503 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-503 new file mode 100644 index 00000000..5925a578 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-503 @@ -0,0 +1 @@ +foo[0:10:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-504 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-504 new file mode 100644 index 00000000..081e93ab --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-504 @@ -0,0 +1 @@ +foo[0::1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-505 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-505 new file mode 100644 index 00000000..92270014 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-505 @@ -0,0 +1 @@ +foo[0::] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-506 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-506 new file mode 100644 index 00000000..fd2294d6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-506 @@ -0,0 +1 @@ +foo[0:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-507 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-507 new file mode 100644 index 00000000..c6b551d5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-507 @@ -0,0 +1 @@ +foo[:10:1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-508 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-508 new file mode 100644 index 00000000..503f58da --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-508 @@ -0,0 +1 @@ +foo[::1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-509 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-509 new file mode 100644 index 00000000..f78bb770 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-509 @@ -0,0 +1 @@ +foo[:10:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-51 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-51 new file mode 100644 index 00000000..589a214f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-51 @@ -0,0 +1 @@ +foo[?key == `[1]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-510 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-510 new file mode 100644 index 00000000..eb9d2ba8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-510 @@ -0,0 +1 @@ +foo[::] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-511 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-511 new file mode 100644 index 00000000..1921a3d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-511 @@ -0,0 +1 @@ +foo[:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-512 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-512 new file mode 100644 index 00000000..a87afcb1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-512 @@ -0,0 +1 @@ +foo[1:9] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-513 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-513 new file mode 100644 index 00000000..dbf51d8c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-513 @@ -0,0 +1 @@ +foo[0:10:2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-514 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-514 new file mode 100644 index 00000000..f7288763 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-514 @@ -0,0 +1 @@ +foo[5:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-515 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-515 new file mode 100644 index 00000000..64395761 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-515 @@ -0,0 +1 @@ +foo[5::2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-516 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-516 new file mode 100644 index 00000000..706bb14d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-516 @@ -0,0 +1 @@ +foo[::2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-517 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-517 new file mode 100644 index 00000000..8fcfaee9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-517 @@ -0,0 +1 @@ +foo[::-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-518 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-518 new file mode 100644 index 00000000..f6a00bf9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-518 @@ -0,0 +1 @@ +foo[1::2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-519 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-519 new file mode 100644 index 00000000..ea068ee0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-519 @@ -0,0 +1 @@ +foo[10:0:-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-52 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-52 new file mode 100644 index 00000000..214917ac --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-52 @@ -0,0 +1 @@ +foo[?key == `{"a":2}`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-520 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-520 new file mode 100644 index 00000000..1fe14258 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-520 @@ -0,0 +1 @@ +foo[10:5:-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-521 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-521 new file mode 100644 index 00000000..4ba0e130 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-521 @@ -0,0 +1 @@ +foo[8:2:-2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-522 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-522 new file mode 100644 index 00000000..25db439f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-522 @@ -0,0 +1 @@ +foo[0:20] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-523 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-523 new file mode 100644 index 00000000..8a965920 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-523 @@ -0,0 +1 @@ +foo[10:-20:-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-524 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-524 new file mode 100644 index 00000000..b1e5ba37 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-524 @@ -0,0 +1 @@ +foo[10:-20] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-525 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-525 new file mode 100644 index 00000000..06253112 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-525 @@ -0,0 +1 @@ +foo[-4:-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-526 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-526 new file mode 100644 index 00000000..1e14a6a4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-526 @@ -0,0 +1 @@ +foo[:-5:-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-527 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-527 new file mode 100644 index 00000000..aef5c274 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-527 @@ -0,0 +1 @@ +foo[:2].a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-528 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-528 new file mode 100644 index 00000000..93c95fcf --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-528 @@ -0,0 +1 @@ +foo[:2].b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-529 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-529 new file mode 100644 index 00000000..7e0733e5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-529 @@ -0,0 +1 @@ +foo[:2].a.b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-53 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-53 new file mode 100644 index 00000000..4c002ed8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-53 @@ -0,0 +1 @@ +foo[?`true` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-530 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-530 new file mode 100644 index 00000000..2438b257 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-530 @@ -0,0 +1 @@ +bar[::-1].a.b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-531 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-531 new file mode 100644 index 00000000..549994b6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-531 @@ -0,0 +1 @@ +bar[:2].a.b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-532 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-532 new file mode 100644 index 00000000..ab98292b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-532 @@ -0,0 +1 @@ +baz[:2].a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-533 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-533 new file mode 100644 index 00000000..65fca968 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-533 @@ -0,0 +1 @@ +[:] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-534 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-534 new file mode 100644 index 00000000..18c5daf7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-534 @@ -0,0 +1 @@ +[:2].a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-535 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-535 new file mode 100644 index 00000000..1bb84f7d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-535 @@ -0,0 +1 @@ +[::-1].a \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-536 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-536 new file mode 100644 index 00000000..7a0416f0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-536 @@ -0,0 +1 @@ +[:2].b \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-537 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-537 new file mode 100644 index 00000000..4d5f9756 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-537 @@ -0,0 +1 @@ +foo.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-538 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-538 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-538 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-539 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-539 new file mode 100644 index 00000000..f59ec20a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-539 @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-54 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-54 new file mode 100644 index 00000000..23d27073 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-54 @@ -0,0 +1 @@ +foo[?`false` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-540 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-540 new file mode 100644 index 00000000..dee56957 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-540 @@ -0,0 +1 @@ +*.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-541 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-541 new file mode 100644 index 00000000..1a16f741 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-541 @@ -0,0 +1 @@ +*.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-542 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-542 new file mode 100644 index 00000000..7e8066d3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-542 @@ -0,0 +1 @@ +*[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-543 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-543 new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-543 @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-544 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-544 new file mode 100644 index 00000000..6e7ea636 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-544 @@ -0,0 +1 @@ +[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-545 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-545 new file mode 100644 index 00000000..5a519464 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-545 @@ -0,0 +1 @@ +[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-546 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-546 new file mode 100644 index 00000000..41612742 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-546 @@ -0,0 +1 @@ +*.["0"] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-547 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-547 new file mode 100644 index 00000000..cd9fb6ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-547 @@ -0,0 +1 @@ +[*].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-548 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-548 new file mode 100644 index 00000000..9f3ada48 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-548 @@ -0,0 +1 @@ +[*][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-549 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-549 new file mode 100644 index 00000000..9b0b2f81 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-549 @@ -0,0 +1 @@ +foo[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-55 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-55 new file mode 100644 index 00000000..6d840ee5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-55 @@ -0,0 +1 @@ +foo[?`0` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-550 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-550 new file mode 100644 index 00000000..b23413b9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-550 @@ -0,0 +1 @@ +foo.[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-551 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-551 new file mode 100644 index 00000000..08ab2e1c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-551 @@ -0,0 +1 @@ +foo.[abc] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-552 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-552 new file mode 100644 index 00000000..78b05a5c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-552 @@ -0,0 +1 @@ +foo.[abc, def] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-553 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-553 new file mode 100644 index 00000000..1e7b886e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-553 @@ -0,0 +1 @@ +a.{foo: bar} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-554 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-554 new file mode 100644 index 00000000..91b4c989 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-554 @@ -0,0 +1 @@ +a.{foo: bar, baz: bam} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-555 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-555 new file mode 100644 index 00000000..8301ef98 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-555 @@ -0,0 +1 @@ +{"\\":{" ":*}} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-556 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-556 new file mode 100644 index 00000000..8f75cc91 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-556 @@ -0,0 +1 @@ +foo || bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-557 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-557 new file mode 100644 index 00000000..e5f122c5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-557 @@ -0,0 +1 @@ +foo.[a || b] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-558 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-558 new file mode 100644 index 00000000..39d19143 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-558 @@ -0,0 +1 @@ +foo[?bar==`"baz"`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-559 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-559 new file mode 100644 index 00000000..d08bbe25 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-559 @@ -0,0 +1 @@ +foo[? bar == `"baz"` ] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-56 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-56 new file mode 100644 index 00000000..addaf204 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-56 @@ -0,0 +1 @@ +foo[?`1` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-560 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-560 new file mode 100644 index 00000000..a77f3558 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-560 @@ -0,0 +1 @@ +foo[?a.b.c==d.e.f] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-561 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-561 new file mode 100644 index 00000000..c9697aa4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-561 @@ -0,0 +1 @@ +foo[?bar==`[0, 1, 2]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-562 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-562 new file mode 100644 index 00000000..fd7064a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-562 @@ -0,0 +1 @@ +foo[?bar==`["a", "b", "c"]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-563 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-563 new file mode 100644 index 00000000..61e5e1b8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-563 @@ -0,0 +1 @@ +foo[?bar==`["foo\`bar"]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-564 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-564 new file mode 100644 index 00000000..bc9d8af1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-564 @@ -0,0 +1 @@ +[?"\\">`"foo"`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-565 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-565 new file mode 100644 index 00000000..2dd54dc3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-565 @@ -0,0 +1 @@ +[?"\\" > `"foo"`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-566 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-566 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-566 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-567 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-567 new file mode 100644 index 00000000..7e9668e7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-567 @@ -0,0 +1 @@ +"foo" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-568 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-568 new file mode 100644 index 00000000..d58ac16b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-568 @@ -0,0 +1 @@ +"\\" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-569 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-569 new file mode 100644 index 00000000..33ac9fba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-569 @@ -0,0 +1 @@ +*||*|*|* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-57 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-57 new file mode 100644 index 00000000..acf2435c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-57 @@ -0,0 +1 @@ +foo[?`[0]` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-570 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-570 new file mode 100644 index 00000000..99e19638 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-570 @@ -0,0 +1 @@ +*[]||[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-571 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-571 new file mode 100644 index 00000000..be084501 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-571 @@ -0,0 +1 @@ +[*.*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-572 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-572 new file mode 100644 index 00000000..a84b51e1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-572 @@ -0,0 +1 @@ +foo[]."✓" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-573 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-573 new file mode 100644 index 00000000..c2de5581 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-573 @@ -0,0 +1 @@ +"☯" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-574 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-574 new file mode 100644 index 00000000..dc2dda0b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-574 @@ -0,0 +1 @@ +"♪♫•*¨*•.¸¸❤¸¸.•*¨*•♫♪" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-575 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-575 new file mode 100644 index 00000000..a2d3d5f6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-575 @@ -0,0 +1 @@ +"☃" \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-576 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-576 new file mode 100644 index 00000000..0971c37e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-576 @@ -0,0 +1 @@ +foo.*.baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-577 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-577 new file mode 100644 index 00000000..0e39dfd6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-577 @@ -0,0 +1 @@ +foo.bar.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-578 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-578 new file mode 100644 index 00000000..89c1ce22 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-578 @@ -0,0 +1 @@ +foo.*.notbaz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-579 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-579 new file mode 100644 index 00000000..5199b9f9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-579 @@ -0,0 +1 @@ +foo.*.notbaz[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-58 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-58 new file mode 100644 index 00000000..99fe382c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-58 @@ -0,0 +1 @@ +foo[?`{"bar": [0]}` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-580 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-580 new file mode 100644 index 00000000..5bb6d4ae --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-580 @@ -0,0 +1 @@ +foo.*.notbaz[-1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-581 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-581 new file mode 100644 index 00000000..edac7318 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-581 @@ -0,0 +1 @@ +foo.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-582 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-582 new file mode 100644 index 00000000..458d0a6d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-582 @@ -0,0 +1 @@ +foo.*.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-583 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-583 new file mode 100644 index 00000000..f757fd53 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-583 @@ -0,0 +1 @@ +foo.*.*.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-584 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-584 new file mode 100644 index 00000000..670049d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-584 @@ -0,0 +1 @@ +foo.*.*.*.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-585 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-585 new file mode 100644 index 00000000..3c88caaf --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-585 @@ -0,0 +1 @@ +*.bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-586 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-586 new file mode 100644 index 00000000..f59ec20a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-586 @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-587 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-587 new file mode 100644 index 00000000..0852fcc7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-587 @@ -0,0 +1 @@ +*.sub1 \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-588 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-588 new file mode 100644 index 00000000..dee56957 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-588 @@ -0,0 +1 @@ +*.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-589 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-589 new file mode 100644 index 00000000..66781bba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-589 @@ -0,0 +1 @@ +*.*.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-59 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-59 new file mode 100644 index 00000000..4aad20ae --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-59 @@ -0,0 +1 @@ +foo[?`null` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-590 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-590 new file mode 100644 index 00000000..0db15d97 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-590 @@ -0,0 +1 @@ +*.sub1.foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-591 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-591 new file mode 100644 index 00000000..b24be9d7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-591 @@ -0,0 +1 @@ +foo[*].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-592 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-592 new file mode 100644 index 00000000..e6efe133 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-592 @@ -0,0 +1 @@ +foo[*].notbar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-593 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-593 new file mode 100644 index 00000000..5a519464 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-593 @@ -0,0 +1 @@ +[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-594 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-594 new file mode 100644 index 00000000..cd9fb6ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-594 @@ -0,0 +1 @@ +[*].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-595 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-595 new file mode 100644 index 00000000..cbf1a5d5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-595 @@ -0,0 +1 @@ +[*].notbar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-596 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-596 new file mode 100644 index 00000000..8bd13b7e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-596 @@ -0,0 +1 @@ +foo.bar[*].baz \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-597 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-597 new file mode 100644 index 00000000..7239f3e8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-597 @@ -0,0 +1 @@ +foo.bar[*].baz[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-598 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-598 new file mode 100644 index 00000000..f5e431d9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-598 @@ -0,0 +1 @@ +foo.bar[*].baz[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-599 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-599 new file mode 100644 index 00000000..d0c25953 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-599 @@ -0,0 +1 @@ +foo.bar[*].baz[2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-6 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-6 new file mode 100644 index 00000000..b9749b74 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-6 @@ -0,0 +1 @@ +foo.bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-60 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-60 new file mode 100644 index 00000000..dac67509 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-60 @@ -0,0 +1 @@ +foo[?`[1]` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-600 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-600 new file mode 100644 index 00000000..a6388271 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-600 @@ -0,0 +1 @@ +foo.bar[*].baz[3] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-601 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-601 new file mode 100644 index 00000000..2a66ffe9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-601 @@ -0,0 +1 @@ +foo.bar[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-602 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-602 new file mode 100644 index 00000000..b6b36954 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-602 @@ -0,0 +1 @@ +foo.bar[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-603 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-603 new file mode 100644 index 00000000..7e57f9e7 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-603 @@ -0,0 +1 @@ +foo.bar[0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-604 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-604 new file mode 100644 index 00000000..c5f8bef0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-604 @@ -0,0 +1 @@ +foo.bar[0][0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-605 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-605 new file mode 100644 index 00000000..3decf080 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-605 @@ -0,0 +1 @@ +foo.bar[0][0][0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-606 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-606 new file mode 100644 index 00000000..655e2959 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-606 @@ -0,0 +1 @@ +foo[0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-607 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-607 new file mode 100644 index 00000000..2aa15971 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-607 @@ -0,0 +1 @@ +foo[*].bar[*].kind \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-608 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-608 new file mode 100644 index 00000000..556b380b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-608 @@ -0,0 +1 @@ +foo[*].bar[0].kind \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-609 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-609 new file mode 100644 index 00000000..0de3229b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-609 @@ -0,0 +1 @@ +foo[*].bar.kind \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-61 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-61 new file mode 100644 index 00000000..130ed3b3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-61 @@ -0,0 +1 @@ +foo[?`{"a":2}` == key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-610 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-610 new file mode 100644 index 00000000..3b511f13 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-610 @@ -0,0 +1 @@ +foo[*].bar[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-611 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-611 new file mode 100644 index 00000000..c8dfa16e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-611 @@ -0,0 +1 @@ +foo[*].bar[1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-612 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-612 new file mode 100644 index 00000000..69f04ee2 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-612 @@ -0,0 +1 @@ +foo[*].bar[2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-613 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-613 new file mode 100644 index 00000000..3b511f13 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-613 @@ -0,0 +1 @@ +foo[*].bar[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-614 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-614 new file mode 100644 index 00000000..03e0c0cb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-614 @@ -0,0 +1 @@ +foo[*][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-615 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-615 new file mode 100644 index 00000000..ac1c8966 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-615 @@ -0,0 +1 @@ +foo[*][1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-616 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-616 new file mode 100644 index 00000000..03e0c0cb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-616 @@ -0,0 +1 @@ +foo[*][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-617 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-617 new file mode 100644 index 00000000..ac1c8966 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-617 @@ -0,0 +1 @@ +foo[*][1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-618 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-618 new file mode 100644 index 00000000..6494cf1c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-618 @@ -0,0 +1 @@ +foo[*][0][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-619 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-619 new file mode 100644 index 00000000..1406be57 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-619 @@ -0,0 +1 @@ +foo[*][1][0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-62 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-62 new file mode 100644 index 00000000..3d15fcc1 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-62 @@ -0,0 +1 @@ +foo[?key != `true`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-620 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-620 new file mode 100644 index 00000000..72b5aa28 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-620 @@ -0,0 +1 @@ +foo[*][0][1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-621 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-621 new file mode 100644 index 00000000..02a26491 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-621 @@ -0,0 +1 @@ +foo[*][1][1] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-622 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-622 new file mode 100644 index 00000000..cb08037e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-622 @@ -0,0 +1 @@ +foo[*][2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-623 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-623 new file mode 100644 index 00000000..91d69599 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-623 @@ -0,0 +1 @@ +foo[*][2][2] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-624 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-624 new file mode 100644 index 00000000..f40f261a --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-624 @@ -0,0 +1 @@ +bar[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-625 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-625 new file mode 100644 index 00000000..03904b1d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-625 @@ -0,0 +1 @@ +bar[*].baz[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-626 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-626 new file mode 100644 index 00000000..fd7c21c3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-626 @@ -0,0 +1 @@ +string[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-627 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-627 new file mode 100644 index 00000000..d7ca4719 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-627 @@ -0,0 +1 @@ +hash[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-628 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-628 new file mode 100644 index 00000000..b3ddffe3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-628 @@ -0,0 +1 @@ +number[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-629 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-629 new file mode 100644 index 00000000..c03cd39e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-629 @@ -0,0 +1 @@ +nullvalue[*] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-63 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-63 new file mode 100644 index 00000000..08731af6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-63 @@ -0,0 +1 @@ +foo[?key != `false`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-630 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-630 new file mode 100644 index 00000000..b3c40cd5 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-630 @@ -0,0 +1 @@ +string[*].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-631 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-631 new file mode 100644 index 00000000..c5930d54 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-631 @@ -0,0 +1 @@ +hash[*].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-632 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-632 new file mode 100644 index 00000000..cc0b1a48 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-632 @@ -0,0 +1 @@ +number[*].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-633 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-633 new file mode 100644 index 00000000..d677b965 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-633 @@ -0,0 +1 @@ +nullvalue[*].foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-634 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-634 new file mode 100644 index 00000000..c1166640 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-634 @@ -0,0 +1 @@ +nullvalue[*].foo[*].bar \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-635 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-635 new file mode 100644 index 00000000..e3399771 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-635 @@ -0,0 +1 @@ +string.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-636 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-636 new file mode 100644 index 00000000..76f53453 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-636 @@ -0,0 +1 @@ +hash.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-637 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-637 new file mode 100644 index 00000000..dd485072 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-637 @@ -0,0 +1 @@ +number.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-638 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-638 new file mode 100644 index 00000000..16000c00 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-638 @@ -0,0 +1 @@ +array.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-639 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-639 new file mode 100644 index 00000000..1d0d03ed --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-639 @@ -0,0 +1 @@ +nullvalue.* \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-64 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-64 new file mode 100644 index 00000000..b67aebe9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-64 @@ -0,0 +1 @@ +foo[?key != `0`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-640 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-640 new file mode 100644 index 00000000..7e8066d3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-640 @@ -0,0 +1 @@ +*[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-641 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-641 new file mode 100644 index 00000000..41ebe5ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-641 @@ -0,0 +1 @@ +`foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-642 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-642 new file mode 100644 index 00000000..fe039799 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-642 @@ -0,0 +1 @@ +`foo\"quote` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-643 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-643 new file mode 100644 index 00000000..1a27fd80 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-643 @@ -0,0 +1 @@ +`✓` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-644 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-644 new file mode 100644 index 00000000..559a1345 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-644 @@ -0,0 +1 @@ +`foo\"bar` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-645 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-645 new file mode 100644 index 00000000..e31621b4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-645 @@ -0,0 +1 @@ +`1\`` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-646 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-646 new file mode 100644 index 00000000..6bf7a103 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-646 @@ -0,0 +1 @@ +`\\`.{a:`b`} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-647 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-647 new file mode 100644 index 00000000..41ebe5ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-647 @@ -0,0 +1 @@ +`foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-648 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-648 new file mode 100644 index 00000000..28b9bcbb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-648 @@ -0,0 +1 @@ +` foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-649 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-649 new file mode 100644 index 00000000..41ebe5ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-649 @@ -0,0 +1 @@ +`foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-65 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-65 new file mode 100644 index 00000000..d3ac793b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-65 @@ -0,0 +1 @@ +foo[?key != `1`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-650 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-650 new file mode 100644 index 00000000..fe039799 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-650 @@ -0,0 +1 @@ +`foo\"quote` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-651 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-651 new file mode 100644 index 00000000..1a27fd80 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-651 @@ -0,0 +1 @@ +`✓` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-652 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-652 new file mode 100644 index 00000000..559a1345 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-652 @@ -0,0 +1 @@ +`foo\"bar` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-653 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-653 new file mode 100644 index 00000000..e31621b4 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-653 @@ -0,0 +1 @@ +`1\`` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-654 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-654 new file mode 100644 index 00000000..6bf7a103 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-654 @@ -0,0 +1 @@ +`\\`.{a:`b`} \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-655 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-655 new file mode 100644 index 00000000..41ebe5ba --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-655 @@ -0,0 +1 @@ +`foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-656 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-656 new file mode 100644 index 00000000..28b9bcbb --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-656 @@ -0,0 +1 @@ +` foo` \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-66 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-66 new file mode 100644 index 00000000..065295bc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-66 @@ -0,0 +1 @@ +foo[?key != `null`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-67 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-67 new file mode 100644 index 00000000..43d16492 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-67 @@ -0,0 +1 @@ +foo[?key != `[1]`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-68 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-68 new file mode 100644 index 00000000..6b884fa8 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-68 @@ -0,0 +1 @@ +foo[?key != `{"a":2}`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-69 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-69 new file mode 100644 index 00000000..d85c779d --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-69 @@ -0,0 +1 @@ +foo[?`true` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-7 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-7 new file mode 100644 index 00000000..44d6628c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-7 @@ -0,0 +1 @@ +bad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-70 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-70 new file mode 100644 index 00000000..3e6dcf30 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-70 @@ -0,0 +1 @@ +foo[?`false` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-71 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-71 new file mode 100644 index 00000000..bdb820b3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-71 @@ -0,0 +1 @@ +foo[?`0` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-72 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-72 new file mode 100644 index 00000000..3f3048a0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-72 @@ -0,0 +1 @@ +foo[?`1` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-73 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-73 new file mode 100644 index 00000000..dacc2572 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-73 @@ -0,0 +1 @@ +foo[?`null` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-74 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-74 new file mode 100644 index 00000000..32ebae88 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-74 @@ -0,0 +1 @@ +foo[?`[1]` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-75 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-75 new file mode 100644 index 00000000..dcd023e0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-75 @@ -0,0 +1 @@ +foo[?`{"a":2}` != key] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-76 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-76 new file mode 100644 index 00000000..e08cc13c --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-76 @@ -0,0 +1 @@ +reservations[].instances[?bar==`1`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-77 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-77 new file mode 100644 index 00000000..1ec43f45 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-77 @@ -0,0 +1 @@ +reservations[*].instances[?bar==`1`] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-78 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-78 new file mode 100644 index 00000000..30387116 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-78 @@ -0,0 +1 @@ +reservations[].instances[?bar==`1`][] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-79 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-79 new file mode 100644 index 00000000..e3875746 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-79 @@ -0,0 +1 @@ +foo[?bar==`1`].bar[0] \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-8 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-8 new file mode 100644 index 00000000..da7bc1cc --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-8 @@ -0,0 +1 @@ +bad.morebad.morebad \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-80 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-80 new file mode 100644 index 00000000..5c3d6835 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-80 @@ -0,0 +1 @@ +foo[?a==`1`].b.c \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-81 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-81 new file mode 100644 index 00000000..6232808f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-81 @@ -0,0 +1 @@ +abs(foo) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-82 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-82 new file mode 100644 index 00000000..6232808f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-82 @@ -0,0 +1 @@ +abs(foo) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-83 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-83 new file mode 100644 index 00000000..29497f4f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-83 @@ -0,0 +1 @@ +abs(array[1]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-84 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-84 new file mode 100644 index 00000000..29497f4f --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-84 @@ -0,0 +1 @@ +abs(array[1]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-85 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-85 new file mode 100644 index 00000000..34669656 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-85 @@ -0,0 +1 @@ +abs(`-24`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-86 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-86 new file mode 100644 index 00000000..34669656 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-86 @@ -0,0 +1 @@ +abs(`-24`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-87 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-87 new file mode 100644 index 00000000..c6268f84 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-87 @@ -0,0 +1 @@ +avg(numbers) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-88 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-88 new file mode 100644 index 00000000..7ce70369 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-88 @@ -0,0 +1 @@ +ceil(`1.2`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-89 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-89 new file mode 100644 index 00000000..0561bc26 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-89 @@ -0,0 +1 @@ +ceil(decimals[0]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-9 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-9 new file mode 100644 index 00000000..19102815 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-9 @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-90 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-90 new file mode 100644 index 00000000..c78c1fc3 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-90 @@ -0,0 +1 @@ +ceil(decimals[1]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-91 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-91 new file mode 100644 index 00000000..ebcb4bbd --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-91 @@ -0,0 +1 @@ +ceil(decimals[2]) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-92 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-92 new file mode 100644 index 00000000..6edbf1af --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-92 @@ -0,0 +1 @@ +contains('abc', 'a') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-93 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-93 new file mode 100644 index 00000000..d2b2f070 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-93 @@ -0,0 +1 @@ +contains('abc', 'd') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-94 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-94 new file mode 100644 index 00000000..3535da2e --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-94 @@ -0,0 +1 @@ +contains(strings, 'a') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-95 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-95 new file mode 100644 index 00000000..ba839fe6 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-95 @@ -0,0 +1 @@ +contains(decimals, `1.2`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-96 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-96 new file mode 100644 index 00000000..f4358186 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-96 @@ -0,0 +1 @@ +contains(decimals, `false`) \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-97 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-97 new file mode 100644 index 00000000..adb65fc0 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-97 @@ -0,0 +1 @@ +ends_with(str, 'r') \ No newline at end of file diff --git a/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-98 b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-98 new file mode 100644 index 00000000..93d6901b --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/fuzz/testdata/expr-98 @@ -0,0 +1 @@ +ends_with(str, 'tr') \ No newline at end of file diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/interpreter.go b/vendor/github.com/jmespath/go-jmespath/interpreter.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/interpreter.go rename to vendor/github.com/jmespath/go-jmespath/interpreter.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/interpreter_test.go b/vendor/github.com/jmespath/go-jmespath/interpreter_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/interpreter_test.go rename to vendor/github.com/jmespath/go-jmespath/interpreter_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/lexer.go b/vendor/github.com/jmespath/go-jmespath/lexer.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/lexer.go rename to vendor/github.com/jmespath/go-jmespath/lexer.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/lexer_test.go b/vendor/github.com/jmespath/go-jmespath/lexer_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/lexer_test.go rename to vendor/github.com/jmespath/go-jmespath/lexer_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/parser.go b/vendor/github.com/jmespath/go-jmespath/parser.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/parser.go rename to vendor/github.com/jmespath/go-jmespath/parser.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/parser_test.go b/vendor/github.com/jmespath/go-jmespath/parser_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/parser_test.go rename to vendor/github.com/jmespath/go-jmespath/parser_test.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/toktype_string.go b/vendor/github.com/jmespath/go-jmespath/toktype_string.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/toktype_string.go rename to vendor/github.com/jmespath/go-jmespath/toktype_string.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/util.go b/vendor/github.com/jmespath/go-jmespath/util.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/util.go rename to vendor/github.com/jmespath/go-jmespath/util.go diff --git a/vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/util_test.go b/vendor/github.com/jmespath/go-jmespath/util_test.go similarity index 100% rename from vendor/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/util_test.go rename to vendor/github.com/jmespath/go-jmespath/util_test.go diff --git a/vendor/github.com/yuin/gopher-lua/.github/CONTRIBUTING.md b/vendor/github.com/yuin/gopher-lua/.github/CONTRIBUTING.md new file mode 100644 index 00000000..eb2dc91e --- /dev/null +++ b/vendor/github.com/yuin/gopher-lua/.github/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# How to Contribute +Any kind of contributions are welcome. + +## Building GopherLua + +GopherLua uses simple inlining tool for generate efficient codes. This tool requires python interpreter. Files name of which starts with `_` genarate files name of which does not starts with `_` . For instance, `_state.go` generate `state.go` . You do not edit generated sources. +To generate sources, some make target is available. + +```bash +make build +make glua +make test +``` + +You have to run `make build` before committing to the repository. + +## Pull requests +Our workflow is based on the [github-flow](https://guides.github.com/introduction/flow/>) . + +1. Create a new issue. +2. Fork the project. +3. Clone your fork and add the upstream. + ```bash + git remote add upstream https://github.com/yuin/gopher-lua.git + ``` + +4. Pull new changes from the upstream. + ```bash + git checkout master + git fetch upstream + git merge upstream/master + ``` + +5. Create a feature branch + ```bash + git checkout -b + ``` + +6. Commit your changes and reference the issue number in your comment. + ```bash + git commit -m "Issue # : " + ``` + +7. Push the feature branch to your remote repository. + ```bash + git push origin + ``` + +8. Open new pull request. diff --git a/vendor/github.com/yuin/gopher-lua/.github/ISSUE_TEMPLATE.md b/vendor/github.com/yuin/gopher-lua/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..899ddf73 --- /dev/null +++ b/vendor/github.com/yuin/gopher-lua/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,12 @@ +- [ ] GopherLua is a Lua5.1 implementation. You should be familiar with Lua programming language. Have you read [Lua 5.1 reference manual](http://www.lua.org/manual/5.1/) carefully? +- [ ] GopherLua is a Lua5.1 implementation. In Lua, to keep it simple, **it is more important to remove functionalities rather than to add functionalities unlike other languages** . If you are going to introduce some new cool functionalities into the GopherLua code base and the functionalities can be implemented by existing APIs, It should be implemented as a library. + +Please answer the following before submitting your issue: + +1. What version of GopherLua are you using? : +2. What version of Go are you using? : +3. What operating system and processor architecture are you using? : +4. What did you do? : +5. What did you expect to see? : +6. What did you see instead? : + diff --git a/vendor/github.com/yuin/gopher-lua/.github/PULL_REQUEST_TEMPLATE.md b/vendor/github.com/yuin/gopher-lua/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..917c8aa9 --- /dev/null +++ b/vendor/github.com/yuin/gopher-lua/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +Fixes # . + +Changes proposed in this pull request: + +- a +- b +- c +- d diff --git a/vendor/github.com/yuin/gopher-lua/.travis.yml b/vendor/github.com/yuin/gopher-lua/.travis.yml new file mode 100644 index 00000000..fdaf5365 --- /dev/null +++ b/vendor/github.com/yuin/gopher-lua/.travis.yml @@ -0,0 +1,15 @@ +language: go + +go: + - 1.7 + - 1.8 + - 1.9 + +before_install: + - go get github.com/axw/gocov/gocov + - go get github.com/mattn/goveralls + - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi +install: + - go get -u -v $(go list -f '{{join .Imports "\n"}}{{"\n"}}{{join .TestImports "\n"}}' ./... | sort | uniq | grep -v gopher-lua) +script: + - $HOME/gopath/bin/goveralls -service=travis-ci