vendor: run make vendor-update

This commit is contained in:
Aliaksandr Valialkin 2023-05-18 15:48:55 -07:00
parent 2c0ed32ddd
commit 468cd5f7b7
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1
543 changed files with 34071 additions and 10057 deletions

90
go.mod
View file

@ -4,64 +4,64 @@ go 1.19
require ( require (
cloud.google.com/go/storage v1.30.1 cloud.google.com/go/storage v1.30.1
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0
github.com/VictoriaMetrics/fastcache v1.12.1 github.com/VictoriaMetrics/fastcache v1.12.1
// Do not use the original github.com/valyala/fasthttp because of issues // Do not use the original github.com/valyala/fasthttp because of issues
// like https://github.com/valyala/fasthttp/commit/996610f021ff45fdc98c2ce7884d5fa4e7f9199b // like https://github.com/valyala/fasthttp/commit/996610f021ff45fdc98c2ce7884d5fa4e7f9199b
github.com/VictoriaMetrics/fasthttp v1.2.0 github.com/VictoriaMetrics/fasthttp v1.2.0
github.com/VictoriaMetrics/metrics v1.23.1 github.com/VictoriaMetrics/metrics v1.24.0
github.com/VictoriaMetrics/metricsql v0.56.2 github.com/VictoriaMetrics/metricsql v0.56.2
github.com/aws/aws-sdk-go-v2 v1.17.7 github.com/aws/aws-sdk-go-v2 v1.18.0
github.com/aws/aws-sdk-go-v2/config v1.18.19 github.com/aws/aws-sdk-go-v2/config v1.18.25
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.60 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.1 github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1
github.com/cespare/xxhash/v2 v2.2.0 github.com/cespare/xxhash/v2 v2.2.0
github.com/cheggaaa/pb/v3 v3.1.2 github.com/cheggaaa/pb/v3 v3.1.2
github.com/gogo/protobuf v1.3.2 github.com/gogo/protobuf v1.3.2
github.com/golang/snappy v0.0.4 github.com/golang/snappy v0.0.4
github.com/googleapis/gax-go/v2 v2.8.0 github.com/googleapis/gax-go/v2 v2.8.0
github.com/influxdata/influxdb v1.11.0 github.com/influxdata/influxdb v1.11.1
github.com/klauspost/compress v1.16.4 github.com/klauspost/compress v1.16.5
github.com/prometheus/prometheus v0.43.0 github.com/prometheus/prometheus v0.44.0
github.com/urfave/cli/v2 v2.25.1 github.com/urfave/cli/v2 v2.25.3
github.com/valyala/fastjson v1.6.4 github.com/valyala/fastjson v1.6.4
github.com/valyala/fastrand v1.1.0 github.com/valyala/fastrand v1.1.0
github.com/valyala/fasttemplate v1.2.2 github.com/valyala/fasttemplate v1.2.2
github.com/valyala/gozstd v1.19.0 github.com/valyala/gozstd v1.20.1
github.com/valyala/histogram v1.2.0 github.com/valyala/histogram v1.2.0
github.com/valyala/quicktemplate v1.7.0 github.com/valyala/quicktemplate v1.7.0
golang.org/x/net v0.8.0 golang.org/x/net v0.10.0
golang.org/x/oauth2 v0.6.0 golang.org/x/oauth2 v0.8.0
golang.org/x/sys v0.7.0 golang.org/x/sys v0.8.0
google.golang.org/api v0.116.0 google.golang.org/api v0.123.0
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
) )
require ( require (
cloud.google.com/go v0.110.0 // indirect cloud.google.com/go v0.110.2 // indirect
cloud.google.com/go/compute v1.19.0 // indirect cloud.google.com/go/compute v1.19.3 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/iam v1.0.0 // indirect cloud.google.com/go/iam v1.0.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
github.com/VividCortex/ewma v1.2.0 // indirect github.com/VividCortex/ewma v1.2.0 // indirect
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
github.com/aws/aws-sdk-go v1.44.237 // indirect github.com/aws/aws-sdk-go v1.44.265 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.24 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 // indirect
github.com/aws/smithy-go v1.13.5 // indirect github.com/aws/smithy-go v1.13.5 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
@ -76,6 +76,7 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect github.com/golang/protobuf v1.5.3 // indirect
github.com/google/go-cmp v0.5.9 // indirect github.com/google/go-cmp v0.5.9 // indirect
github.com/google/s2a-go v0.1.3 // indirect
github.com/google/uuid v1.3.0 // indirect github.com/google/uuid v1.3.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd // indirect github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd // indirect
@ -89,9 +90,9 @@ require (
github.com/oklog/ulid v1.3.1 // indirect github.com/oklog/ulid v1.3.1 // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_golang v1.15.1 // indirect
github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/common v0.43.0 // indirect
github.com/prometheus/common/sigv4 v0.1.0 // indirect github.com/prometheus/common/sigv4 v0.1.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect
github.com/rivo/uniseg v0.4.4 // indirect github.com/rivo/uniseg v0.4.4 // indirect
@ -100,20 +101,21 @@ require (
github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
go.opencensus.io v0.24.0 // indirect go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.41.1 // indirect
go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel v1.15.1 // indirect
go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/metric v0.38.1 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.15.1 // indirect
go.uber.org/atomic v1.10.0 // indirect go.uber.org/atomic v1.11.0 // indirect
go.uber.org/goleak v1.2.1 // indirect go.uber.org/goleak v1.2.1 // indirect
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/crypto v0.9.0 // indirect
golang.org/x/sync v0.1.0 // indirect golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
golang.org/x/text v0.8.0 // indirect golang.org/x/sync v0.2.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/time v0.3.0 // indirect golang.org/x/time v0.3.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/appengine v1.6.7 // indirect google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
google.golang.org/grpc v1.54.0 // indirect google.golang.org/grpc v1.55.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
) )

238
go.sum
View file

@ -13,22 +13,22 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= cloud.google.com/go v0.110.2 h1:sdFPBr6xG9/wkBbfhmUz/JmZC7X6LavQgcrVINrKiVA=
cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ= cloud.google.com/go/compute v1.19.3 h1:DcTwsFgGev/wV5+q8o2fzgcHOaac+DKGC91ZlvpsQds=
cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/iam v1.0.0 h1:hlQJMovyJJwYjZcTohUH4o1L8Z8kYz+E+W/zktiLCBc= cloud.google.com/go/iam v1.0.1 h1:lyeCAU6jpnVNrE9zGQkTl3WgNgK/X+uWwaw0kynZJMU=
cloud.google.com/go/iam v1.0.0/go.mod h1:ikbQ4f1r91wTmBmmOtBCOtuEOei6taatNXytzB7Cxew= cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8=
cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
@ -43,8 +43,8 @@ cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/o
cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw= github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM=
@ -52,7 +52,7 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag=
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM=
github.com/Azure/go-autorest/autorest/adal v0.9.22 h1:/GblQdIudfEM3AWWZ0mrYJQSd7JS4S/Mbzh6F0ov0Xc= github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8=
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac=
@ -67,8 +67,8 @@ github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWk
github.com/VictoriaMetrics/fasthttp v1.2.0 h1:nd9Wng4DlNtaI27WlYh5mGXCJOmee/2c2blTJwfyU9I= github.com/VictoriaMetrics/fasthttp v1.2.0 h1:nd9Wng4DlNtaI27WlYh5mGXCJOmee/2c2blTJwfyU9I=
github.com/VictoriaMetrics/fasthttp v1.2.0/go.mod h1:zv5YSmasAoSyv8sBVexfArzFDIGGTN4TfCKAtAw7IfE= github.com/VictoriaMetrics/fasthttp v1.2.0/go.mod h1:zv5YSmasAoSyv8sBVexfArzFDIGGTN4TfCKAtAw7IfE=
github.com/VictoriaMetrics/metrics v1.18.1/go.mod h1:ArjwVz7WpgpegX/JpB0zpNF2h2232kErkEnzH1sxMmA= github.com/VictoriaMetrics/metrics v1.18.1/go.mod h1:ArjwVz7WpgpegX/JpB0zpNF2h2232kErkEnzH1sxMmA=
github.com/VictoriaMetrics/metrics v1.23.1 h1:/j8DzeJBxSpL2qSIdqnRFLvQQhbJyJbbEi22yMm7oL0= github.com/VictoriaMetrics/metrics v1.24.0 h1:ILavebReOjYctAGY5QU2F9X0MYvkcrG3aEn2RKa1Zkw=
github.com/VictoriaMetrics/metrics v1.23.1/go.mod h1:rAr/llLpEnAdTehiNlUxKgnjcOuROSzpw0GvjpEbvFc= github.com/VictoriaMetrics/metrics v1.24.0/go.mod h1:eFT25kvsTidQFHb6U0oa0rTrDRdz4xTYjpL8+UPohys=
github.com/VictoriaMetrics/metricsql v0.56.2 h1:quBAbYOlWMhmdgzFSCr1yjtVcdZYZrVQJ7nR9zor7ZM= github.com/VictoriaMetrics/metricsql v0.56.2 h1:quBAbYOlWMhmdgzFSCr1yjtVcdZYZrVQJ7nR9zor7ZM=
github.com/VictoriaMetrics/metricsql v0.56.2/go.mod h1:6pP1ZeLVJHqJrHlF6Ij3gmpQIznSsgktEcZgsAWYel0= github.com/VictoriaMetrics/metricsql v0.56.2/go.mod h1:6pP1ZeLVJHqJrHlF6Ij3gmpQIznSsgktEcZgsAWYel0=
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow= github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
@ -84,46 +84,47 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.44.237 h1:gsmVP8eTB6id4tmEsBPcjLlYi1sXtKA047bSn7kJZAI= github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc=
github.com/aws/aws-sdk-go v1.44.237/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v1.17.7 h1:CLSjnhJSTSogvqUGhIC6LqFKATMRexcxLZ0i/Nzk9Eg= github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY=
github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno=
github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= github.com/aws/aws-sdk-go-v2/config v1.18.25 h1:JuYyZcnMPBiFqn87L2cRppo+rNwgah6YwD3VuyvaW6Q=
github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= github.com/aws/aws-sdk-go-v2/config v1.18.25/go.mod h1:dZnYpD5wTW/dQF0rRNLVypB396zWCcPiBIvdvSWHEg4=
github.com/aws/aws-sdk-go-v2/credentials v1.13.18 h1:EQMdtHwz0ILTW1hoP+EwuWhwCG1hD6l3+RWFQABET4c= github.com/aws/aws-sdk-go-v2/credentials v1.13.24 h1:PjiYyls3QdCrzqUN35jMWtUK1vqVZ+zLfdOa/UPFDp0=
github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= github.com/aws/aws-sdk-go-v2/credentials v1.13.24/go.mod h1:jYPYi99wUOPIFi0rhiOvXeSEReVOzBqFNOX5bXYoG2o=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2+d9MJaKT/q1OksHNXVE4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 h1:jJPgroehGvjrde3XufFIJUZVK5A2L9a3KwSFgKy9n8w=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.60 h1:BRLcU36boYxw6BPOEvwJbDPuCtP7FqMhXMFk2NM6poM= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67 h1:fI9/5BDEaAv/pv1VO1X1n3jfP9it+IGqWsCuuBQI8wM=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.60/go.mod h1:HLWzCoNyzaPkOOs9yZ3muJ91lSk8O9DJbJw5aKAWWHY= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67/go.mod h1:zQClPRIwQZfJlZq6WZve+s4Tb4JW+3V6eS+4+KrYeP8=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 h1:sJLYcS+eZn5EeNINGHSCRAwUJMFVqklwkH36Vbyai7M= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 h1:1mnRASEKnkqsntcxHaysxwgVoUUp5dkiB+l3llKnqyg= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25 h1:AzwRi5OKKwo4QNqPf7TjeO+tK8AyOK3GVSwmRPo7/Cs=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25/go.mod h1:SUbB4wcbSEyCvqBxv/O/IBf93RbEze7U7OnoTlpPB+g=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28 h1:vGWm5vTpMr39tEZfQeDiDAMgk+5qsnvRny3FjLpnH5w=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28/go.mod h1:spfrICMD6wCAhjhzHuy6DOZZ+LAIY10UxhUmLzpJTTs=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 h1:5LHn8JQ0qvjD9L9JhMtylnkcw7j05GDZqM9Oin6hpr0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2 h1:NbWkRxEEIRSCqxhsHQuMiTH7yo+JZW1gp8v3elSVMTQ=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2/go.mod h1:4tfW5l4IAB32VWCDEBxCRtR9T4BWy4I4kr1spr8NgZM=
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.1 h1:PJH4I+qYjPXclKRbVCW47iYUvtXEh1u6YmDhn5J8VQE= github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1 h1:O+9nAy9Bb6bJFTpeNFtd9UfHbgxO1o4ZDAM9rQp5NsY=
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.1/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1/go.mod h1:J9kLNzEiHSeGMyN7238EjJmBpCniVzFda75Gxl/NqB8=
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 h1:UBQjaMTCKwyUYwiVnUt6toEJwGXsLBI6al083tpjJzY=
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= github.com/aws/aws-sdk-go-v2/service/sso v1.12.10/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 h1:PkHIIJs8qvq0e5QybnZoG1K/9QTrLr9OsqCIo59jOBA=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk=
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 h1:2DQLAKDteoEDI8zpCzqBMaZlJuoE9iTYD0gFmXVax9E=
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= github.com/aws/aws-sdk-go-v2/service/sts v1.19.0/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8=
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@ -141,7 +142,12 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/xds/go v0.0.0-20230112175826-46e39c7b9b43 h1:XP+uhjN0yBCN/tPkr8Z0BNDc5rZam9RG6UWyf2FrSQ0= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4=
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@ -149,10 +155,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
github.com/digitalocean/godo v1.97.0 h1:p9w1yCcWMZcxFSLPToNGXA96WfUVLXqoHti6GzVomL4= github.com/digitalocean/godo v1.98.0 h1:potyC1eD0N9n5/P4/WmJuKgg+OGYZOBWEW+/aKTX6QQ=
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
github.com/docker/docker v23.0.1+incompatible h1:vjgvJZxprTTE1A37nm+CLNAdwu6xZekyoiVlUZEINcY= github.com/docker/docker v23.0.4+incompatible h1:Kd3Bh9V/rO+XpTP/BLqM+gx8z7+Yb0AA2Ibj+nNo4ek=
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
@ -160,14 +166,17 @@ github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKf
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
github.com/envoyproxy/go-control-plane v0.11.0 h1:jtLewhRR2vMRNnq2ZZUoCjUlgut+Y0+sDDWPOfwOi1o= github.com/envoyproxy/go-control-plane v0.11.0 h1:jtLewhRR2vMRNnq2ZZUoCjUlgut+Y0+sDDWPOfwOi1o=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8=
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@ -225,6 +234,7 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@ -261,6 +271,8 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/s2a-go v0.1.3 h1:FAgZmpLl/SXurPEZyCMPBIiiYeTbqfjlbdnCNTAkbGE=
github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -270,10 +282,11 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc= github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc=
github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
github.com/gophercloud/gophercloud v1.2.0 h1:1oXyj4g54KBg/kFtCdMM6jtxSzeIyg8wv4z1HoGPp1E= github.com/gophercloud/gophercloud v1.3.0 h1:RUKyCMiZoQR3VlVR5E3K7PK1AC3/qppsWYo6dtBiqs8=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww= github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww=
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/hashicorp/consul/api v1.20.0 h1:9IHTjNVSZ7MIwjlW3N3a7iGiykCMDpxZu8jsxFJh0yc= github.com/hashicorp/consul/api v1.20.0 h1:9IHTjNVSZ7MIwjlW3N3a7iGiykCMDpxZu8jsxFJh0yc=
github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c= github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
@ -286,14 +299,14 @@ github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5O
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4=
github.com/hashicorp/nomad/api v0.0.0-20230308192510-48e7d70fcd4b h1:EkuSTU8c/63q4LMayj8ilgg/4I5PXDFVcnqKfs9qcwI= github.com/hashicorp/nomad/api v0.0.0-20230418003350-3067191c5197 h1:I5xhKLePXpXgM6pZ4xZNTiurLLS3sGuZrZFFzAbM67A=
github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY=
github.com/hetznercloud/hcloud-go v1.41.0 h1:KJGFRRc68QiVu4PrEP5BmCQVveCP2CM26UGQUKGpIUs= github.com/hetznercloud/hcloud-go v1.42.0 h1:Es/CDOForQN3nOOP5Vxh1N/YHjpCg386iYEX5zCgi+A=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
github.com/influxdata/influxdb v1.11.0 h1:0X+ZsbcOWc6AEi5MHee9BYqXCKmz8IZsljrRYjmV8Qg= github.com/influxdata/influxdb v1.11.1 h1:VEkQVMJ83gjpyS2FJuQaSbt4Mu+btGBoZbVq0XwTHGQ=
github.com/influxdata/influxdb v1.11.0/go.mod h1:V93tJcidY0Zh0LtSONZWnXXGDyt20dtVf+Ddp4EnhaA= github.com/influxdata/influxdb v1.11.1/go.mod h1:WSTwm8ZvJARODSZJfcxdghcjCQVstHwClgO6MrbnGt0=
github.com/ionos-cloud/sdk-go/v6 v6.1.4 h1:BJHhFA8Q1SZC7VOXqKKr2BV2ysQ2/4hlk1e4hZte7GY= github.com/ionos-cloud/sdk-go/v6 v6.1.6 h1:0n4irdqNska+1s3YMCRhrAqKbibEgQ7SwwhAlHzYT5A=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
@ -313,19 +326,19 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/linode/linodego v1.14.1 h1:uGxQyy0BidoEpLGdvfi4cPgEW+0YUFsEGrLEhcTfjNc= github.com/linode/linodego v1.16.1 h1:5otq57M4PdHycPERRfSFZ0s1yz1ETVWGjCp3hh7+F9w=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@ -337,7 +350,7 @@ github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/miekg/dns v1.1.51 h1:0+Xg7vObnhrz/4ZCZcZh7zPXlmU0aveS2HDBd0m0qSo= github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -354,7 +367,7 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
github.com/ovh/go-ovh v1.3.0 h1:mvZaddk4E4kLcXhzb+cxBsMPYp2pHqiQpWYkInsuZPQ= github.com/ovh/go-ovh v1.4.1 h1:VBGa5wMyQtTP7Zb+w97zRCh9sLtM/2YKRyy+MEJmWaM=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -366,20 +379,20 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI=
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= github.com/prometheus/common v0.43.0 h1:iq+BVjvYLei5f27wiuNiB1DN6DYQkp1c8Bx0Vykh5us=
github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/common v0.43.0/go.mod h1:NCvr5cQIh3Y/gy73/RdVtC9r8xxrxwJnB+2lB3BxrFc=
github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4=
github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
@ -388,15 +401,17 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
github.com/prometheus/prometheus v0.43.0 h1:18iCSfrbAHbXvYFvR38U1Pt4uZmU9SmDcCpCrBKUiGg= github.com/prometheus/prometheus v0.44.0 h1:sgn8Fdx+uE5tHQn0/622swlk2XnIj6udoZCnbVjHIgc=
github.com/prometheus/prometheus v0.43.0/go.mod h1:2BA14LgBeqlPuzObSEbh+Y+JwLH2GcqDlJKbF2sA6FM= github.com/prometheus/prometheus v0.44.0/go.mod h1:aPsmIK3py5XammeTguyqTmuqzX/jeCdyOWWobLHNKQg=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 h1:yFl3jyaSVLNYXlnNYM5z2pagEk1dYQhfr1p20T1NyKY= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.15 h1:Y7xOFbD+3jaPw+VN7lkakNJ/pa+ZSQVFp1ONtJaBxns=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
@ -408,14 +423,15 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/urfave/cli/v2 v2.25.1 h1:zw8dSP7ghX0Gmm8vugrs6q9Ku0wzweqPyshy+syu9Gw= github.com/urfave/cli/v2 v2.25.3 h1:VJkt6wvEBOoSjPFQvOkv6iWIrsJyCrKGtCtxXWwmGeY=
github.com/urfave/cli/v2 v2.25.1/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= github.com/urfave/cli/v2 v2.25.3/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus=
@ -425,8 +441,8 @@ github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/gozstd v1.19.0 h1:BS0M7sH3dcuyw2SQBrTLprAdGuNxfiH0c4IAM8kX07c= github.com/valyala/gozstd v1.20.1 h1:xPnnnvjmaDDitMFfDxmQ4vpx0+3CdTg2o3lALvXTU/g=
github.com/valyala/gozstd v1.19.0/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ= github.com/valyala/gozstd v1.20.1/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ=
github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ=
github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY= github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY=
github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM=
@ -447,16 +463,17 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 h1:lE9EJyw3/JhrjWH/hEy9FptnalDQgj7vpbgC2KCCCxE= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.41.1 h1:pX+lppB8PArapyhS6nBStyQmkaDUPWdQf0UmEGRCQ54=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0/go.mod h1:pcQ3MM3SWvrA71U4GDqv9UFDJ3HQsW7y5ZO3tDTlUdI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.41.1/go.mod h1:2FmkXne0k9nkp27LD/m+uoh8dNlstsiCJ7PLc/S72aI=
go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8=
go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc=
go.opentelemetry.io/otel/metric v0.37.0 h1:pHDQuLQOZwYD+Km0eb657A25NaRzy0a+eLyKfDXedEs= go.opentelemetry.io/otel/metric v0.38.1 h1:2MM7m6wPw9B8Qv8iHygoAgkbejed59uUR6ezR5T3X2s=
go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= go.opentelemetry.io/otel/metric v0.38.1/go.mod h1:FwqNHD3I/5iX9pfrRGZIlYICrJv0rHEUl2Ln5vdIVnQ=
go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY=
go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@ -467,7 +484,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@ -478,8 +497,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU=
golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@ -501,7 +520,7 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@ -535,18 +554,19 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -558,8 +578,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -604,12 +624,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -617,9 +637,10 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@ -668,7 +689,7 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@ -691,8 +712,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
google.golang.org/api v0.116.0 h1:09tOPVufPwfm5W4aA8EizGHJ7BcoRDsIareM2a15gO4= google.golang.org/api v0.123.0 h1:yHVU//vA+qkOhm4reEC9LtzHVUCN/IqqNRl1iQ9xE20=
google.golang.org/api v0.116.0/go.mod h1:9cD4/t6uvd9naoEJFA+M96d0IuB6BqFuyhpw68+mRGg= google.golang.org/api v0.123.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@ -724,14 +745,15 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd h1:sLpv7bNL1AsX3fdnWh9WVh7ejIzXdOc1RRHGeAmeStU= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@ -744,9 +766,12 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@ -771,6 +796,7 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

View file

@ -15,4 +15,4 @@
package internal package internal
// Version is the current tagged release of the library. // Version is the current tagged release of the library.
const Version = "1.19.0" const Version = "1.19.3"

View file

@ -1,6 +1,13 @@
# Changes # Changes
## [1.0.1](https://github.com/googleapis/google-cloud-go/compare/iam/v1.0.0...iam/v1.0.1) (2023-05-08)
### Bug Fixes
* **iam:** Update grpc to v1.55.0 ([1147ce0](https://github.com/googleapis/google-cloud-go/commit/1147ce02a990276ca4f8ab7a1ab65c14da4450ef))
## [1.0.0](https://github.com/googleapis/google-cloud-go/compare/iam/v0.13.0...iam/v1.0.0) (2023-04-04) ## [1.0.0](https://github.com/googleapis/google-cloud-go/compare/iam/v0.13.0...iam/v1.0.0) (2023-04-04)

View file

@ -14,7 +14,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.28.1 // protoc-gen-go v1.30.0
// protoc v3.21.12 // protoc v3.21.12
// source: google/iam/v1/iam_policy.proto // source: google/iam/v1/iam_policy.proto
@ -342,26 +342,26 @@ var file_google_iam_v1_iam_policy_proto_rawDesc = []byte{
0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d,
0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f,
0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50,
0x63, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x74, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69,
0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, 0x31,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x49, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x67,
0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x9a, 0x01, 0x0a, 0x12, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x9a, 0x01, 0x0a, 0x12,
0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e,
0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a,
0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x2a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x1a, 0x1e, 0xca, 0x41, 0x1b, 0x69, 0x61, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1e, 0xca, 0x41, 0x1b, 0x69, 0x61, 0x6d,
0x2d, 0x6d, 0x65, 0x74, 0x61, 0x2d, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x2d, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0x7f, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0x7f, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x49,

View file

@ -14,7 +14,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.28.1 // protoc-gen-go v1.30.0
// protoc v3.21.12 // protoc v3.21.12
// source: google/iam/v1/options.proto // source: google/iam/v1/options.proto

View file

@ -14,7 +14,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.28.1 // protoc-gen-go v1.30.0
// protoc v3.21.12 // protoc v3.21.12
// source: google/iam/v1/policy.proto // source: google/iam/v1/policy.proto

File diff suppressed because it is too large Load diff

View file

@ -19,25 +19,26 @@ metadata required. For now, `.repo-metadata-full.json` includes everything.
## cloudbuild.yaml ## cloudbuild.yaml
To kick off a build locally run from the repo root: The `cloudbuild.yaml` Cloud Build configuration currently supports:
* Building a docker container from the `internal/postprocessor/Dockerfile`.
The build can be run locally in the `google-cloud-go` root directory:
```bash ```bash
gcloud builds submit --project=cloud-devrel-kokoro-resources --config=internal/cloudbuild.yaml gcloud builds submit --project=cloud-devrel-kokoro-resources --config=internal/cloudbuild.yaml
``` ```
See the [postprocessor/README](postprocessor/README.md) for instructions
regarding updating the post-processor docker container.
### Updating OwlBot SHA ### Updating OwlBot SHA
You may want to manually update the which version of the post processor will be You may want to manually update the which version of the post-processor will be
used -- to do this you need to update the SHA in the OwlBot lock file. Start by used -- to do this you need to update the SHA in the OwlBot lock file.
running the following commands:
```bash See the [postprocessor/README](postprocessor/README.md) for detailed
docker pull gcr.io/cloud-devrel-public-resources/owlbot-go:latest instructions.
docker inspect --format='{{index .RepoDigests 0}}' gcr.io/cloud-devrel-public-resources/owlbot-go:latest
```
This will give you a SHA. You can use this value to update the value in
`.github/.OwlBot.lock.yaml`.
*Note*: OwlBot will eventually open a pull request to update this value if it *Note*: OwlBot will eventually open a pull request to update this value if it
discovers a new version of the container. discovers a new version of the container.

View file

@ -1,5 +1,33 @@
# Release History # Release History
## 1.6.0 (2023-05-04)
### Features Added
* Added support for ARM cross-tenant authentication. Set the `AuxiliaryTenants` field of `arm.ClientOptions` to enable.
* Added `TenantID` field to `policy.TokenRequestOptions`.
## 1.5.0 (2023-04-06)
### Features Added
* Added `ShouldRetry` to `policy.RetryOptions` for finer-grained control over when to retry.
### Breaking Changes
> These changes affect only code written against a beta version such as v1.5.0-beta.1
> These features will return in v1.6.0-beta.1.
* Removed `TokenRequestOptions.Claims` and `.TenantID`
* Removed ARM client support for CAE and cross-tenant auth.
### Bugs Fixed
* Added non-conformant LRO terminal states `Cancelled` and `Completed`.
### Other Changes
* Updated to latest `internal` module.
## 1.5.0-beta.1 (2023-03-02)
### Features Added
* This release includes the features added in v1.4.0-beta.1
## 1.4.0 (2023-03-02) ## 1.4.0 (2023-03-02)
> This release doesn't include features added in v1.4.0-beta.1. They will return in v1.5.0-beta.1. > This release doesn't include features added in v1.4.0-beta.1. They will return in v1.5.0-beta.1.

View file

@ -11,8 +11,6 @@ import (
"io" "io"
"net/http" "net/http"
"time" "time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
) )
type nopCloser struct { type nopCloser struct {
@ -43,24 +41,6 @@ func HasStatusCode(resp *http.Response, statusCodes ...int) bool {
return false return false
} }
// Payload reads and returns the response body or an error.
// On a successful read, the response body is cached.
// Subsequent reads will access the cached value.
// Exported as runtime.Payload().
func Payload(resp *http.Response) ([]byte, error) {
// r.Body won't be a nopClosingBytesReader if downloading was skipped
if buf, ok := resp.Body.(*shared.NopClosingBytesReader); ok {
return buf.Bytes(), nil
}
bytesBody, err := io.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
return nil, err
}
resp.Body = shared.NewNopClosingBytesReader(bytesBody)
return bytesBody, nil
}
// AccessToken represents an Azure service bearer access token with expiry information. // AccessToken represents an Azure service bearer access token with expiry information.
// Exported as azcore.AccessToken. // Exported as azcore.AccessToken.
type AccessToken struct { type AccessToken struct {
@ -73,6 +53,10 @@ type AccessToken struct {
type TokenRequestOptions struct { type TokenRequestOptions struct {
// Scopes contains the list of permission scopes required for the token. // Scopes contains the list of permission scopes required for the token.
Scopes []string Scopes []string
// TenantID identifies the tenant from which to request the token. azidentity credentials authenticate in
// their configured default tenants when this field isn't set.
TenantID string
} }
// TokenCredential represents a credential capable of providing an OAuth token. // TokenCredential represents a credential capable of providing an OAuth token.

View file

@ -12,6 +12,8 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"regexp" "regexp"
"github.com/Azure/azure-sdk-for-go/sdk/internal/exported"
) )
// NewResponseError creates a new *ResponseError from the provided HTTP response. // NewResponseError creates a new *ResponseError from the provided HTTP response.
@ -29,7 +31,7 @@ func NewResponseError(resp *http.Response) error {
} }
// if we didn't get x-ms-error-code, check in the response body // if we didn't get x-ms-error-code, check in the response body
body, err := Payload(resp) body, err := exported.Payload(resp, nil)
if err != nil { if err != nil {
return err return err
} }
@ -121,7 +123,7 @@ func (e *ResponseError) Error() string {
fmt.Fprintln(msg, "ERROR CODE UNAVAILABLE") fmt.Fprintln(msg, "ERROR CODE UNAVAILABLE")
} }
fmt.Fprintln(msg, "--------------------------------------------------------------------------------") fmt.Fprintln(msg, "--------------------------------------------------------------------------------")
body, err := Payload(e.RawResponse) body, err := exported.Payload(e.RawResponse, nil)
if err != nil { if err != nil {
// this really shouldn't fail at this point as the response // this really shouldn't fail at this point as the response
// body is already cached (it was read in NewResponseError) // body is already cached (it was read in NewResponseError)

View file

@ -16,6 +16,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md // see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md
@ -68,15 +69,15 @@ func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.Fi
if asyncURL == "" { if asyncURL == "" {
return nil, errors.New("response is missing Azure-AsyncOperation header") return nil, errors.New("response is missing Azure-AsyncOperation header")
} }
if !pollers.IsValidURL(asyncURL) { if !poller.IsValidURL(asyncURL) {
return nil, fmt.Errorf("invalid polling URL %s", asyncURL) return nil, fmt.Errorf("invalid polling URL %s", asyncURL)
} }
// check for provisioning state. if the operation is a RELO // check for provisioning state. if the operation is a RELO
// and terminates synchronously this will prevent extra polling. // and terminates synchronously this will prevent extra polling.
// it's ok if there's no provisioning state. // it's ok if there's no provisioning state.
state, _ := pollers.GetProvisioningState(resp) state, _ := poller.GetProvisioningState(resp)
if state == "" { if state == "" {
state = pollers.StatusInProgress state = poller.StatusInProgress
} }
p := &Poller[T]{ p := &Poller[T]{
pl: pl, pl: pl,
@ -93,17 +94,17 @@ func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.Fi
// Done returns true if the LRO is in a terminal state. // Done returns true if the LRO is in a terminal state.
func (p *Poller[T]) Done() bool { func (p *Poller[T]) Done() bool {
return pollers.IsTerminalState(p.CurState) return poller.IsTerminalState(p.CurState)
} }
// Poll retrieves the current state of the LRO. // Poll retrieves the current state of the LRO.
func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
err := pollers.PollHelper(ctx, p.AsyncURL, p.pl, func(resp *http.Response) (string, error) { err := pollers.PollHelper(ctx, p.AsyncURL, p.pl, func(resp *http.Response) (string, error) {
if !pollers.StatusCodeValid(resp) { if !poller.StatusCodeValid(resp) {
p.resp = resp p.resp = resp
return "", exported.NewResponseError(resp) return "", exported.NewResponseError(resp)
} }
state, err := pollers.GetStatus(resp) state, err := poller.GetStatus(resp)
if err != nil { if err != nil {
return "", err return "", err
} else if state == "" { } else if state == "" {
@ -122,7 +123,7 @@ func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
func (p *Poller[T]) Result(ctx context.Context, out *T) error { func (p *Poller[T]) Result(ctx context.Context, out *T) error {
if p.resp.StatusCode == http.StatusNoContent { if p.resp.StatusCode == http.StatusNoContent {
return nil return nil
} else if pollers.Failed(p.CurState) { } else if poller.Failed(p.CurState) {
return exported.NewResponseError(p.resp) return exported.NewResponseError(p.resp)
} }
var req *exported.Request var req *exported.Request
@ -154,5 +155,5 @@ func (p *Poller[T]) Result(ctx context.Context, out *T) error {
p.resp = resp p.resp = resp
} }
return pollers.ResultHelper(p.resp, pollers.Failed(p.CurState), out) return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out)
} }

View file

@ -14,6 +14,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// Kind is the identifier of this type in a resume token. // Kind is the identifier of this type in a resume token.
@ -72,9 +73,9 @@ func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) {
} }
// default initial state to InProgress. depending on the HTTP // default initial state to InProgress. depending on the HTTP
// status code and provisioning state, we might change the value. // status code and provisioning state, we might change the value.
curState := pollers.StatusInProgress curState := poller.StatusInProgress
provState, err := pollers.GetProvisioningState(resp) provState, err := poller.GetProvisioningState(resp)
if err != nil && !errors.Is(err, pollers.ErrNoBody) { if err != nil && !errors.Is(err, poller.ErrNoBody) {
return nil, err return nil, err
} }
if resp.StatusCode == http.StatusCreated && provState != "" { if resp.StatusCode == http.StatusCreated && provState != "" {
@ -85,37 +86,37 @@ func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) {
curState = provState curState = provState
} else if provState == "" { } else if provState == "" {
// for a 200, absense of provisioning state indicates success // for a 200, absense of provisioning state indicates success
curState = pollers.StatusSucceeded curState = poller.StatusSucceeded
} }
} else if resp.StatusCode == http.StatusNoContent { } else if resp.StatusCode == http.StatusNoContent {
curState = pollers.StatusSucceeded curState = poller.StatusSucceeded
} }
p.CurState = curState p.CurState = curState
return p, nil return p, nil
} }
func (p *Poller[T]) Done() bool { func (p *Poller[T]) Done() bool {
return pollers.IsTerminalState(p.CurState) return poller.IsTerminalState(p.CurState)
} }
func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
err := pollers.PollHelper(ctx, p.PollURL, p.pl, func(resp *http.Response) (string, error) { err := pollers.PollHelper(ctx, p.PollURL, p.pl, func(resp *http.Response) (string, error) {
if !pollers.StatusCodeValid(resp) { if !poller.StatusCodeValid(resp) {
p.resp = resp p.resp = resp
return "", exported.NewResponseError(resp) return "", exported.NewResponseError(resp)
} }
if resp.StatusCode == http.StatusNoContent { if resp.StatusCode == http.StatusNoContent {
p.resp = resp p.resp = resp
p.CurState = pollers.StatusSucceeded p.CurState = poller.StatusSucceeded
return p.CurState, nil return p.CurState, nil
} }
state, err := pollers.GetProvisioningState(resp) state, err := poller.GetProvisioningState(resp)
if errors.Is(err, pollers.ErrNoBody) { if errors.Is(err, poller.ErrNoBody) {
// a missing response body in non-204 case is an error // a missing response body in non-204 case is an error
return "", err return "", err
} else if state == "" { } else if state == "" {
// a response body without provisioning state is considered terminal success // a response body without provisioning state is considered terminal success
state = pollers.StatusSucceeded state = poller.StatusSucceeded
} else if err != nil { } else if err != nil {
return "", err return "", err
} }
@ -130,5 +131,5 @@ func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
} }
func (p *Poller[T]) Result(ctx context.Context, out *T) error { func (p *Poller[T]) Result(ctx context.Context, out *T) error {
return pollers.ResultHelper(p.resp, pollers.Failed(p.CurState), out) return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out)
} }

View file

@ -16,6 +16,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// Kind is the identifier of this type in a resume token. // Kind is the identifier of this type in a resume token.
@ -61,15 +62,15 @@ func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) {
if locURL == "" { if locURL == "" {
return nil, errors.New("response is missing Location header") return nil, errors.New("response is missing Location header")
} }
if !pollers.IsValidURL(locURL) { if !poller.IsValidURL(locURL) {
return nil, fmt.Errorf("invalid polling URL %s", locURL) return nil, fmt.Errorf("invalid polling URL %s", locURL)
} }
// check for provisioning state. if the operation is a RELO // check for provisioning state. if the operation is a RELO
// and terminates synchronously this will prevent extra polling. // and terminates synchronously this will prevent extra polling.
// it's ok if there's no provisioning state. // it's ok if there's no provisioning state.
state, _ := pollers.GetProvisioningState(resp) state, _ := poller.GetProvisioningState(resp)
if state == "" { if state == "" {
state = pollers.StatusInProgress state = poller.StatusInProgress
} }
return &Poller[T]{ return &Poller[T]{
pl: pl, pl: pl,
@ -81,7 +82,7 @@ func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) {
} }
func (p *Poller[T]) Done() bool { func (p *Poller[T]) Done() bool {
return pollers.IsTerminalState(p.CurState) return poller.IsTerminalState(p.CurState)
} }
func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
@ -93,17 +94,17 @@ func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
// if provisioning state is available, use that. this is only // if provisioning state is available, use that. this is only
// for some ARM LRO scenarios (e.g. DELETE with a Location header) // for some ARM LRO scenarios (e.g. DELETE with a Location header)
// so if it's missing then use HTTP status code. // so if it's missing then use HTTP status code.
provState, _ := pollers.GetProvisioningState(resp) provState, _ := poller.GetProvisioningState(resp)
p.resp = resp p.resp = resp
if provState != "" { if provState != "" {
p.CurState = provState p.CurState = provState
} else if resp.StatusCode == http.StatusAccepted { } else if resp.StatusCode == http.StatusAccepted {
p.CurState = pollers.StatusInProgress p.CurState = poller.StatusInProgress
} else if resp.StatusCode > 199 && resp.StatusCode < 300 { } else if resp.StatusCode > 199 && resp.StatusCode < 300 {
// any 2xx other than a 202 indicates success // any 2xx other than a 202 indicates success
p.CurState = pollers.StatusSucceeded p.CurState = poller.StatusSucceeded
} else { } else {
p.CurState = pollers.StatusFailed p.CurState = poller.StatusFailed
} }
return p.CurState, nil return p.CurState, nil
}) })
@ -114,5 +115,5 @@ func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
} }
func (p *Poller[T]) Result(ctx context.Context, out *T) error { func (p *Poller[T]) Result(ctx context.Context, out *T) error {
return pollers.ResultHelper(p.resp, pollers.Failed(p.CurState), out) return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out)
} }

View file

@ -16,6 +16,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// Applicable returns true if the LRO is using Operation-Location. // Applicable returns true if the LRO is using Operation-Location.
@ -54,19 +55,19 @@ func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.Fi
if opURL == "" { if opURL == "" {
return nil, errors.New("response is missing Operation-Location header") return nil, errors.New("response is missing Operation-Location header")
} }
if !pollers.IsValidURL(opURL) { if !poller.IsValidURL(opURL) {
return nil, fmt.Errorf("invalid Operation-Location URL %s", opURL) return nil, fmt.Errorf("invalid Operation-Location URL %s", opURL)
} }
locURL := resp.Header.Get(shared.HeaderLocation) locURL := resp.Header.Get(shared.HeaderLocation)
// Location header is optional // Location header is optional
if locURL != "" && !pollers.IsValidURL(locURL) { if locURL != "" && !poller.IsValidURL(locURL) {
return nil, fmt.Errorf("invalid Location URL %s", locURL) return nil, fmt.Errorf("invalid Location URL %s", locURL)
} }
// default initial state to InProgress. if the // default initial state to InProgress. if the
// service sent us a status then use that instead. // service sent us a status then use that instead.
curState := pollers.StatusInProgress curState := poller.StatusInProgress
status, err := pollers.GetStatus(resp) status, err := poller.GetStatus(resp)
if err != nil && !errors.Is(err, pollers.ErrNoBody) { if err != nil && !errors.Is(err, poller.ErrNoBody) {
return nil, err return nil, err
} }
if status != "" { if status != "" {
@ -86,16 +87,16 @@ func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.Fi
} }
func (p *Poller[T]) Done() bool { func (p *Poller[T]) Done() bool {
return pollers.IsTerminalState(p.CurState) return poller.IsTerminalState(p.CurState)
} }
func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) {
err := pollers.PollHelper(ctx, p.OpLocURL, p.pl, func(resp *http.Response) (string, error) { err := pollers.PollHelper(ctx, p.OpLocURL, p.pl, func(resp *http.Response) (string, error) {
if !pollers.StatusCodeValid(resp) { if !poller.StatusCodeValid(resp) {
p.resp = resp p.resp = resp
return "", exported.NewResponseError(resp) return "", exported.NewResponseError(resp)
} }
state, err := pollers.GetStatus(resp) state, err := poller.GetStatus(resp)
if err != nil { if err != nil {
return "", err return "", err
} else if state == "" { } else if state == "" {
@ -118,7 +119,7 @@ func (p *Poller[T]) Result(ctx context.Context, out *T) error {
req, err = exported.NewRequest(ctx, http.MethodGet, p.LocURL) req, err = exported.NewRequest(ctx, http.MethodGet, p.LocURL)
} else if p.FinalState == pollers.FinalStateViaOpLocation && p.Method == http.MethodPost { } else if p.FinalState == pollers.FinalStateViaOpLocation && p.Method == http.MethodPost {
// no final GET required, terminal response should have it // no final GET required, terminal response should have it
} else if rl, rlErr := pollers.GetResourceLocation(p.resp); rlErr != nil && !errors.Is(rlErr, pollers.ErrNoBody) { } else if rl, rlErr := poller.GetResourceLocation(p.resp); rlErr != nil && !errors.Is(rlErr, poller.ErrNoBody) {
return rlErr return rlErr
} else if rl != "" { } else if rl != "" {
req, err = exported.NewRequest(ctx, http.MethodGet, rl) req, err = exported.NewRequest(ctx, http.MethodGet, rl)
@ -140,5 +141,5 @@ func (p *Poller[T]) Result(ctx context.Context, out *T) error {
p.resp = resp p.resp = resp
} }
return pollers.ResultHelper(p.resp, pollers.Failed(p.CurState), out) return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out)
} }

View file

@ -12,49 +12,15 @@ import (
"errors" "errors"
"fmt" "fmt"
"net/http" "net/http"
"net/url"
"reflect" "reflect"
"strings"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" azexported "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// the well-known set of LRO status/provisioning state values.
const (
StatusSucceeded = "Succeeded"
StatusCanceled = "Canceled"
StatusFailed = "Failed"
StatusInProgress = "InProgress"
)
// IsTerminalState returns true if the LRO's state is terminal.
func IsTerminalState(s string) bool {
return strings.EqualFold(s, StatusSucceeded) || strings.EqualFold(s, StatusFailed) || strings.EqualFold(s, StatusCanceled)
}
// Failed returns true if the LRO's state is terminal failure.
func Failed(s string) bool {
return strings.EqualFold(s, StatusFailed) || strings.EqualFold(s, StatusCanceled)
}
// Succeeded returns true if the LRO's state is terminal success.
func Succeeded(s string) bool {
return strings.EqualFold(s, StatusSucceeded)
}
// returns true if the LRO response contains a valid HTTP status code
func StatusCodeValid(resp *http.Response) bool {
return exported.HasStatusCode(resp, http.StatusOK, http.StatusAccepted, http.StatusCreated, http.StatusNoContent)
}
// IsValidURL verifies that the URL is valid and absolute.
func IsValidURL(s string) bool {
u, err := url.Parse(s)
return err == nil && u.IsAbs()
}
// getTokenTypeName creates a type name from the type parameter T. // getTokenTypeName creates a type name from the type parameter T.
func getTokenTypeName[T any]() (string, error) { func getTokenTypeName[T any]() (string, error) {
tt := shared.TypeOfT[T]() tt := shared.TypeOfT[T]()
@ -130,102 +96,6 @@ func IsTokenValid[T any](token string) error {
return nil return nil
} }
// ErrNoBody is returned if the response didn't contain a body.
var ErrNoBody = errors.New("the response did not contain a body")
// GetJSON reads the response body into a raw JSON object.
// It returns ErrNoBody if there was no content.
func GetJSON(resp *http.Response) (map[string]interface{}, error) {
body, err := exported.Payload(resp)
if err != nil {
return nil, err
}
if len(body) == 0 {
return nil, ErrNoBody
}
// unmarshall the body to get the value
var jsonBody map[string]interface{}
if err = json.Unmarshal(body, &jsonBody); err != nil {
return nil, err
}
return jsonBody, nil
}
// provisioningState returns the provisioning state from the response or the empty string.
func provisioningState(jsonBody map[string]interface{}) string {
jsonProps, ok := jsonBody["properties"]
if !ok {
return ""
}
props, ok := jsonProps.(map[string]interface{})
if !ok {
return ""
}
rawPs, ok := props["provisioningState"]
if !ok {
return ""
}
ps, ok := rawPs.(string)
if !ok {
return ""
}
return ps
}
// status returns the status from the response or the empty string.
func status(jsonBody map[string]interface{}) string {
rawStatus, ok := jsonBody["status"]
if !ok {
return ""
}
status, ok := rawStatus.(string)
if !ok {
return ""
}
return status
}
// GetStatus returns the LRO's status from the response body.
// Typically used for Azure-AsyncOperation flows.
// If there is no status in the response body the empty string is returned.
func GetStatus(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
return status(jsonBody), nil
}
// GetProvisioningState returns the LRO's state from the response body.
// If there is no state in the response body the empty string is returned.
func GetProvisioningState(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
return provisioningState(jsonBody), nil
}
// GetResourceLocation returns the LRO's resourceLocation value from the response body.
// Typically used for Operation-Location flows.
// If there is no resourceLocation in the response body the empty string is returned.
func GetResourceLocation(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
v, ok := jsonBody["resourceLocation"]
if !ok {
// it might be ok if the field doesn't exist, the caller must make that determination
return "", nil
}
vv, ok := v.(string)
if !ok {
return "", fmt.Errorf("the resourceLocation value %v was not in string format", v)
}
return vv, nil
}
// used if the operation synchronously completed // used if the operation synchronously completed
type NopPoller[T any] struct { type NopPoller[T any] struct {
resp *http.Response resp *http.Response
@ -239,7 +109,7 @@ func NewNopPoller[T any](resp *http.Response) (*NopPoller[T], error) {
if resp.StatusCode == http.StatusNoContent { if resp.StatusCode == http.StatusNoContent {
return np, nil return np, nil
} }
payload, err := exported.Payload(resp) payload, err := exported.Payload(resp, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -269,8 +139,8 @@ func (p *NopPoller[T]) Result(ctx context.Context, out *T) error {
// If the request fails, the update func is not called. // If the request fails, the update func is not called.
// The update func returns the state of the operation for logging purposes or an error // The update func returns the state of the operation for logging purposes or an error
// if it fails to extract the required state from the response. // if it fails to extract the required state from the response.
func PollHelper(ctx context.Context, endpoint string, pl exported.Pipeline, update func(resp *http.Response) (string, error)) error { func PollHelper(ctx context.Context, endpoint string, pl azexported.Pipeline, update func(resp *http.Response) (string, error)) error {
req, err := exported.NewRequest(ctx, http.MethodGet, endpoint) req, err := azexported.NewRequest(ctx, http.MethodGet, endpoint)
if err != nil { if err != nil {
return err return err
} }
@ -296,13 +166,13 @@ func ResultHelper[T any](resp *http.Response, failed bool, out *T) error {
} }
defer resp.Body.Close() defer resp.Body.Close()
if !StatusCodeValid(resp) || failed { if !poller.StatusCodeValid(resp) || failed {
// the LRO failed. unmarshall the error and update state // the LRO failed. unmarshall the error and update state
return exported.NewResponseError(resp) return azexported.NewResponseError(resp)
} }
// success case // success case
payload, err := exported.Payload(resp) payload, err := exported.Payload(resp, nil)
if err != nil { if err != nil {
return err return err
} }

View file

@ -21,6 +21,7 @@ const (
HeaderOperationLocation = "Operation-Location" HeaderOperationLocation = "Operation-Location"
HeaderRetryAfter = "Retry-After" HeaderRetryAfter = "Retry-After"
HeaderUserAgent = "User-Agent" HeaderUserAgent = "User-Agent"
HeaderWWWAuthenticate = "WWW-Authenticate"
HeaderXMSClientRequestID = "x-ms-client-request-id" HeaderXMSClientRequestID = "x-ms-client-request-id"
) )
@ -31,5 +32,5 @@ const (
Module = "azcore" Module = "azcore"
// Version is the semantic version (see http://semver.org) of this module. // Version is the semantic version (see http://semver.org) of this module.
Version = "v1.4.0" Version = "v1.6.0"
) )

View file

@ -8,9 +8,7 @@ package shared
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"io"
"net/http" "net/http"
"reflect" "reflect"
"regexp" "regexp"
@ -64,71 +62,6 @@ func TypeOfT[T any]() reflect.Type {
return reflect.TypeOf((*T)(nil)).Elem() return reflect.TypeOf((*T)(nil)).Elem()
} }
// BytesSetter abstracts replacing a byte slice on some type.
type BytesSetter interface {
Set(b []byte)
}
// NewNopClosingBytesReader creates a new *NopClosingBytesReader for the specified slice.
func NewNopClosingBytesReader(data []byte) *NopClosingBytesReader {
return &NopClosingBytesReader{s: data}
}
// NopClosingBytesReader is an io.ReadSeekCloser around a byte slice.
// It also provides direct access to the byte slice to avoid rereading.
type NopClosingBytesReader struct {
s []byte
i int64
}
// Bytes returns the underlying byte slice.
func (r *NopClosingBytesReader) Bytes() []byte {
return r.s
}
// Close implements the io.Closer interface.
func (*NopClosingBytesReader) Close() error {
return nil
}
// Read implements the io.Reader interface.
func (r *NopClosingBytesReader) Read(b []byte) (n int, err error) {
if r.i >= int64(len(r.s)) {
return 0, io.EOF
}
n = copy(b, r.s[r.i:])
r.i += int64(n)
return
}
// Set replaces the existing byte slice with the specified byte slice and resets the reader.
func (r *NopClosingBytesReader) Set(b []byte) {
r.s = b
r.i = 0
}
// Seek implements the io.Seeker interface.
func (r *NopClosingBytesReader) Seek(offset int64, whence int) (int64, error) {
var i int64
switch whence {
case io.SeekStart:
i = offset
case io.SeekCurrent:
i = r.i + offset
case io.SeekEnd:
i = int64(len(r.s)) + offset
default:
return 0, errors.New("nopClosingBytesReader: invalid whence")
}
if i < 0 {
return 0, errors.New("nopClosingBytesReader: negative position")
}
r.i = i
return i, nil
}
var _ BytesSetter = (*NopClosingBytesReader)(nil)
// TransportFunc is a helper to use a first-class func to satisfy the Transporter interface. // TransportFunc is a helper to use a first-class func to satisfy the Transporter interface.
type TransportFunc func(*http.Request) (*http.Response, error) type TransportFunc func(*http.Request) (*http.Response, error)

View file

@ -99,7 +99,7 @@ type RetryOptions struct {
// MaxRetryDelay specifies the maximum delay allowed before retrying an operation. // MaxRetryDelay specifies the maximum delay allowed before retrying an operation.
// Typically the value is greater than or equal to the value specified in RetryDelay. // Typically the value is greater than or equal to the value specified in RetryDelay.
// The default Value is 120 seconds. A value less than zero means there is no cap. // The default Value is 60 seconds. A value less than zero means there is no cap.
MaxRetryDelay time.Duration MaxRetryDelay time.Duration
// StatusCodes specifies the HTTP status codes that indicate the operation should be retried. // StatusCodes specifies the HTTP status codes that indicate the operation should be retried.
@ -113,6 +113,15 @@ type RetryOptions struct {
// Specifying values will replace the default values. // Specifying values will replace the default values.
// Specifying an empty slice will disable retries for HTTP status codes. // Specifying an empty slice will disable retries for HTTP status codes.
StatusCodes []int StatusCodes []int
// ShouldRetry evaluates if the retry policy should retry the request.
// When specified, the function overrides comparison against the list of
// HTTP status codes and error checking within the retry policy. Context
// and NonRetriable errors remain evaluated before calling ShouldRetry.
// The *http.Response and error parameters are mutually exclusive, i.e.
// if one is nil, the other is not nil.
// A return value of true means the retry policy should retry.
ShouldRetry func(*http.Response, error) bool
} }
// TelemetryOptions configures the telemetry policy's behavior. // TelemetryOptions configures the telemetry policy's behavior.

View file

@ -11,7 +11,6 @@ import (
"net/http" "net/http"
"strings" "strings"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo"
) )
@ -29,7 +28,7 @@ func bodyDownloadPolicy(req *policy.Request) (*http.Response, error) {
} }
// Either bodyDownloadPolicyOpValues was not specified (so skip is false) // Either bodyDownloadPolicyOpValues was not specified (so skip is false)
// or it was specified and skip is false: don't skip downloading the body // or it was specified and skip is false: don't skip downloading the body
_, err = exported.Payload(resp) _, err = Payload(resp)
if err != nil { if err != nil {
return resp, newBodyDownloadError(err, req) return resp, newBodyDownloadError(err, req)
} }

View file

@ -19,6 +19,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo"
"github.com/Azure/azure-sdk-for-go/sdk/internal/exported"
) )
const ( const (
@ -133,7 +134,7 @@ func (p *retryPolicy) Do(req *policy.Request) (resp *http.Response, err error) {
// if the body was already downloaded or there was an error it's safe to cancel the context now // if the body was already downloaded or there was an error it's safe to cancel the context now
if err != nil { if err != nil {
tryCancel() tryCancel()
} else if _, ok := resp.Body.(*shared.NopClosingBytesReader); ok { } else if exported.PayloadDownloaded(resp) {
tryCancel() tryCancel()
} else { } else {
// must cancel the context after the body has been read and closed // must cancel the context after the body has been read and closed
@ -146,11 +147,7 @@ func (p *retryPolicy) Do(req *policy.Request) (resp *http.Response, err error) {
log.Writef(log.EventRetryPolicy, "error %v", err) log.Writef(log.EventRetryPolicy, "error %v", err)
} }
if err == nil && !HasStatusCode(resp, options.StatusCodes...) { if ctxErr := req.Raw().Context().Err(); ctxErr != nil {
// if there is no error and the response code isn't in the list of retry codes then we're done.
log.Write(log.EventRetryPolicy, "exit due to non-retriable status code")
return
} else if ctxErr := req.Raw().Context().Err(); ctxErr != nil {
// don't retry if the parent context has been cancelled or its deadline exceeded // don't retry if the parent context has been cancelled or its deadline exceeded
err = ctxErr err = ctxErr
log.Writef(log.EventRetryPolicy, "abort due to %v", err) log.Writef(log.EventRetryPolicy, "abort due to %v", err)
@ -165,6 +162,19 @@ func (p *retryPolicy) Do(req *policy.Request) (resp *http.Response, err error) {
return return
} }
if options.ShouldRetry != nil {
// a non-nil ShouldRetry overrides our HTTP status code check
if !options.ShouldRetry(resp, err) {
// predicate says we shouldn't retry
log.Write(log.EventRetryPolicy, "exit due to ShouldRetry")
return
}
} else if err == nil && !HasStatusCode(resp, options.StatusCodes...) {
// if there is no error and the response code isn't in the list of retry codes then we're done.
log.Write(log.EventRetryPolicy, "exit due to non-retriable status code")
return
}
if try == options.MaxRetries+1 { if try == options.MaxRetries+1 {
// max number of tries has been reached, don't sleep again // max number of tries has been reached, don't sleep again
log.Writef(log.EventRetryPolicy, "MaxRetries %d exceeded", options.MaxRetries) log.Writef(log.EventRetryPolicy, "MaxRetries %d exceeded", options.MaxRetries)

View file

@ -23,6 +23,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
"github.com/Azure/azure-sdk-for-go/sdk/internal/poller"
) )
// FinalStateVia is the enumerated type for the possible final-state-via values. // FinalStateVia is the enumerated type for the possible final-state-via values.
@ -75,7 +76,7 @@ func NewPoller[T any](resp *http.Response, pl exported.Pipeline, options *NewPol
defer resp.Body.Close() defer resp.Body.Close()
// this is a back-stop in case the swagger is incorrect (i.e. missing one or more status codes for success). // this is a back-stop in case the swagger is incorrect (i.e. missing one or more status codes for success).
// ideally the codegen should return an error if the initial response failed and not even create a poller. // ideally the codegen should return an error if the initial response failed and not even create a poller.
if !pollers.StatusCodeValid(resp) { if !poller.StatusCodeValid(resp) {
return nil, errors.New("the operation failed or was cancelled") return nil, errors.New("the operation failed or was cancelled")
} }

View file

@ -15,15 +15,14 @@ import (
"io" "io"
"net/http" "net/http"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" "github.com/Azure/azure-sdk-for-go/sdk/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared"
) )
// Payload reads and returns the response body or an error. // Payload reads and returns the response body or an error.
// On a successful read, the response body is cached. // On a successful read, the response body is cached.
// Subsequent reads will access the cached value. // Subsequent reads will access the cached value.
func Payload(resp *http.Response) ([]byte, error) { func Payload(resp *http.Response) ([]byte, error) {
return exported.Payload(resp) return exported.Payload(resp, nil)
} }
// HasStatusCode returns true if the Response's status code is one of the specified values. // HasStatusCode returns true if the Response's status code is one of the specified values.
@ -92,15 +91,15 @@ func Drain(resp *http.Response) {
// removeBOM removes any byte-order mark prefix from the payload if present. // removeBOM removes any byte-order mark prefix from the payload if present.
func removeBOM(resp *http.Response) error { func removeBOM(resp *http.Response) error {
payload, err := Payload(resp) _, err := exported.Payload(resp, &exported.PayloadOptions{
BytesModifier: func(b []byte) []byte {
// UTF8
return bytes.TrimPrefix(b, []byte("\xef\xbb\xbf"))
},
})
if err != nil { if err != nil {
return err return err
} }
// UTF8
trimmed := bytes.TrimPrefix(payload, []byte("\xef\xbb\xbf"))
if len(trimmed) < len(payload) {
resp.Body.(shared.BytesSetter).Set(trimmed)
}
return nil return nil
} }

View file

@ -0,0 +1,124 @@
//go:build go1.18
// +build go1.18
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package exported
import (
"errors"
"io"
"net/http"
)
// HasStatusCode returns true if the Response's status code is one of the specified values.
// Exported as runtime.HasStatusCode().
func HasStatusCode(resp *http.Response, statusCodes ...int) bool {
if resp == nil {
return false
}
for _, sc := range statusCodes {
if resp.StatusCode == sc {
return true
}
}
return false
}
// PayloadOptions contains the optional values for the Payload func.
// NOT exported but used by azcore.
type PayloadOptions struct {
// BytesModifier receives the downloaded byte slice and returns an updated byte slice.
// Use this to modify the downloaded bytes in a payload (e.g. removing a BOM).
BytesModifier func([]byte) []byte
}
// Payload reads and returns the response body or an error.
// On a successful read, the response body is cached.
// Subsequent reads will access the cached value.
// Exported as runtime.Payload() WITHOUT the opts parameter.
func Payload(resp *http.Response, opts *PayloadOptions) ([]byte, error) {
modifyBytes := func(b []byte) []byte { return b }
if opts != nil && opts.BytesModifier != nil {
modifyBytes = opts.BytesModifier
}
// r.Body won't be a nopClosingBytesReader if downloading was skipped
if buf, ok := resp.Body.(*nopClosingBytesReader); ok {
bytesBody := modifyBytes(buf.Bytes())
buf.Set(bytesBody)
return bytesBody, nil
}
bytesBody, err := io.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
return nil, err
}
bytesBody = modifyBytes(bytesBody)
resp.Body = &nopClosingBytesReader{s: bytesBody}
return bytesBody, nil
}
// PayloadDownloaded returns true if the response body has already been downloaded.
// This implies that the Payload() func above has been previously called.
// NOT exported but used by azcore.
func PayloadDownloaded(resp *http.Response) bool {
_, ok := resp.Body.(*nopClosingBytesReader)
return ok
}
// nopClosingBytesReader is an io.ReadSeekCloser around a byte slice.
// It also provides direct access to the byte slice to avoid rereading.
type nopClosingBytesReader struct {
s []byte
i int64
}
// Bytes returns the underlying byte slice.
func (r *nopClosingBytesReader) Bytes() []byte {
return r.s
}
// Close implements the io.Closer interface.
func (*nopClosingBytesReader) Close() error {
return nil
}
// Read implements the io.Reader interface.
func (r *nopClosingBytesReader) Read(b []byte) (n int, err error) {
if r.i >= int64(len(r.s)) {
return 0, io.EOF
}
n = copy(b, r.s[r.i:])
r.i += int64(n)
return
}
// Set replaces the existing byte slice with the specified byte slice and resets the reader.
func (r *nopClosingBytesReader) Set(b []byte) {
r.s = b
r.i = 0
}
// Seek implements the io.Seeker interface.
func (r *nopClosingBytesReader) Seek(offset int64, whence int) (int64, error) {
var i int64
switch whence {
case io.SeekStart:
i = offset
case io.SeekCurrent:
i = r.i + offset
case io.SeekEnd:
i = int64(len(r.s)) + offset
default:
return 0, errors.New("nopClosingBytesReader: invalid whence")
}
if i < 0 {
return 0, errors.New("nopClosingBytesReader: negative position")
}
r.i = i
return i, nil
}

View file

@ -0,0 +1,155 @@
//go:build go1.18
// +build go1.18
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package poller
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"net/url"
"strings"
"github.com/Azure/azure-sdk-for-go/sdk/internal/exported"
)
// the well-known set of LRO status/provisioning state values.
const (
StatusSucceeded = "Succeeded"
StatusCanceled = "Canceled"
StatusFailed = "Failed"
StatusInProgress = "InProgress"
)
// these are non-conformant states that we've seen in the wild.
// we support them for back-compat.
const (
StatusCancelled = "Cancelled"
StatusCompleted = "Completed"
)
// IsTerminalState returns true if the LRO's state is terminal.
func IsTerminalState(s string) bool {
return Failed(s) || Succeeded(s)
}
// Failed returns true if the LRO's state is terminal failure.
func Failed(s string) bool {
return strings.EqualFold(s, StatusFailed) || strings.EqualFold(s, StatusCanceled) || strings.EqualFold(s, StatusCancelled)
}
// Succeeded returns true if the LRO's state is terminal success.
func Succeeded(s string) bool {
return strings.EqualFold(s, StatusSucceeded) || strings.EqualFold(s, StatusCompleted)
}
// returns true if the LRO response contains a valid HTTP status code
func StatusCodeValid(resp *http.Response) bool {
return exported.HasStatusCode(resp, http.StatusOK, http.StatusAccepted, http.StatusCreated, http.StatusNoContent)
}
// IsValidURL verifies that the URL is valid and absolute.
func IsValidURL(s string) bool {
u, err := url.Parse(s)
return err == nil && u.IsAbs()
}
// ErrNoBody is returned if the response didn't contain a body.
var ErrNoBody = errors.New("the response did not contain a body")
// GetJSON reads the response body into a raw JSON object.
// It returns ErrNoBody if there was no content.
func GetJSON(resp *http.Response) (map[string]any, error) {
body, err := exported.Payload(resp, nil)
if err != nil {
return nil, err
}
if len(body) == 0 {
return nil, ErrNoBody
}
// unmarshall the body to get the value
var jsonBody map[string]any
if err = json.Unmarshal(body, &jsonBody); err != nil {
return nil, err
}
return jsonBody, nil
}
// provisioningState returns the provisioning state from the response or the empty string.
func provisioningState(jsonBody map[string]any) string {
jsonProps, ok := jsonBody["properties"]
if !ok {
return ""
}
props, ok := jsonProps.(map[string]any)
if !ok {
return ""
}
rawPs, ok := props["provisioningState"]
if !ok {
return ""
}
ps, ok := rawPs.(string)
if !ok {
return ""
}
return ps
}
// status returns the status from the response or the empty string.
func status(jsonBody map[string]any) string {
rawStatus, ok := jsonBody["status"]
if !ok {
return ""
}
status, ok := rawStatus.(string)
if !ok {
return ""
}
return status
}
// GetStatus returns the LRO's status from the response body.
// Typically used for Azure-AsyncOperation flows.
// If there is no status in the response body the empty string is returned.
func GetStatus(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
return status(jsonBody), nil
}
// GetProvisioningState returns the LRO's state from the response body.
// If there is no state in the response body the empty string is returned.
func GetProvisioningState(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
return provisioningState(jsonBody), nil
}
// GetResourceLocation returns the LRO's resourceLocation value from the response body.
// Typically used for Operation-Location flows.
// If there is no resourceLocation in the response body the empty string is returned.
func GetResourceLocation(resp *http.Response) (string, error) {
jsonBody, err := GetJSON(resp)
if err != nil {
return "", err
}
v, ok := jsonBody["resourceLocation"]
if !ok {
// it might be ok if the field doesn't exist, the caller must make that determination
return "", nil
}
vv, ok := v.(string)
if !ok {
return "", fmt.Errorf("the resourceLocation value %v was not in string format", v)
}
return vv, nil
}

View file

@ -1,5 +1,5 @@
//go:build !linux //go:build !linux && !windows
// +build !linux // +build !linux,!windows
package metrics package metrics

View file

@ -0,0 +1,85 @@
//go:build windows
// +build windows
package metrics
import (
"fmt"
"io"
"log"
"syscall"
"unsafe"
"golang.org/x/sys/windows"
)
var (
modpsapi = syscall.NewLazyDLL("psapi.dll")
modkernel32 = syscall.NewLazyDLL("kernel32.dll")
// https://learn.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-getprocessmemoryinfo
procGetProcessMemoryInfo = modpsapi.NewProc("GetProcessMemoryInfo")
procGetProcessHandleCount = modkernel32.NewProc("GetProcessHandleCount")
)
// https://learn.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-process_memory_counters_ex
type processMemoryCounters struct {
_ uint32
PageFaultCount uint32
PeakWorkingSetSize uintptr
WorkingSetSize uintptr
QuotaPeakPagedPoolUsage uintptr
QuotaPagedPoolUsage uintptr
QuotaPeakNonPagedPoolUsage uintptr
QuotaNonPagedPoolUsage uintptr
PagefileUsage uintptr
PeakPagefileUsage uintptr
PrivateUsage uintptr
}
func writeProcessMetrics(w io.Writer) {
h := windows.CurrentProcess()
var startTime, exitTime, stime, utime windows.Filetime
err := windows.GetProcessTimes(h, &startTime, &exitTime, &stime, &utime)
if err != nil {
log.Printf("ERROR: metrics: cannot read process times: %s", err)
return
}
var mc processMemoryCounters
r1, _, err := procGetProcessMemoryInfo.Call(
uintptr(h),
uintptr(unsafe.Pointer(&mc)),
unsafe.Sizeof(mc),
)
if r1 != 1 {
log.Printf("ERROR: metrics: cannot read process memory information: %s", err)
return
}
stimeSeconds := (uint64(stime.HighDateTime)<<32 + uint64(stime.LowDateTime)) / 1e7
utimeSeconds := (uint64(utime.HighDateTime)<<32 + uint64(utime.LowDateTime)) / 1e7
fmt.Fprintf(w, "process_cpu_seconds_system_total %d\n", stimeSeconds)
fmt.Fprintf(w, "process_cpu_seconds_total %d\n", stimeSeconds+utimeSeconds)
fmt.Fprintf(w, "process_cpu_seconds_user_total %d\n", stimeSeconds)
fmt.Fprintf(w, "process_pagefaults_total %d\n", mc.PageFaultCount)
fmt.Fprintf(w, "process_start_time_seconds %d\n", startTime.Nanoseconds()/1e9)
fmt.Fprintf(w, "process_virtual_memory_bytes %d\n", mc.PrivateUsage)
fmt.Fprintf(w, "process_resident_memory_peak_bytes %d\n", mc.PeakWorkingSetSize)
fmt.Fprintf(w, "process_resident_memory_bytes %d\n", mc.WorkingSetSize)
}
func writeFDMetrics(w io.Writer) {
h := windows.CurrentProcess()
var count uint32
r1, _, err := procGetProcessHandleCount.Call(
uintptr(h),
uintptr(unsafe.Pointer(&count)),
)
if r1 != 1 {
log.Printf("ERROR: metrics: cannot determine open file descriptors count: %s", err)
return
}
// it seems to be hard-coded limit for 64-bit systems
// https://learn.microsoft.com/en-us/archive/blogs/markrussinovich/pushing-the-limits-of-windows-handles#maximum-number-of-handles
fmt.Fprintf(w, "process_max_fds %d\n", 16777216)
fmt.Fprintf(w, "process_open_fds %d\n", count)
}

View file

@ -1,3 +1,393 @@
# Release (2023-04-24)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2`: v1.18.0
* **Feature**: add recursion detection middleware to all SDK requests to avoid recursion invocation in Lambda
* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.27.0](service/appflow/CHANGELOG.md#v1270-2023-04-24)
* **Feature**: Increased the max length for RefreshToken and AuthCode from 2048 to 4096.
* `github.com/aws/aws-sdk-go-v2/service/codecatalyst`: [v1.2.5](service/codecatalyst/CHANGELOG.md#v125-2023-04-24)
* **Documentation**: Documentation updates for Amazon CodeCatalyst.
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.94.0](service/ec2/CHANGELOG.md#v1940-2023-04-24)
* **Feature**: API changes to AWS Verified Access related to identity providers' information.
* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.36.0](service/mediaconvert/CHANGELOG.md#v1360-2023-04-24)
* **Feature**: This release introduces a noise reduction pre-filter, linear interpolation deinterlace mode, video pass-through, updated default job settings, and expanded LC-AAC Stereo audio bitrate ranges.
* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.25.0](service/rekognition/CHANGELOG.md#v1250-2023-04-24)
* **Feature**: Added new status result to Liveness session status.
* `github.com/aws/aws-sdk-go-v2/service/route53`: [v1.28.0](service/route53/CHANGELOG.md#v1280-2023-04-24)
* **Feature**: added paginator for listResourceRecordSets
* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.33.0](service/s3/CHANGELOG.md#v1330-2023-04-24)
* **Feature**: added custom paginators for listMultipartUploads and ListObjectVersions
# Release (2023-04-21)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.52.0](service/connect/CHANGELOG.md#v1520-2023-04-21)
* **Feature**: This release adds a new API CreateParticipant. For Amazon Connect Chat, you can use this new API to customize chat flow experiences.
* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.26.1](service/ecs/CHANGELOG.md#v1261-2023-04-21)
* **Documentation**: Documentation update to address various Amazon ECS tickets.
* `github.com/aws/aws-sdk-go-v2/service/fms`: [v1.23.0](service/fms/CHANGELOG.md#v1230-2023-04-21)
* **Feature**: AWS Firewall Manager adds support for multiple administrators. You can now delegate more than one administrator per organization.
# Release (2023-04-20)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/chime`: [v1.23.0](service/chime/CHANGELOG.md#v1230-2023-04-20)
* **Feature**: Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines`: [v1.4.0](service/chimesdkmediapipelines/CHANGELOG.md#v140-2023-04-20)
* **Feature**: This release adds support for specifying the recording file format in an S3 recording sink configuration.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkmeetings`: [v1.15.0](service/chimesdkmeetings/CHANGELOG.md#v1150-2023-04-20)
* **Feature**: Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API.
* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.18.0](service/gamelift/CHANGELOG.md#v1180-2023-04-20)
* **Feature**: Amazon GameLift supports creating Builds for Windows 2016 operating system.
* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.21.0](service/guardduty/CHANGELOG.md#v1210-2023-04-20)
* **Feature**: This release adds support for the new Lambda Protection feature.
* `github.com/aws/aws-sdk-go-v2/service/iot`: [v1.36.0](service/iot/CHANGELOG.md#v1360-2023-04-20)
* **Feature**: Support additional OTA states in GetOTAUpdate API
* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.74.0](service/sagemaker/CHANGELOG.md#v1740-2023-04-20)
* **Feature**: Amazon SageMaker Canvas adds ModelRegisterSettings support for CanvasAppSettings.
* `github.com/aws/aws-sdk-go-v2/service/snowball`: [v1.19.0](service/snowball/CHANGELOG.md#v1190-2023-04-20)
* **Feature**: Adds support for Amazon S3 compatible storage. AWS Snow Family customers can now use Amazon S3 compatible storage on Snowball Edge devices. Also adds support for V3_5S. This is a refreshed AWS Snowball Edge Storage Optimized device type with 210TB SSD (customer usable).
* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.30.0](service/wafv2/CHANGELOG.md#v1300-2023-04-20)
* **Feature**: You can now create encrypted API keys to use in a client application integration of the JavaScript CAPTCHA API . You can also retrieve a list of your API keys and the JavaScript application integration URL.
# Release (2023-04-19)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/comprehend`: [v1.24.0](service/comprehend/CHANGELOG.md#v1240-2023-04-19)
* **Feature**: This release supports native document models for custom classification, in addition to plain-text models. You train native document models using documents (PDF, Word, images) in their native format.
* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.26.0](service/ecs/CHANGELOG.md#v1260-2023-04-19)
* **Feature**: This release supports the Account Setting "TagResourceAuthorization" that allows for enhanced Tagging security controls.
* `github.com/aws/aws-sdk-go-v2/service/ram`: [v1.18.0](service/ram/CHANGELOG.md#v1180-2023-04-19)
* **Feature**: This release adds support for customer managed permissions. Customer managed permissions enable customers to author and manage tailored permissions for resources shared using RAM.
* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.43.1](service/rds/CHANGELOG.md#v1431-2023-04-19)
* **Documentation**: Adds support for the ImageId parameter of CreateCustomDBEngineVersion to RDS Custom for Oracle
* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.32.0](service/s3/CHANGELOG.md#v1320-2023-04-19)
* **Feature**: Provides support for "Snow" Storage class.
* `github.com/aws/aws-sdk-go-v2/service/secretsmanager`: [v1.19.4](service/secretsmanager/CHANGELOG.md#v1194-2023-04-19)
* **Documentation**: Documentation updates for Secrets Manager
# Release (2023-04-17)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/appflow`: [v1.26.0](service/appflow/CHANGELOG.md#v1260-2023-04-17)
* **Feature**: This release adds a Client Token parameter to the following AppFlow APIs: Create/Update Connector Profile, Create/Update Flow, Start Flow, Register Connector, Update Connector Registration. The Client Token parameter allows idempotent operations for these APIs.
* `github.com/aws/aws-sdk-go-v2/service/drs`: [v1.13.0](service/drs/CHANGELOG.md#v1130-2023-04-17)
* **Feature**: Changed existing APIs and added new APIs to support using an account-level launch configuration template with AWS Elastic Disaster Recovery.
* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.19.5](service/dynamodb/CHANGELOG.md#v1195-2023-04-17)
* **Documentation**: Documentation updates for DynamoDB API
* `github.com/aws/aws-sdk-go-v2/service/emrserverless`: [v1.7.0](service/emrserverless/CHANGELOG.md#v170-2023-04-17)
* **Feature**: The GetJobRun API has been updated to include the job's billed resource utilization. This utilization shows the aggregate vCPU, memory and storage that AWS has billed for the job run. The billed resources include a 1-minute minimum usage for workers, plus additional storage over 20 GB per worker.
* `github.com/aws/aws-sdk-go-v2/service/internetmonitor`: [v1.2.0](service/internetmonitor/CHANGELOG.md#v120-2023-04-17)
* **Feature**: This release includes a new configurable value, TrafficPercentageToMonitor, which allows users to adjust the amount of traffic monitored by percentage
* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.27.0](service/iotwireless/CHANGELOG.md#v1270-2023-04-17)
* **Feature**: Supports the new feature of LoRaWAN roaming, allows to configure MaxEirp for LoRaWAN gateway, and allows to configure PingSlotPeriod for LoRaWAN multicast group
* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.33.0](service/lambda/CHANGELOG.md#v1330-2023-04-17)
* **Feature**: Add Python 3.10 (python3.10) support to AWS Lambda
# Release (2023-04-14)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.25.1](service/ecs/CHANGELOG.md#v1251-2023-04-14)
* **Documentation**: This release supports ephemeral storage for AWS Fargate Windows containers.
* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.32.0](service/lambda/CHANGELOG.md#v1320-2023-04-14)
* **Feature**: This release adds SnapStart related exceptions to InvokeWithResponseStream API. IAM access related documentation is also added for this API.
* `github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces`: [v1.9.8](service/migrationhubrefactorspaces/CHANGELOG.md#v198-2023-04-14)
* **Documentation**: Doc only update for Refactor Spaces environments without network bridge feature.
* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.43.0](service/rds/CHANGELOG.md#v1430-2023-04-14)
* **Feature**: This release adds support of modifying the engine mode of database clusters.
# Release (2023-04-13)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/chimesdkvoice`: [v1.5.0](service/chimesdkvoice/CHANGELOG.md#v150-2023-04-13)
* **Feature**: This release adds tagging support for Voice Connectors and SIP Media Applications
* `github.com/aws/aws-sdk-go-v2/service/mediaconnect`: [v1.19.0](service/mediaconnect/CHANGELOG.md#v1190-2023-04-13)
* **Feature**: Gateway is a new feature of AWS Elemental MediaConnect. Gateway allows the deployment of on-premises resources for the purpose of transporting live video to and from the AWS Cloud.
# Release (2023-04-12)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/groundstation`: [v1.18.0](service/groundstation/CHANGELOG.md#v1180-2023-04-12)
* **Feature**: AWS Ground Station Wideband DigIF GA Release
* `github.com/aws/aws-sdk-go-v2/service/managedblockchain`: [v1.15.5](service/managedblockchain/CHANGELOG.md#v1155-2023-04-12)
* **Documentation**: Removal of the Ropsten network. The Ethereum foundation ceased support of Ropsten on December 31st, 2022..
# Release (2023-04-11)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/ecrpublic`: [v1.16.0](service/ecrpublic/CHANGELOG.md#v1160-2023-04-11)
* **Feature**: This release will allow using registry alias as registryId in BatchDeleteImage request.
* `github.com/aws/aws-sdk-go-v2/service/emrserverless`: [v1.6.0](service/emrserverless/CHANGELOG.md#v160-2023-04-11)
* **Feature**: This release extends GetJobRun API to return job run timeout (executionTimeoutMinutes) specified during StartJobRun call (or default timeout of 720 minutes if none was specified).
* `github.com/aws/aws-sdk-go-v2/service/eventbridge`: [v1.19.0](service/eventbridge/CHANGELOG.md#v1190-2023-04-11)
* **Feature**: EventBridge PutTarget support for multiple SQL arguments on RedshiftDataParameters
* `github.com/aws/aws-sdk-go-v2/service/iotdataplane`: [v1.15.0](service/iotdataplane/CHANGELOG.md#v1150-2023-04-11)
* **Feature**: This release adds support for MQTT5 user properties when calling the AWS IoT GetRetainedMessage API
* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.29.0](service/wafv2/CHANGELOG.md#v1290-2023-04-11)
* **Feature**: For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs.
# Release (2023-04-10)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.51.0](service/connect/CHANGELOG.md#v1510-2023-04-10)
* **Feature**: This release adds the ability to configure an agent's routing profile to receive contacts from multiple channels at the same time via extending the UpdateRoutingProfileConcurrency, CreateRoutingProfile and DescribeRoutingProfile APIs.
* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.25.0](service/ecs/CHANGELOG.md#v1250-2023-04-10)
* **Feature**: This release adds support for enabling FIPS compliance on Amazon ECS Fargate tasks
* `github.com/aws/aws-sdk-go-v2/service/marketplacecatalog`: [v1.16.0](service/marketplacecatalog/CHANGELOG.md#v1160-2023-04-10)
* **Feature**: Added three new APIs to support resource sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added new OwnershipType field to ListEntities request to let users filter on entities that are shared with them. Increased max page size of ListEntities response from 20 to 50 results.
* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.35.0](service/mediaconvert/CHANGELOG.md#v1350-2023-04-10)
* **Feature**: AWS Elemental MediaConvert SDK now supports conversion of 608 paint-on captions to pop-on captions for SCC sources.
* `github.com/aws/aws-sdk-go-v2/service/omics`: [v1.3.0](service/omics/CHANGELOG.md#v130-2023-04-10)
* **Feature**: Remove unexpected API changes.
* `github.com/aws/aws-sdk-go-v2/service/rekognition`: [v1.24.0](service/rekognition/CHANGELOG.md#v1240-2023-04-10)
* **Feature**: This release adds support for Face Liveness APIs in Amazon Rekognition. Updates UpdateStreamProcessor to return ResourceInUseException Exception. Minor updates to API documentation.
# Release (2023-04-07)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/dlm`: [v1.15.0](service/dlm/CHANGELOG.md#v1150-2023-04-07)
* **Announcement**: This release includes breaking changes for the timestamp trait on the data lifecycle management client.
* **Feature**: Updated timestamp format for GetLifecyclePolicy API
* **Bug Fix**: Correct timestamp type for data lifecycle manager.
* `github.com/aws/aws-sdk-go-v2/service/docdb`: [v1.21.0](service/docdb/CHANGELOG.md#v1210-2023-04-07)
* **Feature**: This release adds a new parameter 'DBClusterParameterGroupName' to 'RestoreDBClusterFromSnapshot' API to associate the name of the DB cluster parameter group while performing restore.
* `github.com/aws/aws-sdk-go-v2/service/fsx`: [v1.28.8](service/fsx/CHANGELOG.md#v1288-2023-04-07)
* **Documentation**: Amazon FSx for Lustre now supports creating data repository associations on Persistent_1 and Scratch_2 file systems.
* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.31.0](service/lambda/CHANGELOG.md#v1310-2023-04-07)
* **Feature**: This release adds a new Lambda InvokeWithResponseStream API to support streaming Lambda function responses. The release also adds a new InvokeMode parameter to Function Url APIs to control whether the response will be streamed or buffered.
* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.34.0](service/quicksight/CHANGELOG.md#v1340-2023-04-07)
* **Feature**: This release has two changes: adding the OR condition to tag-based RLS rules in CreateDataSet and UpdateDataSet; adding RefreshSchedule and Incremental RefreshProperties operations for users to programmatically configure SPICE dataset ingestions.
* `github.com/aws/aws-sdk-go-v2/service/redshiftdata`: [v1.19.3](service/redshiftdata/CHANGELOG.md#v1193-2023-04-07)
* **Documentation**: Update documentation of API descriptions as needed in support of temporary credentials with IAM identity.
* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.18.1](service/servicecatalog/CHANGELOG.md#v1181-2023-04-07)
* **Documentation**: Updates description for property
# Release (2023-04-06)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/cloudformation`: [v1.27.0](service/cloudformation/CHANGELOG.md#v1270-2023-04-06)
* **Feature**: Including UPDATE_COMPLETE as a failed status for DeleteStack waiter.
* `github.com/aws/aws-sdk-go-v2/service/greengrassv2`: [v1.22.0](service/greengrassv2/CHANGELOG.md#v1220-2023-04-06)
* **Feature**: Add support for SUCCEEDED value in coreDeviceExecutionStatus field. Documentation updates for Greengrass V2.
* `github.com/aws/aws-sdk-go-v2/service/proton`: [v1.21.0](service/proton/CHANGELOG.md#v1210-2023-04-06)
* **Feature**: This release adds support for the AWS Proton service sync feature. Service sync enables managing an AWS Proton service (creating and updating instances) and all of it's corresponding service instances from a Git repository.
* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.42.1](service/rds/CHANGELOG.md#v1421-2023-04-06)
* **Documentation**: Adds and updates the SDK examples
# Release (2023-04-05)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.31.0](service/configservice/CHANGELOG.md#v1310-2023-04-05)
* **Feature**: This release adds resourceType enums for types released in March 2023.
* `github.com/aws/aws-sdk-go-v2/service/ecs`: [v1.24.3](service/ecs/CHANGELOG.md#v1243-2023-04-05)
* **Documentation**: This is a document only updated to add information about Amazon Elastic Inference (EI).
* `github.com/aws/aws-sdk-go-v2/service/identitystore`: [v1.16.7](service/identitystore/CHANGELOG.md#v1167-2023-04-05)
* **Documentation**: Documentation updates for Identity Store CLI command reference.
* `github.com/aws/aws-sdk-go-v2/service/ivsrealtime`: [v1.1.0](service/ivsrealtime/CHANGELOG.md#v110-2023-04-05)
* **Feature**: Fix ParticipantToken ExpirationTime format
* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.26.0](service/networkfirewall/CHANGELOG.md#v1260-2023-04-05)
* **Feature**: AWS Network Firewall now supports IPv6-only subnets.
* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.18.0](service/servicecatalog/CHANGELOG.md#v1180-2023-04-05)
* **Feature**: removed incorrect product type value
* `github.com/aws/aws-sdk-go-v2/service/vpclattice`: [v1.0.1](service/vpclattice/CHANGELOG.md#v101-2023-04-05)
* **Documentation**: This release removes the entities in the API doc model package for auth policies.
# Release (2023-04-04)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/amplifyuibuilder`: [v1.10.0](service/amplifyuibuilder/CHANGELOG.md#v1100-2023-04-04)
* **Feature**: Support StorageField and custom displays for data-bound options in form builder. Support non-string operands for predicates in collections. Support choosing client to get token from.
* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.28.1](service/autoscaling/CHANGELOG.md#v1281-2023-04-04)
* **Documentation**: Documentation updates for Amazon EC2 Auto Scaling
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.93.0](service/ec2/CHANGELOG.md#v1930-2023-04-04)
* **Feature**: C6in, M6in, M6idn, R6in and R6idn bare metal instances are powered by 3rd Generation Intel Xeon Scalable processors and offer up to 200 Gbps of network bandwidth.
* `github.com/aws/aws-sdk-go-v2/service/elasticinference`: [v1.13.0](service/elasticinference/CHANGELOG.md#v1130-2023-04-04)
* **Feature**: Updated public documentation for the Describe and Tagging APIs.
* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.73.0](service/sagemaker/CHANGELOG.md#v1730-2023-04-04)
* **Feature**: Amazon SageMaker Asynchronous Inference now allows customer's to receive failure model responses in S3 and receive success/failure model responses in SNS notifications.
* `github.com/aws/aws-sdk-go-v2/service/sagemakerruntime`: [v1.19.0](service/sagemakerruntime/CHANGELOG.md#v1190-2023-04-04)
* **Feature**: Amazon SageMaker Asynchronous Inference now provides customers a FailureLocation as a response parameter in InvokeEndpointAsync API to capture the model failure responses.
* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.28.0](service/wafv2/CHANGELOG.md#v1280-2023-04-04)
* **Feature**: This release rolls back association config feature for webACLs that protect CloudFront protections.
# Release (2023-04-03)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.45.0](service/glue/CHANGELOG.md#v1450-2023-04-03)
* **Feature**: Add support for database-level federation
* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.21.0](service/lakeformation/CHANGELOG.md#v1210-2023-04-03)
* **Feature**: Add support for database-level federation
* `github.com/aws/aws-sdk-go-v2/service/licensemanager`: [v1.18.0](service/licensemanager/CHANGELOG.md#v1180-2023-04-03)
* **Feature**: This release adds grant override options to the CreateGrantVersion API. These options can be used to specify grant replacement behavior during grant activation.
* `github.com/aws/aws-sdk-go-v2/service/mwaa`: [v1.15.0](service/mwaa/CHANGELOG.md#v1150-2023-04-03)
* **Feature**: This Amazon MWAA release adds the ability to customize the Apache Airflow environment by launching a shell script at startup. This shell script is hosted in your environment's Amazon S3 bucket. Amazon MWAA runs the script before installing requirements and initializing the Apache Airflow process.
* `github.com/aws/aws-sdk-go-v2/service/servicecatalog`: [v1.17.0](service/servicecatalog/CHANGELOG.md#v1170-2023-04-03)
* **Feature**: This release introduces Service Catalog support for Terraform open source. It enables 1. The notify* APIs to Service Catalog. These APIs are used by the terraform engine to notify the result of the provisioning engine execution. 2. Adds a new TERRAFORM_OPEN_SOURCE product type in CreateProduct API.
* `github.com/aws/aws-sdk-go-v2/service/wafv2`: [v1.27.0](service/wafv2/CHANGELOG.md#v1270-2023-04-03)
* **Feature**: For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs.
# Release (2023-03-31)
## General Highlights
* **Dependency Update**: Updated to the latest SDK module versions
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.92.1](service/ec2/CHANGELOG.md#v1921-2023-03-31)
* **Documentation**: Documentation updates for EC2 On Demand Capacity Reservations
* `github.com/aws/aws-sdk-go-v2/service/internetmonitor`: [v1.1.0](service/internetmonitor/CHANGELOG.md#v110-2023-03-31)
* **Feature**: This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to deliver internet measurements to Amazon S3 buckets as well as CloudWatch Logs.
* `github.com/aws/aws-sdk-go-v2/service/resiliencehub`: [v1.10.1](service/resiliencehub/CHANGELOG.md#v1101-2023-03-31)
* **Documentation**: Adding EKS related documentation for appTemplateBody
* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.31.1](service/s3/CHANGELOG.md#v1311-2023-03-31)
* **Documentation**: Documentation updates for Amazon S3
* `github.com/aws/aws-sdk-go-v2/service/sagemakerfeaturestoreruntime`: [v1.14.0](service/sagemakerfeaturestoreruntime/CHANGELOG.md#v1140-2023-03-31)
* **Feature**: In this release, you can now chose between soft delete and hard delete when calling the DeleteRecord API, so you have more flexibility when it comes to managing online store data.
# Release (2023-03-30)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.25.0](service/athena/CHANGELOG.md#v1250-2023-03-30)
* **Feature**: Make DefaultExecutorDpuSize and CoordinatorDpuSize fields optional in StartSession
* `github.com/aws/aws-sdk-go-v2/service/autoscaling`: [v1.28.0](service/autoscaling/CHANGELOG.md#v1280-2023-03-30)
* **Feature**: Amazon EC2 Auto Scaling now supports Elastic Load Balancing traffic sources with the AttachTrafficSources, DetachTrafficSources, and DescribeTrafficSources APIs. This release also introduces a new activity status, "WaitingForConnectionDraining", for VPC Lattice to the DescribeScalingActivities API.
* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.23.0](service/batch/CHANGELOG.md#v1230-2023-03-30)
* **Feature**: This feature allows Batch on EKS to support configuration of Pod Labels through Metadata for Batch on EKS Jobs.
* `github.com/aws/aws-sdk-go-v2/service/computeoptimizer`: [v1.22.0](service/computeoptimizer/CHANGELOG.md#v1220-2023-03-30)
* **Feature**: This release adds support for HDD EBS volume types and io2 Block Express. We are also adding support for 61 new instance types and instances that have non consecutive runtime.
* `github.com/aws/aws-sdk-go-v2/service/drs`: [v1.12.0](service/drs/CHANGELOG.md#v1120-2023-03-30)
* **Feature**: Adding a field to the replication configuration APIs to support the auto replicate new disks feature. We also deprecated RetryDataReplication.
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.92.0](service/ec2/CHANGELOG.md#v1920-2023-03-30)
* **Feature**: This release adds support for Tunnel Endpoint Lifecycle control, a new feature that provides Site-to-Site VPN customers with better visibility and control of their VPN tunnel maintenance updates.
* `github.com/aws/aws-sdk-go-v2/service/emr`: [v1.24.0](service/emr/CHANGELOG.md#v1240-2023-03-30)
* **Feature**: Updated DescribeCluster and ListClusters API responses to include ErrorDetail that specifies error code, programmatically accessible error data,and an error message. ErrorDetail provides the underlying reason for cluster failure and recommends actions to simplify troubleshooting of EMR clusters.
* `github.com/aws/aws-sdk-go-v2/service/glue`: [v1.44.0](service/glue/CHANGELOG.md#v1440-2023-03-30)
* **Feature**: This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations.
* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.20.0](service/guardduty/CHANGELOG.md#v1200-2023-03-30)
* **Feature**: Added EKS Runtime Monitoring feature support to existing detector, finding APIs and introducing new Coverage APIs
* `github.com/aws/aws-sdk-go-v2/service/imagebuilder`: [v1.23.0](service/imagebuilder/CHANGELOG.md#v1230-2023-03-30)
* **Feature**: Adds support for new image workflow details and image vulnerability detection.
* `github.com/aws/aws-sdk-go-v2/service/ivs`: [v1.21.0](service/ivs/CHANGELOG.md#v1210-2023-03-30)
* **Feature**: Amazon Interactive Video Service (IVS) now offers customers the ability to configure IVS channels to allow insecure RTMP ingest.
* `github.com/aws/aws-sdk-go-v2/service/kendra`: [v1.39.0](service/kendra/CHANGELOG.md#v1390-2023-03-30)
* **Feature**: AWS Kendra now supports featured results for a query.
* `github.com/aws/aws-sdk-go-v2/service/networkfirewall`: [v1.25.0](service/networkfirewall/CHANGELOG.md#v1250-2023-03-30)
* **Feature**: AWS Network Firewall added TLS inspection configurations to allow TLS traffic inspection.
* `github.com/aws/aws-sdk-go-v2/service/sagemakergeospatial`: [v1.2.0](service/sagemakergeospatial/CHANGELOG.md#v120-2023-03-30)
* **Feature**: Amazon SageMaker geospatial capabilities now supports server-side encryption with customer managed KMS key and SageMaker notebooks with a SageMaker geospatial image in a Amazon SageMaker Domain with VPC only mode.
* `github.com/aws/aws-sdk-go-v2/service/vpclattice`: [v1.0.0](service/vpclattice/CHANGELOG.md#v100-2023-03-30)
* **Release**: New AWS service client module
* **Feature**: General Availability (GA) release of Amazon VPC Lattice
* `github.com/aws/aws-sdk-go-v2/service/wellarchitected`: [v1.19.0](service/wellarchitected/CHANGELOG.md#v1190-2023-03-30)
* **Feature**: AWS Well-Architected SDK now supports getting consolidated report metrics and generating a consolidated report PDF.
# Release (2023-03-29)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/opensearchserverless`: [v1.2.0](service/opensearchserverless/CHANGELOG.md#v120-2023-03-29)
* **Feature**: This release includes two new exception types "ServiceQuotaExceededException" and "OcuLimitExceededException".
* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.42.0](service/rds/CHANGELOG.md#v1420-2023-03-29)
* **Feature**: Add support for creating a read replica DB instance from a Multi-AZ DB cluster.
# Release (2023-03-28)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/ssmcontacts`: [v1.15.0](service/ssmcontacts/CHANGELOG.md#v1150-2023-03-28)
* **Feature**: This release adds 12 new APIs as part of Oncall Schedule feature release, adds support for a new contact type: ONCALL_SCHEDULE. Check public documentation for AWS ssm-contacts for more information
* `github.com/aws/aws-sdk-go-v2/service/ssmincidents`: [v1.21.0](service/ssmincidents/CHANGELOG.md#v1210-2023-03-28)
* **Feature**: Increased maximum length of "TriggerDetails.rawData" to 10K characters and "IncidentSummary" to 8K characters.
# Release (2023-03-27)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/athena`: [v1.24.0](service/athena/CHANGELOG.md#v1240-2023-03-27)
* **Feature**: Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkvoice`: [v1.4.0](service/chimesdkvoice/CHANGELOG.md#v140-2023-03-27)
* **Feature**: Documentation updates for Amazon Chime SDK Voice.
* `github.com/aws/aws-sdk-go-v2/service/connect`: [v1.50.0](service/connect/CHANGELOG.md#v1500-2023-03-27)
* **Feature**: This release introduces support for RelatedContactId in the StartChatContact API. Interactive message and interactive message response have been added to the list of supported message content types for this API as well.
* `github.com/aws/aws-sdk-go-v2/service/connectparticipant`: [v1.15.7](service/connectparticipant/CHANGELOG.md#v1157-2023-03-27)
* **Documentation**: This release provides an update to the SendMessage API to handle interactive message response content-types.
* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.26.0](service/iotwireless/CHANGELOG.md#v1260-2023-03-27)
* **Feature**: Introducing new APIs that enable Sidewalk devices to communicate with AWS IoT Core through Sidewalk gateways. This will empower AWS customers to connect Sidewalk devices with other AWS IoT Services, creating possibilities for seamless integration and advanced device management.
* `github.com/aws/aws-sdk-go-v2/service/medialive`: [v1.31.0](service/medialive/CHANGELOG.md#v1310-2023-03-27)
* **Feature**: AWS Elemental MediaLive now supports ID3 tag insertion for audio only HLS output groups. AWS Elemental Link devices now support tagging.
* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.72.1](service/sagemaker/CHANGELOG.md#v1721-2023-03-27)
* **Documentation**: Fixed some improperly rendered links in SDK documentation.
* `github.com/aws/aws-sdk-go-v2/service/securityhub`: [v1.30.0](service/securityhub/CHANGELOG.md#v1300-2023-03-27)
* **Feature**: Added new resource detail objects to ASFF, including resources for AwsEksCluster, AWSS3Bucket, AwsEc2RouteTable and AwsEC2Instance.
* `github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry`: [v1.17.0](service/servicecatalogappregistry/CHANGELOG.md#v1170-2023-03-27)
* **Feature**: In this release, we started supporting ARN in applicationSpecifier and attributeGroupSpecifier. GetAttributeGroup, ListAttributeGroups and ListAttributeGroupsForApplication APIs will now have CreatedBy field in the response.
* `github.com/aws/aws-sdk-go-v2/service/voiceid`: [v1.13.0](service/voiceid/CHANGELOG.md#v1130-2023-03-27)
* **Feature**: Amazon Connect Voice ID now supports multiple fraudster watchlists. Every domain has a default watchlist where all existing fraudsters are placed by default. Custom watchlists may now be created, managed, and evaluated against for known fraudster detection.
# Release (2023-03-24)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/cloudwatch`: [v1.25.7](service/cloudwatch/CHANGELOG.md#v1257-2023-03-24)
* **Documentation**: Doc-only update to correct alarm actions list
* `github.com/aws/aws-sdk-go-v2/service/comprehend`: [v1.23.0](service/comprehend/CHANGELOG.md#v1230-2023-03-24)
* **Feature**: This release adds a new field (FlywheelArn) to the EntitiesDetectionJobProperties object. The FlywheelArn field is returned in the DescribeEntitiesDetectionJob and ListEntitiesDetectionJobs responses when the EntitiesDetection job is started with a FlywheelArn instead of an EntityRecognizerArn .
* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.41.0](service/rds/CHANGELOG.md#v1410-2023-03-24)
* **Feature**: Added error code CreateCustomDBEngineVersionFault for when the create custom engine version for Custom engines fails.
# Release (2023-03-23)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.22.0](service/batch/CHANGELOG.md#v1220-2023-03-23)
* **Feature**: This feature allows Batch to support configuration of ephemeral storage size for jobs running on FARGATE
* `github.com/aws/aws-sdk-go-v2/service/chimesdkidentity`: [v1.11.0](service/chimesdkidentity/CHANGELOG.md#v1110-2023-03-23)
* **Feature**: AppInstanceBots can be used to add a bot powered by Amazon Lex to chat channels. ExpirationSettings provides automatic resource deletion for AppInstanceUsers.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines`: [v1.3.0](service/chimesdkmediapipelines/CHANGELOG.md#v130-2023-03-23)
* **Feature**: This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkmessaging`: [v1.14.0](service/chimesdkmessaging/CHANGELOG.md#v1140-2023-03-23)
* **Feature**: ExpirationSettings provides automatic resource deletion for Channels.
* `github.com/aws/aws-sdk-go-v2/service/chimesdkvoice`: [v1.3.0](service/chimesdkvoice/CHANGELOG.md#v130-2023-03-23)
* **Feature**: This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio.
* `github.com/aws/aws-sdk-go-v2/service/codeartifact`: [v1.18.0](service/codeartifact/CHANGELOG.md#v1180-2023-03-23)
* **Feature**: Repository CreationTime is added to the CreateRepository and ListRepositories API responses.
* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.19.0](service/guardduty/CHANGELOG.md#v1190-2023-03-23)
* **Feature**: Adds AutoEnableOrganizationMembers attribute to DescribeOrganizationConfiguration and UpdateOrganizationConfiguration APIs.
* `github.com/aws/aws-sdk-go-v2/service/ivsrealtime`: [v1.0.0](service/ivsrealtime/CHANGELOG.md#v100-2023-03-23)
* **Release**: New AWS service client module
* **Feature**: Initial release of the Amazon Interactive Video Service RealTime API.
* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.34.0](service/mediaconvert/CHANGELOG.md#v1340-2023-03-23)
* **Feature**: AWS Elemental MediaConvert SDK now supports passthrough of ID3v2 tags for audio inputs to audio-only HLS outputs.
* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.72.0](service/sagemaker/CHANGELOG.md#v1720-2023-03-23)
* **Feature**: Amazon SageMaker Autopilot adds two new APIs - CreateAutoMLJobV2 and DescribeAutoMLJobV2. Amazon SageMaker Notebook Instances now supports the ml.geospatial.interactive instance type.
* `github.com/aws/aws-sdk-go-v2/service/servicediscovery`: [v1.21.0](service/servicediscovery/CHANGELOG.md#v1210-2023-03-23)
* **Feature**: Reverted the throttling exception RequestLimitExceeded for AWS Cloud Map APIs introduced in SDK version 1.12.424 2023-03-09 to previous exception specified in the ErrorCode.
* `github.com/aws/aws-sdk-go-v2/service/textract`: [v1.21.0](service/textract/CHANGELOG.md#v1210-2023-03-23)
* **Feature**: The AnalyzeDocument - Tables feature adds support for new elements in the API: table titles, footers, section titles, summary cells/tables, and table type.
# Release (2023-03-22)
## Module Highlights
* `github.com/aws/aws-sdk-go-v2/service/iam`: [v1.19.8](service/iam/CHANGELOG.md#v1198-2023-03-22)
* **Documentation**: Documentation updates for AWS Identity and Access Management (IAM).
* `github.com/aws/aws-sdk-go-v2/service/iottwinmaker`: [v1.11.0](service/iottwinmaker/CHANGELOG.md#v1110-2023-03-22)
* **Feature**: This release adds support of adding metadata when creating a new scene or updating an existing scene.
* `github.com/aws/aws-sdk-go-v2/service/networkmanager`: [v1.17.8](service/networkmanager/CHANGELOG.md#v1178-2023-03-22)
* **Documentation**: This release includes an update to create-transit-gateway-route-table-attachment, showing example usage for TransitGatewayRouteTableArn.
* `github.com/aws/aws-sdk-go-v2/service/resiliencehub`: [v1.10.0](service/resiliencehub/CHANGELOG.md#v1100-2023-03-22)
* **Feature**: This release provides customers with the ability to import resources from within an EKS cluster and assess the resiliency of EKS cluster workloads.
* `github.com/aws/aws-sdk-go-v2/service/ssm`: [v1.36.0](service/ssm/CHANGELOG.md#v1360-2023-03-22)
* **Feature**: This Patch Manager release supports creating, updating, and deleting Patch Baselines for AmazonLinux2023, AlmaLinux.
# Release (2023-03-21) # Release (2023-03-21)
## General Highlights ## General Highlights

View file

@ -3,4 +3,4 @@
package aws package aws
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.17.7" const goModuleVersion = "1.18.0"

View file

@ -0,0 +1,94 @@
package middleware
import (
"context"
"fmt"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
"os"
)
const envAwsLambdaFunctionName = "AWS_LAMBDA_FUNCTION_NAME"
const envAmznTraceID = "_X_AMZN_TRACE_ID"
const amznTraceIDHeader = "X-Amzn-Trace-Id"
// AddRecursionDetection adds recursionDetection to the middleware stack
func AddRecursionDetection(stack *middleware.Stack) error {
return stack.Build.Add(&RecursionDetection{}, middleware.After)
}
// RecursionDetection detects Lambda environment and sets its X-Ray trace ID to request header if absent
// to avoid recursion invocation in Lambda
type RecursionDetection struct{}
// ID returns the middleware identifier
func (m *RecursionDetection) ID() string {
return "RecursionDetection"
}
// HandleBuild detects Lambda environment and adds its trace ID to request header if absent
func (m *RecursionDetection) HandleBuild(
ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler,
) (
out middleware.BuildOutput, metadata middleware.Metadata, err error,
) {
req, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, fmt.Errorf("unknown request type %T", req)
}
_, hasLambdaEnv := os.LookupEnv(envAwsLambdaFunctionName)
xAmznTraceID, hasTraceID := os.LookupEnv(envAmznTraceID)
value := req.Header.Get(amznTraceIDHeader)
// only set the X-Amzn-Trace-Id header when it is not set initially, the
// current environment is Lambda and the _X_AMZN_TRACE_ID env variable exists
if value != "" || !hasLambdaEnv || !hasTraceID {
return next.HandleBuild(ctx, in)
}
req.Header.Set(amznTraceIDHeader, percentEncode(xAmznTraceID))
return next.HandleBuild(ctx, in)
}
func percentEncode(s string) string {
upperhex := "0123456789ABCDEF"
hexCount := 0
for i := 0; i < len(s); i++ {
c := s[i]
if shouldEncode(c) {
hexCount++
}
}
if hexCount == 0 {
return s
}
required := len(s) + 2*hexCount
t := make([]byte, required)
j := 0
for i := 0; i < len(s); i++ {
if c := s[i]; shouldEncode(c) {
t[j] = '%'
t[j+1] = upperhex[c>>4]
t[j+2] = upperhex[c&15]
j += 3
} else {
t[j] = c
j++
}
}
return string(t)
}
func shouldEncode(c byte) bool {
if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {
return false
}
switch c {
case '-', '=', ';', ':', '+', '&', '[', ']', '{', '}', '"', '\'', ',':
return false
default:
return true
}
}

View file

@ -95,8 +95,13 @@ func (r RetryableConnectionError) IsErrorRetryable(err error) aws.Ternary {
var timeoutErr interface{ Timeout() bool } var timeoutErr interface{ Timeout() bool }
var urlErr *url.Error var urlErr *url.Error
var netOpErr *net.OpError var netOpErr *net.OpError
var dnsError *net.DNSError
switch { switch {
case errors.As(err, &dnsError):
// NXDOMAIN errors should not be retried
retryable = !dnsError.IsNotFound && dnsError.IsTemporary
case errors.As(err, &conErr) && conErr.ConnectionError(): case errors.As(err, &conErr) && conErr.ConnectionError():
retryable = true retryable = true

View file

@ -1,3 +1,27 @@
# v1.18.25 (2023-05-09)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.24 (2023-05-08)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.23 (2023-05-04)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.22 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.21 (2023-04-10)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.20 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.19 (2023-03-21) # v1.18.19 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package config package config
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.18.19" const goModuleVersion = "1.18.25"

View file

@ -1,3 +1,27 @@
# v1.13.24 (2023-05-09)
* No change notes available for this release.
# v1.13.23 (2023-05-08)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.22 (2023-05-04)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.21 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.20 (2023-04-10)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.19 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.18 (2023-03-21) # v1.13.18 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package credentials package credentials
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.13.18" const goModuleVersion = "1.13.24"

View file

@ -11,12 +11,11 @@
// # Loading AWS SSO credentials with the AWS shared configuration file // # Loading AWS SSO credentials with the AWS shared configuration file
// //
// You can use configure AWS SSO credentials from the AWS shared configuration file by // You can use configure AWS SSO credentials from the AWS shared configuration file by
// providing the specifying the required keys in the profile: // specifying the required keys in the profile and referencing an sso-session:
// //
// sso_session
// sso_account_id // sso_account_id
// sso_region
// sso_role_name // sso_role_name
// sso_start_url
// //
// For example, the following defines a profile "devsso" and specifies the AWS // For example, the following defines a profile "devsso" and specifies the AWS
// SSO parameters that defines the target account, role, sign-on portal, and // SSO parameters that defines the target account, role, sign-on portal, and
@ -24,11 +23,15 @@
// provided, or an error will be returned. // provided, or an error will be returned.
// //
// [profile devsso] // [profile devsso]
// sso_start_url = https://my-sso-portal.awsapps.com/start // sso_session = dev-session
// sso_role_name = SSOReadOnlyRole // sso_role_name = SSOReadOnlyRole
// sso_region = us-east-1
// sso_account_id = 123456789012 // sso_account_id = 123456789012
// //
// [sso-session dev-session]
// sso_start_url = https://my-sso-portal.awsapps.com/start
// sso_region = us-east-1
// sso_registration_scopes = sso:account:access
//
// Using the config module, you can load the AWS SDK shared configuration, and // Using the config module, you can load the AWS SDK shared configuration, and
// specify that this profile be used to retrieve credentials. For example: // specify that this profile be used to retrieve credentials. For example:
// //
@ -43,10 +46,17 @@
// and provide the necessary information to load and retrieve temporary // and provide the necessary information to load and retrieve temporary
// credentials using an access token from ~/.aws/sso/cache. // credentials using an access token from ~/.aws/sso/cache.
// //
// client := sso.NewFromConfig(cfg) // ssoClient := sso.NewFromConfig(cfg)
// ssoOidcClient := ssooidc.NewFromConfig(cfg)
// tokenPath, err := ssocreds.StandardCachedTokenFilepath("dev-session")
// if err != nil {
// return err
// }
// //
// var provider aws.CredentialsProvider // var provider aws.CredentialsProvider
// provider = ssocreds.New(client, "123456789012", "SSOReadOnlyRole", "us-east-1", "https://my-sso-portal.awsapps.com/start") // provider = ssocreds.New(ssoClient, "123456789012", "SSOReadOnlyRole", "https://my-sso-portal.awsapps.com/start", func(options *ssocreds.Options) {
// options.SSOTokenProvider = ssocreds.NewSSOTokenProvider(ssoOidcClient, tokenPath)
// })
// //
// // Wrap the provider with aws.CredentialsCache to cache the credentials until their expire time // // Wrap the provider with aws.CredentialsCache to cache the credentials until their expire time
// provider = aws.NewCredentialsCache(provider) // provider = aws.NewCredentialsCache(provider)

View file

@ -1,3 +1,11 @@
# v1.13.3 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.2 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.1 (2023-03-21) # v1.13.1 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package imds package imds
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.13.1" const goModuleVersion = "1.13.3"

View file

@ -1,3 +1,31 @@
# v1.11.67 (2023-05-09)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.66 (2023-05-08)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.65 (2023-05-04)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.64 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.63 (2023-04-19)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.62 (2023-04-10)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.61 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.60 (2023-03-31) # v1.11.60 (2023-03-31)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package manager package manager
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.11.60" const goModuleVersion = "1.11.67"

View file

@ -1,3 +1,11 @@
# v1.1.33 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.32 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.31 (2023-03-21) # v1.1.31 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package configsources package configsources
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.1.31" const goModuleVersion = "1.1.33"

View file

@ -1,3 +1,11 @@
# v2.4.27 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v2.4.26 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v2.4.25 (2023-03-21) # v2.4.25 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package endpoints package endpoints
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "2.4.25" const goModuleVersion = "2.4.27"

View file

@ -1,3 +1,11 @@
# v1.3.34 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.3.33 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.3.32 (2023-03-21) # v1.3.32 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package ini package ini
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.3.32" const goModuleVersion = "1.3.34"

View file

@ -1,3 +1,11 @@
# v1.0.25 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.0.24 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.0.23 (2023-03-21) # v1.0.23 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package v4a package v4a
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.0.23" const goModuleVersion = "1.0.25"

View file

@ -1,3 +1,11 @@
# v1.1.28 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.27 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.26 (2023-03-21) # v1.1.26 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package checksum package checksum
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.1.26" const goModuleVersion = "1.1.28"

View file

@ -1,3 +1,11 @@
# v1.9.27 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.9.26 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.9.25 (2023-03-21) # v1.9.25 (2023-03-21)
* **Dependency Update**: Updated to the latest SDK module versions * **Dependency Update**: Updated to the latest SDK module versions

View file

@ -3,4 +3,4 @@
package presignedurl package presignedurl
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.9.25" const goModuleVersion = "1.9.27"

View file

@ -1,3 +1,11 @@
# v1.14.2 (2023-04-24)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.14.1 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.14.0 (2023-03-21) # v1.14.0 (2023-03-21)
* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config * **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config

View file

@ -3,4 +3,4 @@
package s3shared package s3shared
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.14.0" const goModuleVersion = "1.14.2"

View file

@ -1,3 +1,24 @@
# v1.33.1 (2023-05-04)
* **Documentation**: Documentation updates for Amazon S3
# v1.33.0 (2023-04-24)
* **Feature**: added custom paginators for listMultipartUploads and ListObjectVersions
* **Dependency Update**: Updated to the latest SDK module versions
# v1.32.0 (2023-04-19)
* **Feature**: Provides support for "Snow" Storage class.
# v1.31.3 (2023-04-10)
* No change notes available for this release.
# v1.31.2 (2023-04-07)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.31.1 (2023-03-31) # v1.31.1 (2023-03-31)
* **Documentation**: Documentation updates for Amazon S3 * **Documentation**: Documentation updates for Amazon S3

View file

@ -32,8 +32,8 @@ import (
const ServiceID = "S3" const ServiceID = "S3"
const ServiceAPIVersion = "2006-03-01" const ServiceAPIVersion = "2006-03-01"
// Client provides the API client to make operations call for Amazon Simple Storage // Client provides the API client to make operations call for Amazon Simple
// Service. // Storage Service.
type Client struct { type Client struct {
options Options options Options
} }
@ -135,7 +135,7 @@ type Options struct {
Retryer aws.Retryer Retryer aws.Retryer
// The RuntimeEnvironment configuration, only populated if the DefaultsMode is set // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set
// to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig . You
// should not populate this structure programmatically, or rely on the values here // should not populate this structure programmatically, or rely on the values here
// within your applications. // within your applications.
RuntimeEnvironment aws.RuntimeEnvironment RuntimeEnvironment aws.RuntimeEnvironment
@ -159,8 +159,8 @@ type Options struct {
UseDualstack bool UseDualstack bool
// Allows you to enable the client to use path-style addressing, i.e., // Allows you to enable the client to use path-style addressing, i.e.,
// https://s3.amazonaws.com/BUCKET/KEY. By default, the S3 client will use virtual // https://s3.amazonaws.com/BUCKET/KEY . By default, the S3 client will use virtual
// hosted bucket addressing when possible(https://BUCKET.s3.amazonaws.com/KEY). // hosted bucket addressing when possible( https://BUCKET.s3.amazonaws.com/KEY ).
UsePathStyle bool UsePathStyle bool
// Signature Version 4a (SigV4a) Signer // Signature Version 4a (SigV4a) Signer
@ -539,8 +539,8 @@ func add100Continue(stack *middleware.Stack, options Options) error {
return s3shared.Add100Continue(stack, options.ContinueHeaderThresholdBytes) return s3shared.Add100Continue(stack, options.ContinueHeaderThresholdBytes)
} }
// ComputedInputChecksumsMetadata provides information about the algorithms used to // ComputedInputChecksumsMetadata provides information about the algorithms used
// compute the checksum(s) of the input payload. // to compute the checksum(s) of the input payload.
type ComputedInputChecksumsMetadata struct { type ComputedInputChecksumsMetadata struct {
// ComputedChecksums is a map of algorithm name to checksum value of the computed // ComputedChecksums is a map of algorithm name to checksum value of the computed
// input payload's checksums. // input payload's checksums.
@ -560,8 +560,8 @@ func GetComputedInputChecksumsMetadata(m middleware.Metadata) (ComputedInputChec
} }
// ChecksumValidationMetadata contains metadata such as the checksum algorithm used // ChecksumValidationMetadata contains metadata such as the checksum algorithm
// for data integrity validation. // used for data integrity validation.
type ChecksumValidationMetadata struct { type ChecksumValidationMetadata struct {
// AlgorithmsUsed is the set of the checksum algorithms used to validate the // AlgorithmsUsed is the set of the checksum algorithms used to validate the
// response payload. The response payload must be completely read in order for the // response payload. The response payload must be completely read in order for the
@ -570,10 +570,10 @@ type ChecksumValidationMetadata struct {
AlgorithmsUsed []string AlgorithmsUsed []string
} }
// GetChecksumValidationMetadata returns the set of algorithms that will be used to // GetChecksumValidationMetadata returns the set of algorithms that will be used
// validate the response payload with. The response payload must be completely read // to validate the response payload with. The response payload must be completely
// in order for the checksum validation to be performed. An error is returned by // read in order for the checksum validation to be performed. An error is returned
// the operation output's response io.ReadCloser if the computed checksums are // by the operation output's response io.ReadCloser if the computed checksums are
// invalid. Returns false if no checksum algorithm used metadata was found. // invalid. Returns false if no checksum algorithm used metadata was found.
func GetChecksumValidationMetadata(m middleware.Metadata) (ChecksumValidationMetadata, bool) { func GetChecksumValidationMetadata(m middleware.Metadata) (ChecksumValidationMetadata, bool) {
values, ok := internalChecksum.GetOutputValidationAlgorithmsUsed(m) values, ok := internalChecksum.GetOutputValidationAlgorithmsUsed(m)
@ -600,8 +600,8 @@ func disableAcceptEncodingGzip(stack *middleware.Stack) error {
return acceptencodingcust.AddAcceptEncodingGzip(stack, acceptencodingcust.AddAcceptEncodingGzipOptions{}) return acceptencodingcust.AddAcceptEncodingGzip(stack, acceptencodingcust.AddAcceptEncodingGzipOptions{})
} }
// ResponseError provides the HTTP centric error type wrapping the underlying error // ResponseError provides the HTTP centric error type wrapping the underlying
// with the HTTP response value and the deserialized RequestID. // error with the HTTP response value and the deserialized RequestID.
type ResponseError interface { type ResponseError interface {
error error
@ -611,8 +611,8 @@ type ResponseError interface {
var _ ResponseError = (*s3shared.ResponseError)(nil) var _ ResponseError = (*s3shared.ResponseError)(nil)
// GetHostIDMetadata retrieves the host id from middleware metadata returns host id // GetHostIDMetadata retrieves the host id from middleware metadata returns host
// as string along with a boolean indicating presence of hostId on middleware // id as string along with a boolean indicating presence of hostId on middleware
// metadata. // metadata.
func GetHostIDMetadata(metadata middleware.Metadata) (string, bool) { func GetHostIDMetadata(metadata middleware.Metadata) (string, bool) {
return s3shared.GetHostIDMetadata(metadata) return s3shared.GetHostIDMetadata(metadata)

View file

@ -19,32 +19,16 @@ import (
// result, it might be necessary to abort a given multipart upload multiple times // result, it might be necessary to abort a given multipart upload multiple times
// in order to completely free all storage consumed by all parts. To verify that // in order to completely free all storage consumed by all parts. To verify that
// all parts have been removed, so you don't get charged for the part storage, you // all parts have been removed, so you don't get charged for the part storage, you
// should call the ListParts // should call the ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) action and // action and ensure that the parts list is empty. For information about
// ensure that the parts list is empty. For information about permissions required // permissions required to use the multipart upload, see Multipart Upload and
// to use the multipart upload, see Multipart Upload and Permissions // Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). The // . The following operations are related to AbortMultipartUpload :
// following operations are related to AbortMultipartUpload: // - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
// // - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// * // - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
// CreateMultipartUpload // - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
//
// *
// UploadPart
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
//
// *
// CompleteMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
//
// *
// ListParts
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
//
// *
// ListMultipartUploads
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
func (c *Client) AbortMultipartUpload(ctx context.Context, params *AbortMultipartUploadInput, optFns ...func(*Options)) (*AbortMultipartUploadOutput, error) { func (c *Client) AbortMultipartUpload(ctx context.Context, params *AbortMultipartUploadInput, optFns ...func(*Options)) (*AbortMultipartUploadOutput, error) {
if params == nil { if params == nil {
params = &AbortMultipartUploadInput{} params = &AbortMultipartUploadInput{}
@ -68,17 +52,15 @@ type AbortMultipartUploadInput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -101,8 +83,7 @@ type AbortMultipartUploadInput struct {
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -178,6 +159,9 @@ func (c *Client) addOperationAbortMultipartUploadMiddlewares(stack *middleware.S
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addAbortMultipartUploadUpdateEndpoint(stack, options); err != nil { if err = addAbortMultipartUploadUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -13,10 +13,9 @@ import (
) )
// Completes a multipart upload by assembling previously uploaded parts. You first // Completes a multipart upload by assembling previously uploaded parts. You first
// initiate the multipart upload and then upload all parts using the UploadPart // initiate the multipart upload and then upload all parts using the UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) operation. // operation. After successfully uploading all relevant parts of an upload, you
// After successfully uploading all relevant parts of an upload, you call this // call this action to complete the upload. Upon receiving this request, Amazon S3
// action to complete the upload. Upon receiving this request, Amazon S3
// concatenates all the parts in ascending order by part number to create a new // concatenates all the parts in ascending order by part number to create a new
// object. In the Complete Multipart Upload request, you must provide the parts // object. In the Complete Multipart Upload request, you must provide the parts
// list. You must ensure that the parts list is complete. This action concatenates // list. You must ensure that the parts list is complete. This action concatenates
@ -36,74 +35,38 @@ import (
// persists, the SDKs throws an exception (or, for the SDKs that don't use // persists, the SDKs throws an exception (or, for the SDKs that don't use
// exceptions, they return the error). Note that if CompleteMultipartUpload fails, // exceptions, they return the error). Note that if CompleteMultipartUpload fails,
// applications should be prepared to retry the failed requests. For more // applications should be prepared to retry the failed requests. For more
// information, see Amazon S3 Error Best Practices // information, see Amazon S3 Error Best Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). You // . You cannot use Content-Type: application/x-www-form-urlencoded with Complete
// cannot use Content-Type: application/x-www-form-urlencoded with Complete
// Multipart Upload requests. Also, if you do not provide a Content-Type header, // Multipart Upload requests. Also, if you do not provide a Content-Type header,
// CompleteMultipartUpload returns a 200 OK response. For more information about // CompleteMultipartUpload returns a 200 OK response. For more information about
// multipart uploads, see Uploading Objects Using Multipart Upload // multipart uploads, see Uploading Objects Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). For // . For information about permissions required to use the multipart upload API,
// information about permissions required to use the multipart upload API, see // see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html)
// Multipart Upload and Permissions // . CompleteMultipartUpload has the following special errors:
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). // - Error code: EntityTooSmall
// CompleteMultipartUpload has the following special errors: // - Description: Your proposed upload is smaller than the minimum allowed
// object size. Each part must be at least 5 MB in size, except the last part.
// - 400 Bad Request
// - Error code: InvalidPart
// - Description: One or more of the specified parts could not be found. The
// part might not have been uploaded, or the specified entity tag might not have
// matched the part's entity tag.
// - 400 Bad Request
// - Error code: InvalidPartOrder
// - Description: The list of parts was not in ascending order. The parts list
// must be specified in order by part number.
// - 400 Bad Request
// - Error code: NoSuchUpload
// - Description: The specified multipart upload does not exist. The upload ID
// might be invalid, or the multipart upload might have been aborted or completed.
// - 404 Not Found
// //
// * Error code: // The following operations are related to CompleteMultipartUpload :
// EntityTooSmall // - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
// // - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// * Description: Your proposed upload is smaller than the minimum // - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
// allowed object size. Each part must be at least 5 MB in size, except the last // - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
// part. // - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
//
// * 400 Bad Request
//
// * Error code: InvalidPart
//
// * Description: One or more
// of the specified parts could not be found. The part might not have been
// uploaded, or the specified entity tag might not have matched the part's entity
// tag.
//
// * 400 Bad Request
//
// * Error code: InvalidPartOrder
//
// * Description: The list
// of parts was not in ascending order. The parts list must be specified in order
// by part number.
//
// * 400 Bad Request
//
// * Error code: NoSuchUpload
//
// * Description:
// The specified multipart upload does not exist. The upload ID might be invalid,
// or the multipart upload might have been aborted or completed.
//
// * 404 Not
// Found
//
// The following operations are related to CompleteMultipartUpload:
//
// *
// CreateMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
//
// *
// UploadPart
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
//
// *
// AbortMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
//
// *
// ListParts
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
//
// *
// ListMultipartUploads
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
func (c *Client) CompleteMultipartUpload(ctx context.Context, params *CompleteMultipartUploadInput, optFns ...func(*Options)) (*CompleteMultipartUploadOutput, error) { func (c *Client) CompleteMultipartUpload(ctx context.Context, params *CompleteMultipartUploadInput, optFns ...func(*Options)) (*CompleteMultipartUploadOutput, error) {
if params == nil { if params == nil {
params = &CompleteMultipartUploadInput{} params = &CompleteMultipartUploadInput{}
@ -127,17 +90,15 @@ type CompleteMultipartUploadInput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -155,32 +116,28 @@ type CompleteMultipartUploadInput struct {
// This header can be used as a data integrity check to verify that the data // This header can be used as a data integrity check to verify that the data
// received is the same data that was originally sent. This header specifies the // received is the same data that was originally sent. This header specifies the
// base64-encoded, 32-bit CRC32 checksum of the object. For more information, see // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see
// Checking object integrity // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32 *string ChecksumCRC32 *string
// This header can be used as a data integrity check to verify that the data // This header can be used as a data integrity check to verify that the data
// received is the same data that was originally sent. This header specifies the // received is the same data that was originally sent. This header specifies the
// base64-encoded, 32-bit CRC32C checksum of the object. For more information, see // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see
// Checking object integrity // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32C *string ChecksumCRC32C *string
// This header can be used as a data integrity check to verify that the data // This header can be used as a data integrity check to verify that the data
// received is the same data that was originally sent. This header specifies the // received is the same data that was originally sent. This header specifies the
// base64-encoded, 160-bit SHA-1 digest of the object. For more information, see // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see
// Checking object integrity // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA1 *string ChecksumSHA1 *string
// This header can be used as a data integrity check to verify that the data // This header can be used as a data integrity check to verify that the data
// received is the same data that was originally sent. This header specifies the // received is the same data that was originally sent. This header specifies the
// base64-encoded, 256-bit SHA-256 digest of the object. For more information, see // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see
// Checking object integrity // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA256 *string ChecksumSHA256 *string
@ -195,29 +152,25 @@ type CompleteMultipartUploadInput struct {
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
// The server-side encryption (SSE) algorithm used to encrypt the object. This // The server-side encryption (SSE) algorithm used to encrypt the object. This
// parameter is needed only when the object was created using a checksum algorithm. // parameter is needed only when the object was created using a checksum algorithm.
// For more information, see Protecting data using SSE-C keys // For more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
SSECustomerAlgorithm *string SSECustomerAlgorithm *string
// The server-side encryption (SSE) customer managed key. This parameter is needed // The server-side encryption (SSE) customer managed key. This parameter is needed
// only when the object was created using a checksum algorithm. For more // only when the object was created using a checksum algorithm. For more
// information, see Protecting data using SSE-C keys // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
SSECustomerKey *string SSECustomerKey *string
// The MD5 server-side encryption (SSE) customer managed key. This parameter is // The MD5 server-side encryption (SSE) customer managed key. This parameter is
// needed only when the object was created using a checksum algorithm. For more // needed only when the object was created using a checksum algorithm. For more
// information, see Protecting data using SSE-C keys // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
SSECustomerKeyMD5 *string SSECustomerKeyMD5 *string
@ -233,17 +186,15 @@ type CompleteMultipartUploadOutput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
Bucket *string Bucket *string
// Indicates whether the multipart upload uses an S3 Bucket Key for server-side // Indicates whether the multipart upload uses an S3 Bucket Key for server-side
@ -253,32 +204,28 @@ type CompleteMultipartUploadOutput struct {
// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32 *string ChecksumCRC32 *string
// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32C *string ChecksumCRC32C *string
// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA1 *string ChecksumSHA1 *string
// The base64-encoded, 256-bit SHA-256 digest of the object. This will only be // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA256 *string ChecksumSHA256 *string
@ -288,13 +235,12 @@ type CompleteMultipartUploadOutput struct {
// data. If the entity tag is not an MD5 digest of the object data, it will contain // data. If the entity tag is not an MD5 digest of the object data, it will contain
// one or more nonhexadecimal characters and/or will consist of less than 32 or // one or more nonhexadecimal characters and/or will consist of less than 32 or
// more than 32 hexadecimal digits. For more information about how the entity tag // more than 32 hexadecimal digits. For more information about how the entity tag
// is calculated, see Checking object integrity // is calculated, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ETag *string ETag *string
// If the object expiration is configured, this will contain the expiration date // If the object expiration is configured, this will contain the expiration date (
// (expiry-date) and rule ID (rule-id). The value of rule-id is URL-encoded. // expiry-date ) and rule ID ( rule-id ). The value of rule-id is URL-encoded.
Expiration *string Expiration *string
// The object key of the newly created object. // The object key of the newly created object.
@ -313,11 +259,11 @@ type CompleteMultipartUploadOutput struct {
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// Version ID of the newly created object, in case the bucket has versioning turned // Version ID of the newly created object, in case the bucket has versioning
// on. // turned on.
VersionId *string VersionId *string
// Metadata pertaining to the operation's result. // Metadata pertaining to the operation's result.
@ -383,6 +329,9 @@ func (c *Client) addOperationCompleteMultipartUploadMiddlewares(stack *middlewar
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addCompleteMultipartUploadUpdateEndpoint(stack, options); err != nil { if err = addCompleteMultipartUploadUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -18,88 +18,68 @@ import (
// up to 5 GB in size in a single atomic action using this API. However, to copy an // up to 5 GB in size in a single atomic action using this API. However, to copy an
// object greater than 5 GB, you must use the multipart upload Upload Part - Copy // object greater than 5 GB, you must use the multipart upload Upload Part - Copy
// (UploadPartCopy) API. For more information, see Copy Object Using the REST // (UploadPartCopy) API. For more information, see Copy Object Using the REST
// Multipart Upload API // Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). // . All copy requests must be authenticated. Additionally, you must have read
// All copy requests must be authenticated. Additionally, you must have read access // access to the source object and write access to the destination bucket. For more
// to the source object and write access to the destination bucket. For more // information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html)
// information, see REST Authentication // . Both the Region that you want to copy the object from and the Region that you
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). Both // want to copy the object to must be enabled for your account. A copy request
// the Region that you want to copy the object from and the Region that you want to // might return an error when Amazon S3 receives the copy request or while Amazon
// copy the object to must be enabled for your account. A copy request might return // S3 is copying the files. If the error occurs before the copy action starts, you
// an error when Amazon S3 receives the copy request or while Amazon S3 is copying // receive a standard Amazon S3 error. If the error occurs during the copy
// the files. If the error occurs before the copy action starts, you receive a // operation, the error response is embedded in the 200 OK response. This means
// standard Amazon S3 error. If the error occurs during the copy operation, the // that a 200 OK response can contain either a success or an error. If you call
// error response is embedded in the 200 OK response. This means that a 200 OK // the S3 API directly, make sure to design your application to parse the contents
// response can contain either a success or an error. If you call the S3 API // of the response and handle it appropriately. If you use Amazon Web Services
// directly, make sure to design your application to parse the contents of the // SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply
// response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs // error handling per your configuration settings (including automatically retrying
// handle this condition. The SDKs detect the embedded error and apply error // the request as appropriate). If the condition persists, the SDKs throws an
// handling per your configuration settings (including automatically retrying the // exception (or, for the SDKs that don't use exceptions, they return the error).
// request as appropriate). If the condition persists, the SDKs throws an exception // If the copy is successful, you receive a response with information about the
// (or, for the SDKs that don't use exceptions, they return the error). If the copy // copied object. If the request is an HTTP 1.1 request, the response is chunk
// is successful, you receive a response with information about the copied object. // encoded. If it were not, it would not contain the content-length, and you would
// If the request is an HTTP 1.1 request, the response is chunk encoded. If it were // need to read the entire body. The copy request charge is based on the storage
// not, it would not contain the content-length, and you would need to read the // class and Region that you specify for the destination object. For pricing
// entire body. The copy request charge is based on the storage class and Region // information, see Amazon S3 pricing (http://aws.amazon.com/s3/pricing/) . Amazon
// that you specify for the destination object. For pricing information, see Amazon // S3 transfer acceleration does not support cross-Region copies. If you request a
// S3 pricing (http://aws.amazon.com/s3/pricing/). Amazon S3 transfer acceleration // cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad
// does not support cross-Region copies. If you request a cross-Region copy using a // Request error. For more information, see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html)
// transfer acceleration endpoint, you get a 400 Bad Request error. For more // . Metadata When copying an object, you can preserve all metadata (default) or
// information, see Transfer Acceleration
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html).
// Metadata When copying an object, you can preserve all metadata (default) or
// specify new metadata. However, the ACL is not preserved and is set to private // specify new metadata. However, the ACL is not preserved and is set to private
// for the user making the request. To override the default ACL setting, specify a // for the user making the request. To override the default ACL setting, specify a
// new ACL when generating a copy request. For more information, see Using ACLs // new ACL when generating a copy request. For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). To // . To specify whether you want the object metadata copied from the source object
// specify whether you want the object metadata copied from the source object or // or replaced with metadata provided in the request, you can optionally add the
// replaced with metadata provided in the request, you can optionally add the
// x-amz-metadata-directive header. When you grant permissions, you can use the // x-amz-metadata-directive header. When you grant permissions, you can use the
// s3:x-amz-metadata-directive condition key to enforce certain metadata behavior // s3:x-amz-metadata-directive condition key to enforce certain metadata behavior
// when objects are uploaded. For more information, see Specifying Conditions in a // when objects are uploaded. For more information, see Specifying Conditions in a
// Policy // Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) in // in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition
// the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition // keys, see Actions, Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html)
// keys, see Actions, Resources, and Condition Keys for Amazon S3 // . x-amz-website-redirect-location is unique to each object and must be
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html). // specified in the request headers to copy the value. x-amz-copy-source-if Headers
// x-amz-website-redirect-location is unique to each object and must be specified // To only copy an object under certain conditions, such as whether the Etag
// in the request headers to copy the value. x-amz-copy-source-if Headers To only // matches or whether the object was modified before or after a specified date, use
// copy an object under certain conditions, such as whether the Etag matches or // the following request parameters:
// whether the object was modified before or after a specified date, use the // - x-amz-copy-source-if-match
// following request parameters: // - x-amz-copy-source-if-none-match
// - x-amz-copy-source-if-unmodified-since
// - x-amz-copy-source-if-modified-since
// //
// * x-amz-copy-source-if-match // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since
// headers are present in the request and evaluate as follows, Amazon S3 returns
// 200 OK and copies the data:
// - x-amz-copy-source-if-match condition evaluates to true
// - x-amz-copy-source-if-unmodified-since condition evaluates to false
// //
// * // If both the x-amz-copy-source-if-none-match and
// x-amz-copy-source-if-none-match // x-amz-copy-source-if-modified-since headers are present in the request and
// evaluate as follows, Amazon S3 returns the 412 Precondition Failed response
// code:
// - x-amz-copy-source-if-none-match condition evaluates to false
// - x-amz-copy-source-if-modified-since condition evaluates to true
// //
// * x-amz-copy-source-if-unmodified-since // All headers with the x-amz- prefix, including x-amz-copy-source , must be
//
// *
// x-amz-copy-source-if-modified-since
//
// If both the x-amz-copy-source-if-match and
// x-amz-copy-source-if-unmodified-since headers are present in the request and
// evaluate as follows, Amazon S3 returns 200 OK and copies the data:
//
// *
// x-amz-copy-source-if-match condition evaluates to true
//
// *
// x-amz-copy-source-if-unmodified-since condition evaluates to false
//
// If both the
// x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers
// are present in the request and evaluate as follows, Amazon S3 returns the 412
// Precondition Failed response code:
//
// * x-amz-copy-source-if-none-match condition
// evaluates to false
//
// * x-amz-copy-source-if-modified-since condition evaluates to
// true
//
// All headers with the x-amz- prefix, including x-amz-copy-source, must be
// signed. Server-side encryption Amazon S3 automatically encrypts all new objects // signed. Server-side encryption Amazon S3 automatically encrypts all new objects
// that are copied to an S3 bucket. When copying an object, if you don't specify // that are copied to an S3 bucket. When copying an object, if you don't specify
// encryption information in your copy request, the encryption setting of the // encryption information in your copy request, the encryption setting of the
@ -121,29 +101,24 @@ import (
// object for the copy is stored in Amazon S3 using SSE-C, you must provide the // object for the copy is stored in Amazon S3 using SSE-C, you must provide the
// necessary encryption information in your request so that Amazon S3 can decrypt // necessary encryption information in your request so that Amazon S3 can decrypt
// the object for copying. For more information about server-side encryption, see // the object for copying. For more information about server-side encryption, see
// Using Server-Side Encryption // Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). If // . If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the
// a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. // object. For more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html)
// For more information, see Amazon S3 Bucket Keys // in the Amazon S3 User Guide. Access Control List (ACL)-Specific Request Headers
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the Amazon // When copying an object, you can optionally use headers to grant ACL-based
// S3 User Guide. Access Control List (ACL)-Specific Request Headers When copying // permissions. By default, all objects are private. Only the owner has full access
// an object, you can optionally use headers to grant ACL-based permissions. By // control. When adding a new object, you can grant permissions to individual
// default, all objects are private. Only the owner has full access control. When // Amazon Web Services accounts or to predefined groups defined by Amazon S3. These
// adding a new object, you can grant permissions to individual Amazon Web Services // permissions are then added to the ACL on the object. For more information, see
// accounts or to predefined groups defined by Amazon S3. These permissions are // Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)
// then added to the ACL on the object. For more information, see Access Control // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html)
// List (ACL) Overview // . If the bucket that you're copying objects to uses the bucket owner enforced
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) and Managing // setting for S3 Object Ownership, ACLs are disabled and no longer affect
// ACLs Using the REST API // permissions. Buckets that use this setting only accept PUT requests that don't
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). If // specify an ACL or PUT requests that specify bucket owner full control ACLs, such
// the bucket that you're copying objects to uses the bucket owner enforced setting // as the bucket-owner-full-control canned ACL or an equivalent form of this ACL
// for S3 Object Ownership, ACLs are disabled and no longer affect permissions. // expressed in the XML format. For more information, see Controlling ownership of
// Buckets that use this setting only accept PUT requests that don't specify an ACL // objects and disabling ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// or PUT requests that specify bucket owner full control ACLs, such as the
// bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed
// in the XML format. For more information, see Controlling ownership of objects
// and disabling ACLs
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced // in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced
// setting for Object Ownership, all objects written to the bucket by any account // setting for Object Ownership, all objects written to the bucket by any account
// will be owned by the bucket owner. Checksums When copying an object, if it has a // will be owned by the bucket owner. Checksums When copying an object, if it has a
@ -152,33 +127,23 @@ import (
// to use with the x-amz-checksum-algorithm header. Storage Class Options You can // to use with the x-amz-checksum-algorithm header. Storage Class Options You can
// use the CopyObject action to change the storage class of an object that is // use the CopyObject action to change the storage class of an object that is
// already stored in Amazon S3 using the StorageClass parameter. For more // already stored in Amazon S3 using the StorageClass parameter. For more
// information, see Storage Classes // information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) in // in the Amazon S3 User Guide. If the source object's storage class is GLACIER,
// the Amazon S3 User Guide. Versioning By default, x-amz-copy-source identifies // you must restore a copy of this object before you can use it as a source object
// the current version of an object to copy. If the current version is a delete // for the copy operation. For more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)
// marker, Amazon S3 behaves as if the object was deleted. To copy a different // . For more information, see Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html)
// version, use the versionId subresource. If you enable versioning on the target // . Versioning By default, x-amz-copy-source identifies the current version of an
// bucket, Amazon S3 generates a unique version ID for the object being copied. // object to copy. If the current version is a delete marker, Amazon S3 behaves as
// This version ID is different from the version ID of the source object. Amazon S3 // if the object was deleted. To copy a different version, use the versionId
// returns the version ID of the copied object in the x-amz-version-id response // subresource. If you enable versioning on the target bucket, Amazon S3 generates
// header in the response. If you do not enable versioning or suspend it on the // a unique version ID for the object being copied. This version ID is different
// target bucket, the version ID that Amazon S3 generates is always null. If the // from the version ID of the source object. Amazon S3 returns the version ID of
// source object's storage class is GLACIER, you must restore a copy of this object // the copied object in the x-amz-version-id response header in the response. If
// before you can use it as a source object for the copy operation. For more // you do not enable versioning or suspend it on the target bucket, the version ID
// information, see RestoreObject // that Amazon S3 generates is always null. The following operations are related to
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). The // CopyObject :
// following operations are related to CopyObject: // - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
// // - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
// * PutObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
//
// *
// GetObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
//
// For more
// information, see Copying Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html).
func (c *Client) CopyObject(ctx context.Context, params *CopyObjectInput, optFns ...func(*Options)) (*CopyObjectOutput, error) { func (c *Client) CopyObject(ctx context.Context, params *CopyObjectInput, optFns ...func(*Options)) (*CopyObjectOutput, error) {
if params == nil { if params == nil {
params = &CopyObjectInput{} params = &CopyObjectInput{}
@ -196,58 +161,53 @@ func (c *Client) CopyObject(ctx context.Context, params *CopyObjectInput, optFns
type CopyObjectInput struct { type CopyObjectInput struct {
// The name of the destination bucket. When using this action with an access point, // The name of the destination bucket. When using this action with an access
// you must direct requests to the access point hostname. The access point hostname // point, you must direct requests to the access point hostname. The access point
// takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // hostname takes the form
// When using this action with an access point through the Amazon Web Services // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// SDKs, you provide the access point ARN in place of the bucket name. For more // action with an access point through the Amazon Web Services SDKs, you provide
// information about access point ARNs, see Using access points // the access point ARN in place of the bucket name. For more information about
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
// Specifies the source object for the copy operation. You specify the value in one // Specifies the source object for the copy operation. You specify the value in
// of two formats, depending on whether you want to access the source object // one of two formats, depending on whether you want to access the source object
// through an access point // through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): // :
// // - For objects not accessed through an access point, specify the name of the
// * // source bucket and the key of the source object, separated by a slash (/). For
// For objects not accessed through an access point, specify the name of the source // example, to copy the object reports/january.pdf from the bucket
// bucket and the key of the source object, separated by a slash (/). For example, // awsexamplebucket , use awsexamplebucket/reports/january.pdf . The value must
// to copy the object reports/january.pdf from the bucket awsexamplebucket, use // be URL-encoded.
// awsexamplebucket/reports/january.pdf. The value must be URL-encoded. // - For objects accessed through access points, specify the Amazon Resource
// // Name (ARN) of the object as accessed through the access point, in the format
// * For // arn:aws:s3:::accesspoint//object/ . For example, to copy the object
// objects accessed through access points, specify the Amazon Resource Name (ARN) // reports/january.pdf through access point my-access-point owned by account
// of the object as accessed through the access point, in the format // 123456789012 in Region us-west-2 , use the URL encoding of
// arn:aws:s3:::accesspoint//object/. For example, to copy the object // arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf
// reports/january.pdf through access point my-access-point owned by account // . The value must be URL encoded. Amazon S3 supports copy operations using access
// 123456789012 in Region us-west-2, use the URL encoding of // points only when the source and destination buckets are in the same Amazon Web
// arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. // Services Region. Alternatively, for objects accessed through Amazon S3 on
// The value must be URL encoded. Amazon S3 supports copy operations using access // Outposts, specify the ARN of the object as accessed in the format
// points only when the source and destination buckets are in the same Amazon Web // arn:aws:s3-outposts:::outpost//object/ . For example, to copy the object
// Services Region. Alternatively, for objects accessed through Amazon S3 on // reports/january.pdf through outpost my-outpost owned by account 123456789012
// Outposts, specify the ARN of the object as accessed in the format // in Region us-west-2 , use the URL encoding of
// arn:aws:s3-outposts:::outpost//object/. For example, to copy the object // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf
// reports/january.pdf through outpost my-outpost owned by account 123456789012 in // . The value must be URL-encoded.
// Region us-west-2, use the URL encoding of // To copy a specific version of an object, append ?versionId= to the value (for
// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. // example,
// The value must be URL-encoded. // awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893
// // ). If you don't specify a version ID, Amazon S3 copies the latest version of the
// To copy a specific version of an object, append
// ?versionId= to the value (for example,
// awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).
// If you don't specify a version ID, Amazon S3 copies the latest version of the
// source object. // source object.
// //
// This member is required. // This member is required.
@ -258,8 +218,8 @@ type CopyObjectInput struct {
// This member is required. // This member is required.
Key *string Key *string
// The canned ACL to apply to the object. This action is not supported by Amazon S3 // The canned ACL to apply to the object. This action is not supported by Amazon
// on Outposts. // S3 on Outposts.
ACL types.ObjectCannedACL ACL types.ObjectCannedACL
// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption
@ -272,9 +232,8 @@ type CopyObjectInput struct {
// Specifies caching behavior along the request/reply chain. // Specifies caching behavior along the request/reply chain.
CacheControl *string CacheControl *string
// Indicates the algorithm you want Amazon S3 to use to create the checksum for the // Indicates the algorithm you want Amazon S3 to use to create the checksum for
// object. For more information, see Checking object integrity // the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumAlgorithm types.ChecksumAlgorithm ChecksumAlgorithm types.ChecksumAlgorithm
@ -339,8 +298,8 @@ type CopyObjectInput struct {
// supported by Amazon S3 on Outposts. // supported by Amazon S3 on Outposts.
GrantRead *string GrantRead *string
// Allows grantee to read the object ACL. This action is not supported by Amazon S3 // Allows grantee to read the object ACL. This action is not supported by Amazon
// on Outposts. // S3 on Outposts.
GrantReadACP *string GrantReadACP *string
// Allows grantee to write the ACL for the applicable object. This action is not // Allows grantee to write the ACL for the applicable object. This action is not
@ -350,8 +309,8 @@ type CopyObjectInput struct {
// A map of metadata to store with the object in S3. // A map of metadata to store with the object in S3.
Metadata map[string]string Metadata map[string]string
// Specifies whether the metadata is copied from the source object or replaced with // Specifies whether the metadata is copied from the source object or replaced
// metadata provided in the request. // with metadata provided in the request.
MetadataDirective types.MetadataDirective MetadataDirective types.MetadataDirective
// Specifies whether you want to apply a legal hold to the copied object. // Specifies whether you want to apply a legal hold to the copied object.
@ -366,8 +325,7 @@ type CopyObjectInput struct {
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -396,26 +354,24 @@ type CopyObjectInput struct {
// GET and PUT requests for an object protected by Amazon Web Services KMS will // GET and PUT requests for an object protected by Amazon Web Services KMS will
// fail if not made via SSL or using SigV4. For information about configuring using // fail if not made via SSL or using SigV4. For information about configuring using
// any of the officially supported Amazon Web Services SDKs and Amazon Web Services // any of the officially supported Amazon Web Services SDKs and Amazon Web Services
// CLI, see Specifying the Signature Version in Request Authentication // CLI, see Specifying the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// By default, Amazon S3 uses the STANDARD Storage Class to store newly created // By default, Amazon S3 uses the STANDARD Storage Class to store newly created
// objects. The STANDARD storage class provides high durability and high // objects. The STANDARD storage class provides high durability and high
// availability. Depending on performance needs, you can specify a different // availability. Depending on performance needs, you can specify a different
// Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For // Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
// more information, see Storage Classes // more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) in // in the Amazon S3 User Guide.
// the Amazon S3 User Guide.
StorageClass types.StorageClass StorageClass types.StorageClass
// The tag-set for the object destination object this value must be used in // The tag-set for the object destination object this value must be used in
// conjunction with the TaggingDirective. The tag-set must be encoded as URL Query // conjunction with the TaggingDirective . The tag-set must be encoded as URL Query
// parameters. // parameters.
Tagging *string Tagging *string
@ -452,13 +408,14 @@ type CopyObjectOutput struct {
// request. // request.
RequestCharged types.RequestCharged RequestCharged types.RequestCharged
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header confirming the encryption algorithm used. // requested, the response will include this header confirming the encryption
// algorithm used.
SSECustomerAlgorithm *string SSECustomerAlgorithm *string
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header to provide round-trip message integrity // requested, the response will include this header to provide round-trip message
// verification of the customer-provided encryption key. // integrity verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string SSECustomerKeyMD5 *string
// If present, specifies the Amazon Web Services KMS Encryption Context to use for // If present, specifies the Amazon Web Services KMS Encryption Context to use for
@ -472,7 +429,7 @@ type CopyObjectOutput struct {
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// Version ID of the newly created copy. // Version ID of the newly created copy.
@ -541,6 +498,9 @@ func (c *Client) addOperationCopyObjectMiddlewares(stack *middleware.Stack, opti
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addCopyObjectUpdateEndpoint(stack, options); err != nil { if err = addCopyObjectUpdateEndpoint(stack, options); err != nil {
return err return err
} }
@ -571,8 +531,9 @@ func newServiceMetadataMiddleware_opCopyObject(region string) *awsmiddleware.Reg
} }
} }
// getCopyObjectBucketMember returns a pointer to string denoting a provided bucket // getCopyObjectBucketMember returns a pointer to string denoting a provided
// member valueand a boolean indicating if the input has a modeled bucket name, // bucket member valueand a boolean indicating if the input has a modeled bucket
// name,
func getCopyObjectBucketMember(input interface{}) (*string, bool) { func getCopyObjectBucketMember(input interface{}) (*string, bool) {
in := input.(*CopyObjectInput) in := input.(*CopyObjectInput)
if in.Bucket == nil { if in.Bucket == nil {

View file

@ -16,121 +16,81 @@ import (
// and have a valid Amazon Web Services Access Key ID to authenticate requests. // and have a valid Amazon Web Services Access Key ID to authenticate requests.
// Anonymous requests are never allowed to create buckets. By creating the bucket, // Anonymous requests are never allowed to create buckets. By creating the bucket,
// you become the bucket owner. Not every string is an acceptable bucket name. For // you become the bucket owner. Not every string is an acceptable bucket name. For
// information about bucket naming restrictions, see Bucket naming rules // information about bucket naming restrictions, see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). // . If you want to create an Amazon S3 on Outposts bucket, see Create Bucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
// If you want to create an Amazon S3 on Outposts bucket, see Create Bucket // . By default, the bucket is created in the US East (N. Virginia) Region. You can
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html).
// By default, the bucket is created in the US East (N. Virginia) Region. You can
// optionally specify a Region in the request body. You might choose a Region to // optionally specify a Region in the request body. You might choose a Region to
// optimize latency, minimize costs, or address regulatory requirements. For // optimize latency, minimize costs, or address regulatory requirements. For
// example, if you reside in Europe, you will probably find it advantageous to // example, if you reside in Europe, you will probably find it advantageous to
// create buckets in the Europe (Ireland) Region. For more information, see // create buckets in the Europe (Ireland) Region. For more information, see
// Accessing a bucket // Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). // . If you send your create bucket request to the s3.amazonaws.com endpoint, the
// If you send your create bucket request to the s3.amazonaws.com endpoint, the
// request goes to the us-east-1 Region. Accordingly, the signature calculations in // request goes to the us-east-1 Region. Accordingly, the signature calculations in
// Signature Version 4 must use us-east-1 as the Region, even if the location // Signature Version 4 must use us-east-1 as the Region, even if the location
// constraint in the request specifies another Region where the bucket is to be // constraint in the request specifies another Region where the bucket is to be
// created. If you create a bucket in a Region other than US East (N. Virginia), // created. If you create a bucket in a Region other than US East (N. Virginia),
// your application must be able to handle 307 redirect. For more information, see // your application must be able to handle 307 redirect. For more information, see
// Virtual hosting of buckets // Virtual hosting of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). Access // . Access control lists (ACLs) When creating a bucket using this operation, you
// control lists (ACLs) When creating a bucket using this operation, you can // can optionally configure the bucket ACL to specify the accounts or groups that
// optionally configure the bucket ACL to specify the accounts or groups that
// should be granted specific permissions on the bucket. If your CreateBucket // should be granted specific permissions on the bucket. If your CreateBucket
// request sets bucket owner enforced for S3 Object Ownership and specifies a // request sets bucket owner enforced for S3 Object Ownership and specifies a
// bucket ACL that provides access to an external Amazon Web Services account, your // bucket ACL that provides access to an external Amazon Web Services account, your
// request fails with a 400 error and returns the // request fails with a 400 error and returns the
// InvalidBucketAclWithObjectOwnership error code. For more information, see // InvalidBucketAclWithObjectOwnership error code. For more information, see
// Controlling object ownership // Controlling object ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// in the Amazon S3 User Guide. There are two ways to grant the appropriate // in the Amazon S3 User Guide. There are two ways to grant the appropriate
// permissions using the request headers. // permissions using the request headers.
// - Specify a canned ACL using the x-amz-acl request header. Amazon S3 supports
// a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined
// set of grantees and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL)
// .
// - Specify access permissions explicitly using the x-amz-grant-read ,
// x-amz-grant-write , x-amz-grant-read-acp , x-amz-grant-write-acp , and
// x-amz-grant-full-control headers. These headers map to the set of permissions
// Amazon S3 supports in an ACL. For more information, see Access control list
// (ACL) overview (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)
// . You specify each grantee as a type=value pair, where the type is one of the
// following:
// - id if the value specified is the canonical user ID of an Amazon Web
// Services account
// - uri if you are granting permissions to a predefined group
// - emailAddress if the value specified is the email address of an Amazon Web
// Services account Using email addresses to specify a grantee is only supported in
// the following Amazon Web Services Regions:
// - US East (N. Virginia)
// - US West (N. California)
// - US West (Oregon)
// - Asia Pacific (Singapore)
// - Asia Pacific (Sydney)
// - Asia Pacific (Tokyo)
// - Europe (Ireland)
// - South America (São Paulo) For a list of all the Amazon S3 supported Regions
// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
// in the Amazon Web Services General Reference. For example, the following
// x-amz-grant-read header grants the Amazon Web Services accounts identified by
// account IDs permissions to read object data and its metadata:
// x-amz-grant-read: id="11112222333", id="444455556666"
// //
// * Specify a canned ACL using the // You can use either a canned ACL or specify access permissions explicitly. You
// x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as // cannot do both. Permissions In addition to s3:CreateBucket , the following
// canned ACLs. Each canned ACL has a predefined set of grantees and permissions. // permissions are required when your CreateBucket includes specific headers:
// For more information, see Canned ACL // - ACLs - If your CreateBucket request specifies ACL permissions and the ACL is
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). // public-read, public-read-write, authenticated-read, or if you specify access
// permissions explicitly through any other ACL, both s3:CreateBucket and
// s3:PutBucketAcl permissions are needed. If the ACL the CreateBucket request is
// private or doesn't specify any ACLs, only s3:CreateBucket permission is
// needed.
// - Object Lock - If ObjectLockEnabledForBucket is set to true in your
// CreateBucket request, s3:PutBucketObjectLockConfiguration and
// s3:PutBucketVersioning permissions are required.
// - S3 Object Ownership - If your CreateBucket request includes the
// x-amz-object-ownership header, s3:PutBucketOwnershipControls permission is
// required.
// //
// * // The following operations are related to CreateBucket :
// Specify access permissions explicitly using the x-amz-grant-read, // - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
// x-amz-grant-write, x-amz-grant-read-acp, x-amz-grant-write-acp, and // - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
// x-amz-grant-full-control headers. These headers map to the set of permissions
// Amazon S3 supports in an ACL. For more information, see Access control list
// (ACL) overview
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html). You
// specify each grantee as a type=value pair, where the type is one of the
// following:
//
// * id if the value specified is the canonical user ID of an Amazon
// Web Services account
//
// * uri if you are granting permissions to a predefined
// group
//
// * emailAddress if the value specified is the email address of an Amazon
// Web Services account Using email addresses to specify a grantee is only
// supported in the following Amazon Web Services Regions:
//
// * US East (N.
// Virginia)
//
// * US West (N. California)
//
// * US West (Oregon)
//
// * Asia Pacific
// (Singapore)
//
// * Asia Pacific (Sydney)
//
// * Asia Pacific (Tokyo)
//
// * Europe
// (Ireland)
//
// * South America (São Paulo)
//
// For a list of all the Amazon S3
// supported Regions and endpoints, see Regions and Endpoints
// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in the
// Amazon Web Services General Reference.
//
// For example, the following
// x-amz-grant-read header grants the Amazon Web Services accounts identified by
// account IDs permissions to read object data and its metadata: x-amz-grant-read:
// id="11112222333", id="444455556666"
//
// You can use either a canned ACL or specify
// access permissions explicitly. You cannot do both. Permissions In addition to
// s3:CreateBucket, the following permissions are required when your CreateBucket
// includes specific headers:
//
// * ACLs - If your CreateBucket request specifies ACL
// permissions and the ACL is public-read, public-read-write, authenticated-read,
// or if you specify access permissions explicitly through any other ACL, both
// s3:CreateBucket and s3:PutBucketAcl permissions are needed. If the ACL the
// CreateBucket request is private or doesn't specify any ACLs, only
// s3:CreateBucket permission is needed.
//
// * Object Lock - If
// ObjectLockEnabledForBucket is set to true in your CreateBucket request,
// s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning permissions are
// required.
//
// * S3 Object Ownership - If your CreateBucket request includes the the
// x-amz-object-ownership header, s3:PutBucketOwnershipControls permission is
// required.
//
// The following operations are related to CreateBucket:
//
// * PutObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
//
// *
// DeleteBucket
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
func (c *Client) CreateBucket(ctx context.Context, params *CreateBucketInput, optFns ...func(*Options)) (*CreateBucketOutput, error) { func (c *Client) CreateBucket(ctx context.Context, params *CreateBucketInput, optFns ...func(*Options)) (*CreateBucketOutput, error) {
if params == nil { if params == nil {
params = &CreateBucketInput{} params = &CreateBucketInput{}
@ -264,6 +224,9 @@ func (c *Client) addOperationCreateBucketMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addCreateBucketUpdateEndpoint(stack, options); err != nil { if err = addCreateBucketUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -16,29 +16,25 @@ import (
// This action initiates a multipart upload and returns an upload ID. This upload // This action initiates a multipart upload and returns an upload ID. This upload
// ID is used to associate all of the parts in the specific multipart upload. You // ID is used to associate all of the parts in the specific multipart upload. You
// specify this upload ID in each of your subsequent upload part requests (see // specify this upload ID in each of your subsequent upload part requests (see
// UploadPart // UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). You also // ). You also include this upload ID in the final request to either complete or
// include this upload ID in the final request to either complete or abort the // abort the multipart upload request. For more information about multipart
// multipart upload request. For more information about multipart uploads, see // uploads, see Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html)
// Multipart Upload Overview // . If you have configured a lifecycle rule to abort incomplete multipart uploads,
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html). If you have // the upload must complete within the number of days specified in the bucket
// configured a lifecycle rule to abort incomplete multipart uploads, the upload // lifecycle configuration. Otherwise, the incomplete multipart upload becomes
// must complete within the number of days specified in the bucket lifecycle // eligible for an abort action and Amazon S3 aborts the multipart upload. For more
// configuration. Otherwise, the incomplete multipart upload becomes eligible for // information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle
// an abort action and Amazon S3 aborts the multipart upload. For more information, // Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
// see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy // . For information about the permissions required to use the multipart upload
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). // API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html)
// For information about the permissions required to use the multipart upload API, // . For request signing, multipart upload is just a series of regular requests.
// see Multipart Upload and Permissions // You initiate a multipart upload, send one or more requests to upload parts, and
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). For // then complete the multipart upload process. You sign each request individually.
// request signing, multipart upload is just a series of regular requests. You // There is nothing special about signing multipart upload requests. For more
// initiate a multipart upload, send one or more requests to upload parts, and then // information about signing, see Authenticating Requests (Amazon Web Services
// complete the multipart upload process. You sign each request individually. There // Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)
// is nothing special about signing multipart upload requests. For more information // . After you initiate a multipart upload and upload one or more parts, to stop
// about signing, see Authenticating Requests (Amazon Web Services Signature
// Version 4)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html).
// After you initiate a multipart upload and upload one or more parts, to stop
// being charged for storing the uploaded parts, you must either complete or abort // being charged for storing the uploaded parts, you must either complete or abort
// the multipart upload. Amazon S3 frees up the space used to store the parts and // the multipart upload. Amazon S3 frees up the space used to store the parts and
// stop charging you for storing them only after you either complete or abort a // stop charging you for storing them only after you either complete or abort a
@ -60,199 +56,123 @@ import (
// customer-provided key. If the encryption setting in your request is different // customer-provided key. If the encryption setting in your request is different
// from the default encryption configuration of the destination bucket, the // from the default encryption configuration of the destination bucket, the
// encryption setting in your request takes precedence. If you choose to provide // encryption setting in your request takes precedence. If you choose to provide
// your own encryption key, the request headers you provide in UploadPart // your own encryption key, the request headers you provide in UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) and // and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
// UploadPartCopy
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
// requests must match the headers you used in the request to initiate the upload // requests must match the headers you used in the request to initiate the upload
// by using CreateMultipartUpload. you can request that Amazon S3 save the uploaded // by using CreateMultipartUpload . You can request that Amazon S3 save the
// parts encrypted with server-side encryption with an Amazon S3 managed key // uploaded parts encrypted with server-side encryption with an Amazon S3 managed
// (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a customer-provided // key (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a
// encryption key (SSE-C). To perform a multipart upload with encryption by using // customer-provided encryption key (SSE-C). To perform a multipart upload with
// an Amazon Web Services KMS key, the requester must have permission to the // encryption by using an Amazon Web Services KMS key, the requester must have
// kms:Decrypt and kms:GenerateDataKey* actions on the key. These permissions are // permission to the kms:Decrypt and kms:GenerateDataKey* actions on the key.
// required because Amazon S3 must decrypt and read data from the encrypted file // These permissions are required because Amazon S3 must decrypt and read data from
// parts before it completes the multipart upload. For more information, see // the encrypted file parts before it completes the multipart upload. For more
// Multipart upload API and permissions // information, see Multipart upload API and permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) // and Protecting data using server-side encryption with Amazon Web Services KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
// and Protecting data using server-side encryption with Amazon Web Services KMS
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
// in the Amazon S3 User Guide. If your Identity and Access Management (IAM) user // in the Amazon S3 User Guide. If your Identity and Access Management (IAM) user
// or role is in the same Amazon Web Services account as the KMS key, then you must // or role is in the same Amazon Web Services account as the KMS key, then you must
// have these permissions on the key policy. If your IAM user or role belongs to a // have these permissions on the key policy. If your IAM user or role belongs to a
// different account than the key, then you must have the permissions on both the // different account than the key, then you must have the permissions on both the
// key policy and your IAM user or role. For more information, see Protecting Data // key policy and your IAM user or role. For more information, see Protecting Data
// Using Server-Side Encryption // Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). // . Access Permissions When copying an object, you can optionally specify the
// Access Permissions When copying an object, you can optionally specify the
// accounts or groups that should be granted specific permissions on the new // accounts or groups that should be granted specific permissions on the new
// object. There are two ways to grant the permissions using the request // object. There are two ways to grant the permissions using the request headers:
// headers: // - Specify a canned ACL with the x-amz-acl request header. For more
// information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL)
// .
// - Specify access permissions explicitly with the x-amz-grant-read ,
// x-amz-grant-read-acp , x-amz-grant-write-acp , and x-amz-grant-full-control
// headers. These parameters map to the set of permissions that Amazon S3 supports
// in an ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)
// .
// //
// * Specify a canned ACL with the x-amz-acl request header. For more // You can use either a canned ACL or specify access permissions explicitly. You
// information, see Canned ACL // cannot do both. Server-Side- Encryption-Specific Request Headers Amazon S3
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). // encrypts data by using server-side encryption with an Amazon S3 managed key
// (SSE-S3) by default. Server-side encryption is for data encryption at rest.
// Amazon S3 encrypts your data as it writes it to disks in its data centers and
// decrypts it when you access it. You can request that Amazon S3 encrypts data at
// rest by using server-side encryption with other key options. The option you use
// depends on whether you want to use KMS keys (SSE-KMS) or provide your own
// encryption keys (SSE-C).
// - Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key (
// aws/s3 ) and KMS customer managed keys stored in Key Management Service (KMS)
// If you want Amazon Web Services to manage the keys used to encrypt data,
// specify the following headers in the request.
// - x-amz-server-side-encryption
// - x-amz-server-side-encryption-aws-kms-key-id
// - x-amz-server-side-encryption-context If you specify
// x-amz-server-side-encryption:aws:kms , but don't provide
// x-amz-server-side-encryption-aws-kms-key-id , Amazon S3 uses the Amazon Web
// Services managed key ( aws/s3 key) in KMS to protect the data. All GET and PUT
// requests for an object protected by KMS fail if you don't make them by using
// Secure Sockets Layer (SSL), Transport Layer Security (TLS), or Signature Version
// 4. For more information about server-side encryption with KMS keys (SSE-KMS),
// see Protecting Data Using Server-Side Encryption with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
// .
// - Use customer-provided encryption keys (SSE-C) If you want to manage your
// own encryption keys, provide all the following headers in the request.
// - x-amz-server-side-encryption-customer-algorithm
// - x-amz-server-side-encryption-customer-key
// - x-amz-server-side-encryption-customer-key-MD5 For more information about
// server-side encryption with customer-provided encryption keys (SSE-C), see
// Protecting data using server-side encryption with customer-provided encryption
// keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html)
// .
// //
// * // Access-Control-List (ACL)-Specific Request Headers You also can use the
// Specify access permissions explicitly with the x-amz-grant-read, // following access controlrelated headers with this operation. By default, all
// x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control // objects are private. Only the owner has full access control. When adding a new
// headers. These parameters map to the set of permissions that Amazon S3 supports // object, you can grant permissions to individual Amazon Web Services accounts or
// in an ACL. For more information, see Access Control List (ACL) Overview // to predefined groups defined by Amazon S3. These permissions are then added to
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // the access control list (ACL) on the object. For more information, see Using
// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) .
// With this operation, you can grant access permissions using one of the following
// two methods:
// - Specify a canned ACL ( x-amz-acl ) — Amazon S3 supports a set of predefined
// ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
// permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL)
// .
// - Specify access permissions explicitly — To explicitly grant access
// permissions to specific Amazon Web Services accounts or groups, use the
// following headers. Each header maps to specific permissions that Amazon S3
// supports in an ACL. For more information, see Access Control List (ACL)
// Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) .
// In the header, you specify a list of grantees who get the specific permission.
// To grant permissions explicitly, use:
// - x-amz-grant-read
// - x-amz-grant-write
// - x-amz-grant-read-acp
// - x-amz-grant-write-acp
// - x-amz-grant-full-control You specify each grantee as a type=value pair,
// where the type is one of the following:
// - id if the value specified is the canonical user ID of an Amazon Web
// Services account
// - uri if you are granting permissions to a predefined group
// - emailAddress if the value specified is the email address of an Amazon Web
// Services account Using email addresses to specify a grantee is only supported in
// the following Amazon Web Services Regions:
// - US East (N. Virginia)
// - US West (N. California)
// - US West (Oregon)
// - Asia Pacific (Singapore)
// - Asia Pacific (Sydney)
// - Asia Pacific (Tokyo)
// - Europe (Ireland)
// - South America (São Paulo) For a list of all the Amazon S3 supported Regions
// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
// in the Amazon Web Services General Reference. For example, the following
// x-amz-grant-read header grants the Amazon Web Services accounts identified by
// account IDs permissions to read object data and its metadata:
// x-amz-grant-read: id="11112222333", id="444455556666"
// //
// You can // The following operations are related to CreateMultipartUpload :
// use either a canned ACL or specify access permissions explicitly. You cannot do // - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// both. Server-Side- Encryption-Specific Request Headers Amazon S3 encrypts data // - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
// by using server-side encryption with an Amazon S3 managed key (SSE-S3) by // - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
// default. Server-side encryption is for data encryption at rest. Amazon S3 // - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
// encrypts your data as it writes it to disks in its data centers and decrypts it // - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
// when you access it. You can request that Amazon S3 encrypts data at rest by
// using server-side encryption with other key options. The option you use depends
// on whether you want to use KMS keys (SSE-KMS) or provide your own encryption
// keys (SSE-C).
//
// * Use KMS keys (SSE-KMS) that include the Amazon Web Services
// managed key (aws/s3) and KMS customer managed keys stored in Key Management
// Service (KMS) If you want Amazon Web Services to manage the keys used to
// encrypt data, specify the following headers in the request.
//
// *
// x-amz-server-side-encryption
//
// * x-amz-server-side-encryption-aws-kms-key-id
//
// *
// x-amz-server-side-encryption-context
//
// If you specify
// x-amz-server-side-encryption:aws:kms, but don't provide
// x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web
// Services managed key (aws/s3 key) in KMS to protect the data. All GET and PUT
// requests for an object protected by KMS fail if you don't make them by using
// Secure Sockets Layer (SSL), Transport Layer Security (TLS), or Signature Version
// 4. For more information about server-side encryption with KMS keys (SSE-KMS),
// see Protecting Data Using Server-Side Encryption with KMS keys
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html).
//
// *
// Use customer-provided encryption keys (SSE-C) If you want to manage your own
// encryption keys, provide all the following headers in the request.
//
// *
// x-amz-server-side-encryption-customer-algorithm
//
// *
// x-amz-server-side-encryption-customer-key
//
// *
// x-amz-server-side-encryption-customer-key-MD5
//
// For more information about
// server-side encryption with customer-provided encryption keys (SSE-C), see
// Protecting data using server-side encryption with customer-provided encryption
// keys (SSE-C)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html).
//
// Access-Control-List
// (ACL)-Specific Request Headers You also can use the following access
// controlrelated headers with this operation. By default, all objects are
// private. Only the owner has full access control. When adding a new object, you
// can grant permissions to individual Amazon Web Services accounts or to
// predefined groups defined by Amazon S3. These permissions are then added to the
// access control list (ACL) on the object. For more information, see Using ACLs
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). With
// this operation, you can grant access permissions using one of the following two
// methods:
//
// * Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of
// predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of
// grantees and permissions. For more information, see Canned ACL
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL).
//
// *
// Specify access permissions explicitly — To explicitly grant access permissions
// to specific Amazon Web Services accounts or groups, use the following headers.
// Each header maps to specific permissions that Amazon S3 supports in an ACL. For
// more information, see Access Control List (ACL) Overview
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). In the
// header, you specify a list of grantees who get the specific permission. To grant
// permissions explicitly, use:
//
// * x-amz-grant-read
//
// * x-amz-grant-write
//
// *
// x-amz-grant-read-acp
//
// * x-amz-grant-write-acp
//
// * x-amz-grant-full-control
//
// You
// specify each grantee as a type=value pair, where the type is one of the
// following:
//
// * id if the value specified is the canonical user ID of an Amazon
// Web Services account
//
// * uri if you are granting permissions to a predefined
// group
//
// * emailAddress if the value specified is the email address of an Amazon
// Web Services account Using email addresses to specify a grantee is only
// supported in the following Amazon Web Services Regions:
//
// * US East (N.
// Virginia)
//
// * US West (N. California)
//
// * US West (Oregon)
//
// * Asia Pacific
// (Singapore)
//
// * Asia Pacific (Sydney)
//
// * Asia Pacific (Tokyo)
//
// * Europe
// (Ireland)
//
// * South America (São Paulo)
//
// For a list of all the Amazon S3
// supported Regions and endpoints, see Regions and Endpoints
// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in the
// Amazon Web Services General Reference.
//
// For example, the following
// x-amz-grant-read header grants the Amazon Web Services accounts identified by
// account IDs permissions to read object data and its metadata: x-amz-grant-read:
// id="11112222333", id="444455556666"
//
// The following operations are related to
// CreateMultipartUpload:
//
// * UploadPart
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
//
// *
// CompleteMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
//
// *
// AbortMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
//
// *
// ListParts
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
//
// *
// ListMultipartUploads
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
func (c *Client) CreateMultipartUpload(ctx context.Context, params *CreateMultipartUploadInput, optFns ...func(*Options)) (*CreateMultipartUploadOutput, error) { func (c *Client) CreateMultipartUpload(ctx context.Context, params *CreateMultipartUploadInput, optFns ...func(*Options)) (*CreateMultipartUploadOutput, error) {
if params == nil { if params == nil {
params = &CreateMultipartUploadInput{} params = &CreateMultipartUploadInput{}
@ -276,17 +196,15 @@ type CreateMultipartUploadInput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -296,8 +214,8 @@ type CreateMultipartUploadInput struct {
// This member is required. // This member is required.
Key *string Key *string
// The canned ACL to apply to the object. This action is not supported by Amazon S3 // The canned ACL to apply to the object. This action is not supported by Amazon
// on Outposts. // S3 on Outposts.
ACL types.ObjectCannedACL ACL types.ObjectCannedACL
// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption
@ -310,9 +228,8 @@ type CreateMultipartUploadInput struct {
// Specifies caching behavior along the request/reply chain. // Specifies caching behavior along the request/reply chain.
CacheControl *string CacheControl *string
// Indicates the algorithm you want Amazon S3 to use to create the checksum for the // Indicates the algorithm you want Amazon S3 to use to create the checksum for
// object. For more information, see Checking object integrity // the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumAlgorithm types.ChecksumAlgorithm ChecksumAlgorithm types.ChecksumAlgorithm
@ -346,8 +263,8 @@ type CreateMultipartUploadInput struct {
// supported by Amazon S3 on Outposts. // supported by Amazon S3 on Outposts.
GrantRead *string GrantRead *string
// Allows grantee to read the object ACL. This action is not supported by Amazon S3 // Allows grantee to read the object ACL. This action is not supported by Amazon
// on Outposts. // S3 on Outposts.
GrantReadACP *string GrantReadACP *string
// Allows grantee to write the ACL for the applicable object. This action is not // Allows grantee to write the ACL for the applicable object. This action is not
@ -369,8 +286,7 @@ type CreateMultipartUploadInput struct {
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -400,22 +316,20 @@ type CreateMultipartUploadInput struct {
// Web Services KMS will fail if not made via SSL or using SigV4. For information // Web Services KMS will fail if not made via SSL or using SigV4. For information
// about configuring using any of the officially supported Amazon Web Services SDKs // about configuring using any of the officially supported Amazon Web Services SDKs
// and Amazon Web Services CLI, see Specifying the Signature Version in Request // and Amazon Web Services CLI, see Specifying the Signature Version in Request
// Authentication // Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// By default, Amazon S3 uses the STANDARD Storage Class to store newly created // By default, Amazon S3 uses the STANDARD Storage Class to store newly created
// objects. The STANDARD storage class provides high durability and high // objects. The STANDARD storage class provides high durability and high
// availability. Depending on performance needs, you can specify a different // availability. Depending on performance needs, you can specify a different
// Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For // Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
// more information, see Storage Classes // more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) in // in the Amazon S3 User Guide.
// the Amazon S3 User Guide.
StorageClass types.StorageClass StorageClass types.StorageClass
// The tag-set for the object. The tag-set must be encoded as URL Query parameters. // The tag-set for the object. The tag-set must be encoded as URL Query parameters.
@ -431,15 +345,14 @@ type CreateMultipartUploadInput struct {
type CreateMultipartUploadOutput struct { type CreateMultipartUploadOutput struct {
// If the bucket has a lifecycle rule configured with an action to abort incomplete // If the bucket has a lifecycle rule configured with an action to abort
// multipart uploads and the prefix in the lifecycle rule matches the object name // incomplete multipart uploads and the prefix in the lifecycle rule matches the
// in the request, the response includes this header. The header indicates when the // object name in the request, the response includes this header. The header
// initiated multipart upload becomes eligible for an abort operation. For more // indicates when the initiated multipart upload becomes eligible for an abort
// information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle // operation. For more information, see Aborting Incomplete Multipart Uploads
// Policy // Using a Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). // . The response also includes the x-amz-abort-rule-id header that provides the
// The response also includes the x-amz-abort-rule-id header that provides the ID // ID of the lifecycle configuration rule that defines this action.
// of the lifecycle configuration rule that defines this action.
AbortDate *time.Time AbortDate *time.Time
// This header is returned along with the x-amz-abort-date header. It identifies // This header is returned along with the x-amz-abort-date header. It identifies
@ -454,17 +367,15 @@ type CreateMultipartUploadOutput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
Bucket *string Bucket *string
// Indicates whether the multipart upload uses an S3 Bucket Key for server-side // Indicates whether the multipart upload uses an S3 Bucket Key for server-side
@ -481,13 +392,14 @@ type CreateMultipartUploadOutput struct {
// request. // request.
RequestCharged types.RequestCharged RequestCharged types.RequestCharged
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header confirming the encryption algorithm used. // requested, the response will include this header confirming the encryption
// algorithm used.
SSECustomerAlgorithm *string SSECustomerAlgorithm *string
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header to provide round-trip message integrity // requested, the response will include this header to provide round-trip message
// verification of the customer-provided encryption key. // integrity verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string SSECustomerKeyMD5 *string
// If present, specifies the Amazon Web Services KMS Encryption Context to use for // If present, specifies the Amazon Web Services KMS Encryption Context to use for
@ -501,7 +413,7 @@ type CreateMultipartUploadOutput struct {
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// ID for the initiated multipart upload. // ID for the initiated multipart upload.
@ -570,6 +482,9 @@ func (c *Client) addOperationCreateMultipartUploadMiddlewares(stack *middleware.
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addCreateMultipartUploadUpdateEndpoint(stack, options); err != nil { if err = addCreateMultipartUploadUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -13,14 +13,9 @@ import (
// Deletes the S3 bucket. All objects (including all object versions and delete // Deletes the S3 bucket. All objects (including all object versions and delete
// markers) in the bucket must be deleted before the bucket itself can be deleted. // markers) in the bucket must be deleted before the bucket itself can be deleted.
// Related Resources // The following operations are related to DeleteBucket :
// // - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
// * CreateBucket // - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
//
// *
// DeleteObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
func (c *Client) DeleteBucket(ctx context.Context, params *DeleteBucketInput, optFns ...func(*Options)) (*DeleteBucketOutput, error) { func (c *Client) DeleteBucket(ctx context.Context, params *DeleteBucketInput, optFns ...func(*Options)) (*DeleteBucketOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketInput{} params = &DeleteBucketInput{}
@ -115,6 +110,9 @@ func (c *Client) addOperationDeleteBucketMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -13,29 +13,17 @@ import (
// Deletes an analytics configuration for the bucket (specified by the analytics // Deletes an analytics configuration for the bucket (specified by the analytics
// configuration ID). To use this operation, you must have permissions to perform // configuration ID). To use this operation, you must have permissions to perform
// the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by // the s3:PutAnalyticsConfiguration action. The bucket owner has this permission
// default. The bucket owner can grant this permission to others. For more // by default. The bucket owner can grant this permission to others. For more
// information about permissions, see Permissions Related to Bucket Subresource // information about permissions, see Permissions Related to Bucket Subresource
// Operations // Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . For information about the Amazon S3 analytics feature, see Amazon S3
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // Analytics Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html)
// For information about the Amazon S3 analytics feature, see Amazon S3 Analytics // . The following operations are related to DeleteBucketAnalyticsConfiguration :
// Storage Class Analysis // - GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). // - ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)
// The following operations are related to DeleteBucketAnalyticsConfiguration: // - PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)
//
// *
// GetBucketAnalyticsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html)
//
// *
// ListBucketAnalyticsConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)
//
// *
// PutBucketAnalyticsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)
func (c *Client) DeleteBucketAnalyticsConfiguration(ctx context.Context, params *DeleteBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketAnalyticsConfigurationOutput, error) { func (c *Client) DeleteBucketAnalyticsConfiguration(ctx context.Context, params *DeleteBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketAnalyticsConfigurationOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketAnalyticsConfigurationInput{} params = &DeleteBucketAnalyticsConfigurationInput{}
@ -135,6 +123,9 @@ func (c *Client) addOperationDeleteBucketAnalyticsConfigurationMiddlewares(stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketAnalyticsConfigurationUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketAnalyticsConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,16 +14,11 @@ import (
// Deletes the cors configuration information set for the bucket. To use this // Deletes the cors configuration information set for the bucket. To use this
// operation, you must have permission to perform the s3:PutBucketCORS action. The // operation, you must have permission to perform the s3:PutBucketCORS action. The
// bucket owner has this permission by default and can grant this permission to // bucket owner has this permission by default and can grant this permission to
// others. For information about cors, see Enabling Cross-Origin Resource Sharing // others. For information about cors , see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon S3 // in the Amazon S3 User Guide. The following operations are related to
// User Guide. Related Resources: // DeleteBucketCors :
// // - PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
// * PutBucketCors // - RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
//
// *
// RESTOPTIONSobject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)
func (c *Client) DeleteBucketCors(ctx context.Context, params *DeleteBucketCorsInput, optFns ...func(*Options)) (*DeleteBucketCorsOutput, error) { func (c *Client) DeleteBucketCors(ctx context.Context, params *DeleteBucketCorsInput, optFns ...func(*Options)) (*DeleteBucketCorsOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketCorsInput{} params = &DeleteBucketCorsInput{}
@ -118,6 +113,9 @@ func (c *Client) addOperationDeleteBucketCorsMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketCorsUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketCorsUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,24 +14,17 @@ import (
// This implementation of the DELETE action resets the default encryption for the // This implementation of the DELETE action resets the default encryption for the
// bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For // bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For
// information about the bucket default encryption feature, see Amazon S3 Bucket // information about the bucket default encryption feature, see Amazon S3 Bucket
// Default Encryption // Default Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the // in the Amazon S3 User Guide. To use this operation, you must have permissions to
// Amazon S3 User Guide. To use this operation, you must have permissions to
// perform the s3:PutEncryptionConfiguration action. The bucket owner has this // perform the s3:PutEncryptionConfiguration action. The bucket owner has this
// permission by default. The bucket owner can grant this permission to others. For // permission by default. The bucket owner can grant this permission to others. For
// more information about permissions, see Permissions Related to Bucket // more information about permissions, see Permissions Related to Bucket
// Subresource Operations // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to your Amazon S3 Resources // in the Amazon S3 User Guide. The following operations are related to
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) // DeleteBucketEncryption :
// in the Amazon S3 User Guide. Related Resources // - PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
// // - GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
// * PutBucketEncryption
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
//
// *
// GetBucketEncryption
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
func (c *Client) DeleteBucketEncryption(ctx context.Context, params *DeleteBucketEncryptionInput, optFns ...func(*Options)) (*DeleteBucketEncryptionOutput, error) { func (c *Client) DeleteBucketEncryption(ctx context.Context, params *DeleteBucketEncryptionInput, optFns ...func(*Options)) (*DeleteBucketEncryptionOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketEncryptionInput{} params = &DeleteBucketEncryptionInput{}
@ -127,6 +120,9 @@ func (c *Client) addOperationDeleteBucketEncryptionMiddlewares(stack *middleware
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketEncryptionUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketEncryptionUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -24,21 +24,11 @@ import (
// monitored and not eligible for auto-tiering. Smaller objects can be stored, but // monitored and not eligible for auto-tiering. Smaller objects can be stored, but
// they are always charged at the Frequent Access tier rates in the S3 // they are always charged at the Frequent Access tier rates in the S3
// Intelligent-Tiering storage class. For more information, see Storage class for // Intelligent-Tiering storage class. For more information, see Storage class for
// automatically optimizing frequently and infrequently accessed objects // automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). // . Operations related to DeleteBucketIntelligentTieringConfiguration include:
// Operations related to DeleteBucketIntelligentTieringConfiguration include: // - GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html)
// // - PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)
// * // - ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)
// GetBucketIntelligentTieringConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html)
//
// *
// PutBucketIntelligentTieringConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)
//
// *
// ListBucketIntelligentTieringConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)
func (c *Client) DeleteBucketIntelligentTieringConfiguration(ctx context.Context, params *DeleteBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { func (c *Client) DeleteBucketIntelligentTieringConfiguration(ctx context.Context, params *DeleteBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*DeleteBucketIntelligentTieringConfigurationOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketIntelligentTieringConfigurationInput{} params = &DeleteBucketIntelligentTieringConfigurationInput{}
@ -134,6 +124,9 @@ func (c *Client) addOperationDeleteBucketIntelligentTieringConfigurationMiddlewa
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketIntelligentTieringConfigurationUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketIntelligentTieringConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -16,25 +16,13 @@ import (
// s3:PutInventoryConfiguration action. The bucket owner has this permission by // s3:PutInventoryConfiguration action. The bucket owner has this permission by
// default. The bucket owner can grant this permission to others. For more // default. The bucket owner can grant this permission to others. For more
// information about permissions, see Permissions Related to Bucket Subresource // information about permissions, see Permissions Related to Bucket Subresource
// Operations // Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . For information about the Amazon S3 inventory feature, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // . Operations related to DeleteBucketInventoryConfiguration include:
// For information about the Amazon S3 inventory feature, see Amazon S3 Inventory // - GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). // - PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)
// Operations related to DeleteBucketInventoryConfiguration include: // - ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)
//
// *
// GetBucketInventoryConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html)
//
// *
// PutBucketInventoryConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)
//
// *
// ListBucketInventoryConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)
func (c *Client) DeleteBucketInventoryConfiguration(ctx context.Context, params *DeleteBucketInventoryConfigurationInput, optFns ...func(*Options)) (*DeleteBucketInventoryConfigurationOutput, error) { func (c *Client) DeleteBucketInventoryConfiguration(ctx context.Context, params *DeleteBucketInventoryConfigurationInput, optFns ...func(*Options)) (*DeleteBucketInventoryConfigurationOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketInventoryConfigurationInput{} params = &DeleteBucketInventoryConfigurationInput{}
@ -134,6 +122,9 @@ func (c *Client) addOperationDeleteBucketInventoryConfigurationMiddlewares(stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketInventoryConfigurationUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketInventoryConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -11,25 +11,19 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http" smithyhttp "github.com/aws/smithy-go/transport/http"
) )
// Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes // Deletes the lifecycle configuration from the specified bucket. Amazon S3
// all the lifecycle configuration rules in the lifecycle subresource associated // removes all the lifecycle configuration rules in the lifecycle subresource
// with the bucket. Your objects never expire, and Amazon S3 no longer // associated with the bucket. Your objects never expire, and Amazon S3 no longer
// automatically deletes any objects on the basis of rules contained in the deleted // automatically deletes any objects on the basis of rules contained in the deleted
// lifecycle configuration. To use this operation, you must have permission to // lifecycle configuration. To use this operation, you must have permission to
// perform the s3:PutLifecycleConfiguration action. By default, the bucket owner // perform the s3:PutLifecycleConfiguration action. By default, the bucket owner
// has this permission and the bucket owner can grant this permission to others. // has this permission and the bucket owner can grant this permission to others.
// There is usually some time lag before lifecycle configuration deletion is fully // There is usually some time lag before lifecycle configuration deletion is fully
// propagated to all the Amazon S3 systems. For more information about the object // propagated to all the Amazon S3 systems. For more information about the object
// expiration, see Elements to Describe Lifecycle Actions // expiration, see Elements to Describe Lifecycle Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). // . Related actions include:
// Related actions include: // - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
// // - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
// * PutBucketLifecycleConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
//
// *
// GetBucketLifecycleConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
func (c *Client) DeleteBucketLifecycle(ctx context.Context, params *DeleteBucketLifecycleInput, optFns ...func(*Options)) (*DeleteBucketLifecycleOutput, error) { func (c *Client) DeleteBucketLifecycle(ctx context.Context, params *DeleteBucketLifecycleInput, optFns ...func(*Options)) (*DeleteBucketLifecycleOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketLifecycleInput{} params = &DeleteBucketLifecycleInput{}
@ -124,6 +118,9 @@ func (c *Client) addOperationDeleteBucketLifecycleMiddlewares(stack *middleware.
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketLifecycleUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketLifecycleUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -17,30 +17,15 @@ import (
// permissions to perform the s3:PutMetricsConfiguration action. The bucket owner // permissions to perform the s3:PutMetricsConfiguration action. The bucket owner
// has this permission by default. The bucket owner can grant this permission to // has this permission by default. The bucket owner can grant this permission to
// others. For more information about permissions, see Permissions Related to // others. For more information about permissions, see Permissions Related to
// Bucket Subresource Operations // Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . For information about CloudWatch request metrics for Amazon S3, see
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
// For information about CloudWatch request metrics for Amazon S3, see Monitoring // . The following operations are related to DeleteBucketMetricsConfiguration :
// Metrics with Amazon CloudWatch // - GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). // - PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)
// The following operations are related to DeleteBucketMetricsConfiguration: // - ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)
// // - Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
// *
// GetBucketMetricsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html)
//
// *
// PutBucketMetricsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)
//
// *
// ListBucketMetricsConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)
//
// *
// Monitoring Metrics with Amazon CloudWatch
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
func (c *Client) DeleteBucketMetricsConfiguration(ctx context.Context, params *DeleteBucketMetricsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketMetricsConfigurationOutput, error) { func (c *Client) DeleteBucketMetricsConfiguration(ctx context.Context, params *DeleteBucketMetricsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketMetricsConfigurationOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketMetricsConfigurationInput{} params = &DeleteBucketMetricsConfigurationInput{}
@ -141,6 +126,9 @@ func (c *Client) addOperationDeleteBucketMetricsConfigurationMiddlewares(stack *
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketMetricsConfigurationUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketMetricsConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -13,16 +13,11 @@ import (
// Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you // Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you
// must have the s3:PutBucketOwnershipControls permission. For more information // must have the s3:PutBucketOwnershipControls permission. For more information
// about Amazon S3 permissions, see Specifying Permissions in a Policy // about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). // . For information about Amazon S3 Object Ownership, see Using Object Ownership (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html)
// For information about Amazon S3 Object Ownership, see Using Object Ownership // . The following operations are related to DeleteBucketOwnershipControls :
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). // - GetBucketOwnershipControls
// The following operations are related to DeleteBucketOwnershipControls: // - PutBucketOwnershipControls
//
// *
// GetBucketOwnershipControls
//
// * PutBucketOwnershipControls
func (c *Client) DeleteBucketOwnershipControls(ctx context.Context, params *DeleteBucketOwnershipControlsInput, optFns ...func(*Options)) (*DeleteBucketOwnershipControlsOutput, error) { func (c *Client) DeleteBucketOwnershipControls(ctx context.Context, params *DeleteBucketOwnershipControlsInput, optFns ...func(*Options)) (*DeleteBucketOwnershipControlsOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketOwnershipControlsInput{} params = &DeleteBucketOwnershipControlsInput{}
@ -117,6 +112,9 @@ func (c *Client) addOperationDeleteBucketOwnershipControlsMiddlewares(stack *mid
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketOwnershipControlsUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketOwnershipControlsUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -19,20 +19,17 @@ import (
// have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied // have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied
// error. If you have the correct permissions, but you're not using an identity // error. If you have the correct permissions, but you're not using an identity
// that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not // that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not
// Allowed error. As a security precaution, the root user of the Amazon Web // Allowed error. To ensure that bucket owners don't inadvertently lock themselves
// Services account that owns a bucket can always use this operation, even if the // out of their own buckets, the root principal in a bucket owner's Amazon Web
// policy explicitly denies the root user the ability to perform this action. For // Services account can perform the GetBucketPolicy , PutBucketPolicy , and
// more information about bucket policies, see Using Bucket Policies and // DeleteBucketPolicy API actions, even if their bucket policy explicitly denies
// UserPolicies // the root principal's access. Bucket owner root principals can only be blocked
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). The // from performing these API actions by VPC endpoint policies and Amazon Web
// following operations are related to DeleteBucketPolicy // Services Organizations policies. For more information about bucket policies, see
// // Using Bucket Policies and UserPolicies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html)
// * CreateBucket // . The following operations are related to DeleteBucketPolicy
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
// // - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
// *
// DeleteObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
func (c *Client) DeleteBucketPolicy(ctx context.Context, params *DeleteBucketPolicyInput, optFns ...func(*Options)) (*DeleteBucketPolicyOutput, error) { func (c *Client) DeleteBucketPolicy(ctx context.Context, params *DeleteBucketPolicyInput, optFns ...func(*Options)) (*DeleteBucketPolicyOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketPolicyInput{} params = &DeleteBucketPolicyInput{}
@ -127,6 +124,9 @@ func (c *Client) addOperationDeleteBucketPolicyMiddlewares(stack *middleware.Sta
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketPolicyUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketPolicyUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -15,22 +15,14 @@ import (
// you must have permissions to perform the s3:PutReplicationConfiguration action. // you must have permissions to perform the s3:PutReplicationConfiguration action.
// The bucket owner has these permissions by default and can grant it to others. // The bucket owner has these permissions by default and can grant it to others.
// For more information about permissions, see Permissions Related to Bucket // For more information about permissions, see Permissions Related to Bucket
// Subresource Operations // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . It can take a while for the deletion of a replication configuration to fully
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // propagate. For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html)
// It can take a while for the deletion of a replication configuration to fully // in the Amazon S3 User Guide. The following operations are related to
// propagate. For information about replication configuration, see Replication // DeleteBucketReplication :
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon // - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)
// S3 User Guide. The following operations are related to // - GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html)
// DeleteBucketReplication:
//
// * PutBucketReplication
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)
//
// *
// GetBucketReplication
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html)
func (c *Client) DeleteBucketReplication(ctx context.Context, params *DeleteBucketReplicationInput, optFns ...func(*Options)) (*DeleteBucketReplicationOutput, error) { func (c *Client) DeleteBucketReplication(ctx context.Context, params *DeleteBucketReplicationInput, optFns ...func(*Options)) (*DeleteBucketReplicationOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketReplicationInput{} params = &DeleteBucketReplicationInput{}
@ -125,6 +117,9 @@ func (c *Client) addOperationDeleteBucketReplicationMiddlewares(stack *middlewar
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketReplicationUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketReplicationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,14 +14,9 @@ import (
// Deletes the tags from the bucket. To use this operation, you must have // Deletes the tags from the bucket. To use this operation, you must have
// permission to perform the s3:PutBucketTagging action. By default, the bucket // permission to perform the s3:PutBucketTagging action. By default, the bucket
// owner has this permission and can grant this permission to others. The following // owner has this permission and can grant this permission to others. The following
// operations are related to DeleteBucketTagging: // operations are related to DeleteBucketTagging :
// // - GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
// * GetBucketTagging // - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
//
// *
// PutBucketTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
func (c *Client) DeleteBucketTagging(ctx context.Context, params *DeleteBucketTaggingInput, optFns ...func(*Options)) (*DeleteBucketTaggingOutput, error) { func (c *Client) DeleteBucketTagging(ctx context.Context, params *DeleteBucketTaggingInput, optFns ...func(*Options)) (*DeleteBucketTaggingOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketTaggingInput{} params = &DeleteBucketTaggingInput{}
@ -116,6 +111,9 @@ func (c *Client) addOperationDeleteBucketTaggingMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketTaggingUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketTaggingUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -21,16 +21,10 @@ import (
// bucket owners can grant other users permission to delete the website // bucket owners can grant other users permission to delete the website
// configuration by writing a bucket policy granting them the // configuration by writing a bucket policy granting them the
// S3:DeleteBucketWebsite permission. For more information about hosting websites, // S3:DeleteBucketWebsite permission. For more information about hosting websites,
// see Hosting Websites on Amazon S3 // see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). The // . The following operations are related to DeleteBucketWebsite :
// following operations are related to DeleteBucketWebsite: // - GetBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html)
// // - PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
// * GetBucketWebsite
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html)
//
// *
// PutBucketWebsite
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
func (c *Client) DeleteBucketWebsite(ctx context.Context, params *DeleteBucketWebsiteInput, optFns ...func(*Options)) (*DeleteBucketWebsiteOutput, error) { func (c *Client) DeleteBucketWebsite(ctx context.Context, params *DeleteBucketWebsiteInput, optFns ...func(*Options)) (*DeleteBucketWebsiteOutput, error) {
if params == nil { if params == nil {
params = &DeleteBucketWebsiteInput{} params = &DeleteBucketWebsiteInput{}
@ -125,6 +119,9 @@ func (c *Client) addOperationDeleteBucketWebsiteMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteBucketWebsiteUpdateEndpoint(stack, options); err != nil { if err = addDeleteBucketWebsiteUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -18,24 +18,19 @@ import (
// command was successful. To remove a specific version, you must use the version // command was successful. To remove a specific version, you must use the version
// Id subresource. Using this subresource permanently deletes the version. If the // Id subresource. Using this subresource permanently deletes the version. If the
// object deleted is a delete marker, Amazon S3 sets the response header, // object deleted is a delete marker, Amazon S3 sets the response header,
// x-amz-delete-marker, to true. If the object you want to delete is in a bucket // x-amz-delete-marker , to true. If the object you want to delete is in a bucket
// where the bucket versioning configuration is MFA Delete enabled, you must // where the bucket versioning configuration is MFA Delete enabled, you must
// include the x-amz-mfa request header in the DELETE versionId request. Requests // include the x-amz-mfa request header in the DELETE versionId request. Requests
// that include x-amz-mfa must use HTTPS. For more information about MFA Delete, // that include x-amz-mfa must use HTTPS. For more information about MFA Delete,
// see Using MFA Delete // see Using MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html). To see // . To see sample requests that use versioning, see Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete)
// sample requests that use versioning, see Sample Request // . You can delete objects by explicitly calling DELETE Object or configure its
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). // lifecycle ( PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)
// You can delete objects by explicitly calling DELETE Object or configure its // ) to enable Amazon S3 to remove them for you. If you want to block users or
// lifecycle (PutBucketLifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html))
// to enable Amazon S3 to remove them for you. If you want to block users or
// accounts from removing or deleting objects from your bucket, you must deny them // accounts from removing or deleting objects from your bucket, you must deny them
// the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration // the s3:DeleteObject , s3:DeleteObjectVersion , and s3:PutLifeCycleConfiguration
// actions. The following action is related to DeleteObject: // actions. The following action is related to DeleteObject :
// // - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
// * PutObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
func (c *Client) DeleteObject(ctx context.Context, params *DeleteObjectInput, optFns ...func(*Options)) (*DeleteObjectOutput, error) { func (c *Client) DeleteObject(ctx context.Context, params *DeleteObjectInput, optFns ...func(*Options)) (*DeleteObjectOutput, error) {
if params == nil { if params == nil {
params = &DeleteObjectInput{} params = &DeleteObjectInput{}
@ -53,23 +48,21 @@ func (c *Client) DeleteObject(ctx context.Context, params *DeleteObjectInput, op
type DeleteObjectInput struct { type DeleteObjectInput struct {
// The bucket name of the bucket containing the object. When using this action with // The bucket name of the bucket containing the object. When using this action
// an access point, you must direct requests to the access point hostname. The // with an access point, you must direct requests to the access point hostname. The
// access point hostname takes the form // access point hostname takes the form
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -89,16 +82,16 @@ type DeleteObjectInput struct {
// (access denied). // (access denied).
ExpectedBucketOwner *string ExpectedBucketOwner *string
// The concatenation of the authentication device's serial number, a space, and the // The concatenation of the authentication device's serial number, a space, and
// value that is displayed on your authentication device. Required to permanently // the value that is displayed on your authentication device. Required to
// delete a versioned object if versioning is configured with MFA delete enabled. // permanently delete a versioned object if versioning is configured with MFA
// delete enabled.
MFA *string MFA *string
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -185,6 +178,9 @@ func (c *Client) addOperationDeleteObjectMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteObjectUpdateEndpoint(stack, options); err != nil { if err = addDeleteObjectUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -11,21 +11,15 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http" smithyhttp "github.com/aws/smithy-go/transport/http"
) )
// Removes the entire tag set from the specified object. For more information about // Removes the entire tag set from the specified object. For more information
// managing object tags, see Object Tagging // about managing object tags, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). To use // . To use this operation, you must have permission to perform the
// this operation, you must have permission to perform the s3:DeleteObjectTagging // s3:DeleteObjectTagging action. To delete tags of a specific object version, add
// action. To delete tags of a specific object version, add the versionId query // the versionId query parameter in the request. You will need permission for the
// parameter in the request. You will need permission for the
// s3:DeleteObjectVersionTagging action. The following operations are related to // s3:DeleteObjectVersionTagging action. The following operations are related to
// DeleteObjectTagging: // DeleteObjectTagging :
// // - PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
// * PutObjectTagging // - GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
//
// *
// GetObjectTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
func (c *Client) DeleteObjectTagging(ctx context.Context, params *DeleteObjectTaggingInput, optFns ...func(*Options)) (*DeleteObjectTaggingOutput, error) { func (c *Client) DeleteObjectTagging(ctx context.Context, params *DeleteObjectTaggingInput, optFns ...func(*Options)) (*DeleteObjectTaggingOutput, error) {
if params == nil { if params == nil {
params = &DeleteObjectTaggingInput{} params = &DeleteObjectTaggingInput{}
@ -43,23 +37,21 @@ func (c *Client) DeleteObjectTagging(ctx context.Context, params *DeleteObjectTa
type DeleteObjectTaggingInput struct { type DeleteObjectTaggingInput struct {
// The bucket name containing the objects from which to remove the tags. When using // The bucket name containing the objects from which to remove the tags. When
// this action with an access point, you must direct requests to the access point // using this action with an access point, you must direct requests to the access
// hostname. The access point hostname takes the form // point hostname. The access point hostname takes the form
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -148,6 +140,9 @@ func (c *Client) addOperationDeleteObjectTaggingMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteObjectTaggingUpdateEndpoint(stack, options); err != nil { if err = addDeleteObjectTaggingUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -33,31 +33,16 @@ import (
// even if there are non-versioned objects you are trying to delete. If you provide // even if there are non-versioned objects you are trying to delete. If you provide
// an invalid token, whether there are versioned keys in the request or not, the // an invalid token, whether there are versioned keys in the request or not, the
// entire Multi-Object Delete request will fail. For information about MFA Delete, // entire Multi-Object Delete request will fail. For information about MFA Delete,
// see MFA Delete // see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete). // . Finally, the Content-MD5 header is required for all Multi-Object Delete
// Finally, the Content-MD5 header is required for all Multi-Object Delete
// requests. Amazon S3 uses the header value to ensure that your request body has // requests. Amazon S3 uses the header value to ensure that your request body has
// not been altered in transit. The following operations are related to // not been altered in transit. The following operations are related to
// DeleteObjects: // DeleteObjects :
// // - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
// * CreateMultipartUpload // - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
// // - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
// * // - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
// UploadPart
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
//
// *
// CompleteMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
//
// *
// ListParts
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
//
// *
// AbortMultipartUpload
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
func (c *Client) DeleteObjects(ctx context.Context, params *DeleteObjectsInput, optFns ...func(*Options)) (*DeleteObjectsOutput, error) { func (c *Client) DeleteObjects(ctx context.Context, params *DeleteObjectsInput, optFns ...func(*Options)) (*DeleteObjectsOutput, error) {
if params == nil { if params == nil {
params = &DeleteObjectsInput{} params = &DeleteObjectsInput{}
@ -75,23 +60,21 @@ func (c *Client) DeleteObjects(ctx context.Context, params *DeleteObjectsInput,
type DeleteObjectsInput struct { type DeleteObjectsInput struct {
// The bucket name containing the objects to delete. When using this action with an // The bucket name containing the objects to delete. When using this action with
// access point, you must direct requests to the access point hostname. The access // an access point, you must direct requests to the access point hostname. The
// point hostname takes the form // access point hostname takes the form
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When you use this action with Amazon S3 on // in the Amazon S3 User Guide. When you use this action with Amazon S3 on
// Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on // Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on
// Outposts hostname takes the form // Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -110,9 +93,8 @@ type DeleteObjectsInput struct {
// the SDK. This header will not provide any additional functionality if not using // the SDK. This header will not provide any additional functionality if not using
// the SDK. When sending this header, there must be a corresponding x-amz-checksum // the SDK. When sending this header, there must be a corresponding x-amz-checksum
// or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
// HTTP status code 400 Bad Request. For more information, see Checking object // HTTP status code 400 Bad Request . For more information, see Checking object
// integrity // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
// in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3
// ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must // ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must
// be the same for all parts and it match the checksum value supplied in the // be the same for all parts and it match the checksum value supplied in the
@ -124,16 +106,16 @@ type DeleteObjectsInput struct {
// (access denied). // (access denied).
ExpectedBucketOwner *string ExpectedBucketOwner *string
// The concatenation of the authentication device's serial number, a space, and the // The concatenation of the authentication device's serial number, a space, and
// value that is displayed on your authentication device. Required to permanently // the value that is displayed on your authentication device. Required to
// delete a versioned object if versioning is configured with MFA delete enabled. // permanently delete a versioned object if versioning is configured with MFA
// delete enabled.
MFA *string MFA *string
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -217,6 +199,9 @@ func (c *Client) addOperationDeleteObjectsMiddlewares(stack *middleware.Stack, o
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeleteObjectsInputChecksumMiddlewares(stack, options); err != nil { if err = addDeleteObjectsInputChecksumMiddlewares(stack, options); err != nil {
return err return err
} }
@ -247,8 +232,8 @@ func newServiceMetadataMiddleware_opDeleteObjects(region string) *awsmiddleware.
} }
} }
// getDeleteObjectsRequestAlgorithmMember gets the request checksum algorithm value // getDeleteObjectsRequestAlgorithmMember gets the request checksum algorithm
// provided as input. // value provided as input.
func getDeleteObjectsRequestAlgorithmMember(input interface{}) (string, bool) { func getDeleteObjectsRequestAlgorithmMember(input interface{}) (string, bool) {
in := input.(*DeleteObjectsInput) in := input.(*DeleteObjectsInput)
if len(in.ChecksumAlgorithm) == 0 { if len(in.ChecksumAlgorithm) == 0 {

View file

@ -11,30 +11,16 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http" smithyhttp "github.com/aws/smithy-go/transport/http"
) )
// Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this // Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use
// operation, you must have the s3:PutBucketPublicAccessBlock permission. For more // this operation, you must have the s3:PutBucketPublicAccessBlock permission. For
// information about permissions, see Permissions Related to Bucket Subresource // more information about permissions, see Permissions Related to Bucket
// Operations // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . The following operations are related to DeletePublicAccessBlock :
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)
// The following operations are related to DeletePublicAccessBlock: // - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
// // - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
// * Using Amazon // - GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)
// S3 Block Public Access
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)
//
// *
// GetPublicAccessBlock
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
//
// *
// PutPublicAccessBlock
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
//
// *
// GetBucketPolicyStatus
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)
func (c *Client) DeletePublicAccessBlock(ctx context.Context, params *DeletePublicAccessBlockInput, optFns ...func(*Options)) (*DeletePublicAccessBlockOutput, error) { func (c *Client) DeletePublicAccessBlock(ctx context.Context, params *DeletePublicAccessBlockInput, optFns ...func(*Options)) (*DeletePublicAccessBlockOutput, error) {
if params == nil { if params == nil {
params = &DeletePublicAccessBlockInput{} params = &DeletePublicAccessBlockInput{}
@ -129,6 +115,9 @@ func (c *Client) addOperationDeletePublicAccessBlockMiddlewares(stack *middlewar
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addDeletePublicAccessBlockUpdateEndpoint(stack, options); err != nil { if err = addDeletePublicAccessBlockUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,28 +14,23 @@ import (
// This implementation of the GET action uses the accelerate subresource to return // This implementation of the GET action uses the accelerate subresource to return
// the Transfer Acceleration state of a bucket, which is either Enabled or // the Transfer Acceleration state of a bucket, which is either Enabled or
// Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that // Suspended . Amazon S3 Transfer Acceleration is a bucket-level feature that
// enables you to perform faster data transfers to and from Amazon S3. To use this // enables you to perform faster data transfers to and from Amazon S3. To use this
// operation, you must have permission to perform the s3:GetAccelerateConfiguration // operation, you must have permission to perform the s3:GetAccelerateConfiguration
// action. The bucket owner has this permission by default. The bucket owner can // action. The bucket owner has this permission by default. The bucket owner can
// grant this permission to others. For more information about permissions, see // grant this permission to others. For more information about permissions, see
// Permissions Related to Bucket Subresource Operations // Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to your Amazon S3 Resources
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// in the Amazon S3 User Guide. You set the Transfer Acceleration state of an // in the Amazon S3 User Guide. You set the Transfer Acceleration state of an
// existing bucket to Enabled or Suspended by using the // existing bucket to Enabled or Suspended by using the
// PutBucketAccelerateConfiguration // PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)
// operation. A GET accelerate request does not return a state value for a bucket // operation. A GET accelerate request does not return a state value for a bucket
// that has no transfer acceleration state. A bucket has no Transfer Acceleration // that has no transfer acceleration state. A bucket has no Transfer Acceleration
// state if a state has never been set on the bucket. For more information about // state if a state has never been set on the bucket. For more information about
// transfer acceleration, see Transfer Acceleration // transfer acceleration, see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in // in the Amazon S3 User Guide. The following operations are related to
// the Amazon S3 User Guide. Related Resources // GetBucketAccelerateConfiguration :
// // - PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)
// * PutBucketAccelerateConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)
func (c *Client) GetBucketAccelerateConfiguration(ctx context.Context, params *GetBucketAccelerateConfigurationInput, optFns ...func(*Options)) (*GetBucketAccelerateConfigurationOutput, error) { func (c *Client) GetBucketAccelerateConfiguration(ctx context.Context, params *GetBucketAccelerateConfigurationInput, optFns ...func(*Options)) (*GetBucketAccelerateConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketAccelerateConfigurationInput{} params = &GetBucketAccelerateConfigurationInput{}
@ -134,6 +129,9 @@ func (c *Client) addOperationGetBucketAccelerateConfigurationMiddlewares(stack *
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketAccelerateConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketAccelerateConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -16,17 +16,21 @@ import (
// access control list (ACL) of a bucket. To use GET to return the ACL of the // access control list (ACL) of a bucket. To use GET to return the ACL of the
// bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is // bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is
// granted to the anonymous user, you can return the ACL of the bucket without // granted to the anonymous user, you can return the ACL of the bucket without
// using an authorization header. To use this API against an access point, provide // using an authorization header. To use this API operation against an access
// the alias of the access point in place of the bucket name. If your bucket uses // point, provide the alias of the access point in place of the bucket name. To use
// the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs // this API operation against an Object Lambda access point, provide the alias of
// are still supported and return the bucket-owner-full-control ACL with the owner // the Object Lambda access point in place of the bucket name. If the Object Lambda
// being the account that created the bucket. For more information, see // access point alias in a request is not valid, the error code
// Controlling object ownership and disabling ACLs // InvalidAccessPointAliasError is returned. For more information about
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) // InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// in the Amazon S3 User Guide. Related Resources // . If your bucket uses the bucket owner enforced setting for S3 Object Ownership,
// // requests to read ACLs are still supported and return the
// * ListObjects // bucket-owner-full-control ACL with the owner being the account that created the
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) // bucket. For more information, see Controlling object ownership and disabling
// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// in the Amazon S3 User Guide. The following operations are related to
// GetBucketAcl :
// - ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
func (c *Client) GetBucketAcl(ctx context.Context, params *GetBucketAclInput, optFns ...func(*Options)) (*GetBucketAclOutput, error) { func (c *Client) GetBucketAcl(ctx context.Context, params *GetBucketAclInput, optFns ...func(*Options)) (*GetBucketAclOutput, error) {
if params == nil { if params == nil {
params = &GetBucketAclInput{} params = &GetBucketAclInput{}
@ -44,7 +48,14 @@ func (c *Client) GetBucketAcl(ctx context.Context, params *GetBucketAclInput, op
type GetBucketAclInput struct { type GetBucketAclInput struct {
// Specifies the S3 bucket whose ACL is being requested. // Specifies the S3 bucket whose ACL is being requested. To use this API operation
// against an access point, provide the alias of the access point in place of the
// bucket name. To use this API operation against an Object Lambda access point,
// provide the alias of the Object Lambda access point in place of the bucket name.
// If the Object Lambda access point alias in a request is not valid, the error
// code InvalidAccessPointAliasError is returned. For more information about
// InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// .
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -128,6 +139,9 @@ func (c *Client) addOperationGetBucketAclMiddlewares(stack *middleware.Stack, op
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketAclUpdateEndpoint(stack, options); err != nil { if err = addGetBucketAclUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -17,26 +17,15 @@ import (
// operation, you must have permissions to perform the s3:GetAnalyticsConfiguration // operation, you must have permissions to perform the s3:GetAnalyticsConfiguration
// action. The bucket owner has this permission by default. The bucket owner can // action. The bucket owner has this permission by default. The bucket owner can
// grant this permission to others. For more information about permissions, see // grant this permission to others. For more information about permissions, see
// Permissions Related to Bucket Subresource Operations // Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// in the Amazon S3 User Guide. For information about Amazon S3 analytics feature, // in the Amazon S3 User Guide. For information about Amazon S3 analytics feature,
// see Amazon S3 Analytics Storage Class Analysis // see Amazon S3 Analytics Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) // in the Amazon S3 User Guide. The following operations are related to
// in the Amazon S3 User Guide. Related Resources // GetBucketAnalyticsConfiguration :
// // - DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html)
// * // - ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)
// DeleteBucketAnalyticsConfiguration // - PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html)
//
// *
// ListBucketAnalyticsConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)
//
// *
// PutBucketAnalyticsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)
func (c *Client) GetBucketAnalyticsConfiguration(ctx context.Context, params *GetBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*GetBucketAnalyticsConfigurationOutput, error) { func (c *Client) GetBucketAnalyticsConfiguration(ctx context.Context, params *GetBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*GetBucketAnalyticsConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketAnalyticsConfigurationInput{} params = &GetBucketAnalyticsConfigurationInput{}
@ -140,6 +129,9 @@ func (c *Client) addOperationGetBucketAnalyticsConfigurationMiddlewares(stack *m
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketAnalyticsConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketAnalyticsConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -15,18 +15,17 @@ import (
// Returns the Cross-Origin Resource Sharing (CORS) configuration information set // Returns the Cross-Origin Resource Sharing (CORS) configuration information set
// for the bucket. To use this operation, you must have permission to perform the // for the bucket. To use this operation, you must have permission to perform the
// s3:GetBucketCORS action. By default, the bucket owner has this permission and // s3:GetBucketCORS action. By default, the bucket owner has this permission and
// can grant it to others. To use this API against an access point, provide the // can grant it to others. To use this API operation against an access point,
// alias of the access point in place of the bucket name. For more information // provide the alias of the access point in place of the bucket name. To use this
// about CORS, see Enabling Cross-Origin Resource Sharing // API operation against an Object Lambda access point, provide the alias of the
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). The following // Object Lambda access point in place of the bucket name. If the Object Lambda
// operations are related to GetBucketCors: // access point alias in a request is not valid, the error code
// // InvalidAccessPointAliasError is returned. For more information about
// * PutBucketCors // InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) // . For more information about CORS, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html)
// // . The following operations are related to GetBucketCors :
// * // - PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
// DeleteBucketCors // - DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html)
func (c *Client) GetBucketCors(ctx context.Context, params *GetBucketCorsInput, optFns ...func(*Options)) (*GetBucketCorsOutput, error) { func (c *Client) GetBucketCors(ctx context.Context, params *GetBucketCorsInput, optFns ...func(*Options)) (*GetBucketCorsOutput, error) {
if params == nil { if params == nil {
params = &GetBucketCorsInput{} params = &GetBucketCorsInput{}
@ -44,7 +43,14 @@ func (c *Client) GetBucketCors(ctx context.Context, params *GetBucketCorsInput,
type GetBucketCorsInput struct { type GetBucketCorsInput struct {
// The bucket name for which to get the cors configuration. // The bucket name for which to get the cors configuration. To use this API
// operation against an access point, provide the alias of the access point in
// place of the bucket name. To use this API operation against an Object Lambda
// access point, provide the alias of the Object Lambda access point in place of
// the bucket name. If the Object Lambda access point alias in a request is not
// valid, the error code InvalidAccessPointAliasError is returned. For more
// information about InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// .
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -126,6 +132,9 @@ func (c *Client) addOperationGetBucketCorsMiddlewares(stack *middleware.Stack, o
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketCorsUpdateEndpoint(stack, options); err != nil { if err = addGetBucketCorsUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -16,25 +16,16 @@ import (
// default, all buckets have a default encryption configuration that uses // default, all buckets have a default encryption configuration that uses
// server-side encryption with Amazon S3 managed keys (SSE-S3). For information // server-side encryption with Amazon S3 managed keys (SSE-S3). For information
// about the bucket default encryption feature, see Amazon S3 Bucket Default // about the bucket default encryption feature, see Amazon S3 Bucket Default
// Encryption // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the // in the Amazon S3 User Guide. To use this operation, you must have permission to
// Amazon S3 User Guide. To use this operation, you must have permission to perform // perform the s3:GetEncryptionConfiguration action. The bucket owner has this
// the s3:GetEncryptionConfiguration action. The bucket owner has this permission // permission by default. The bucket owner can grant this permission to others. For
// by default. The bucket owner can grant this permission to others. For more // more information about permissions, see Permissions Related to Bucket
// information about permissions, see Permissions Related to Bucket Subresource // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// Operations // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // . The following operations are related to GetBucketEncryption :
// and Managing Access Permissions to Your Amazon S3 Resources // - PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // - DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)
// The following operations are related to GetBucketEncryption:
//
// *
// PutBucketEncryption
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
//
// *
// DeleteBucketEncryption
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)
func (c *Client) GetBucketEncryption(ctx context.Context, params *GetBucketEncryptionInput, optFns ...func(*Options)) (*GetBucketEncryptionOutput, error) { func (c *Client) GetBucketEncryption(ctx context.Context, params *GetBucketEncryptionInput, optFns ...func(*Options)) (*GetBucketEncryptionOutput, error) {
if params == nil { if params == nil {
params = &GetBucketEncryptionInput{} params = &GetBucketEncryptionInput{}
@ -134,6 +125,9 @@ func (c *Client) addOperationGetBucketEncryptionMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketEncryptionUpdateEndpoint(stack, options); err != nil { if err = addGetBucketEncryptionUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -25,21 +25,11 @@ import (
// monitored and not eligible for auto-tiering. Smaller objects can be stored, but // monitored and not eligible for auto-tiering. Smaller objects can be stored, but
// they are always charged at the Frequent Access tier rates in the S3 // they are always charged at the Frequent Access tier rates in the S3
// Intelligent-Tiering storage class. For more information, see Storage class for // Intelligent-Tiering storage class. For more information, see Storage class for
// automatically optimizing frequently and infrequently accessed objects // automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). // . Operations related to GetBucketIntelligentTieringConfiguration include:
// Operations related to GetBucketIntelligentTieringConfiguration include: // - DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html)
// // - PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)
// * // - ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)
// DeleteBucketIntelligentTieringConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html)
//
// *
// PutBucketIntelligentTieringConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)
//
// *
// ListBucketIntelligentTieringConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)
func (c *Client) GetBucketIntelligentTieringConfiguration(ctx context.Context, params *GetBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*GetBucketIntelligentTieringConfigurationOutput, error) { func (c *Client) GetBucketIntelligentTieringConfiguration(ctx context.Context, params *GetBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*GetBucketIntelligentTieringConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketIntelligentTieringConfigurationInput{} params = &GetBucketIntelligentTieringConfigurationInput{}
@ -139,6 +129,9 @@ func (c *Client) addOperationGetBucketIntelligentTieringConfigurationMiddlewares
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketIntelligentTieringConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketIntelligentTieringConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,27 +14,15 @@ import (
// Returns an inventory configuration (identified by the inventory configuration // Returns an inventory configuration (identified by the inventory configuration
// ID) from the bucket. To use this operation, you must have permissions to perform // ID) from the bucket. To use this operation, you must have permissions to perform
// the s3:GetInventoryConfiguration action. The bucket owner has this permission by // the s3:GetInventoryConfiguration action. The bucket owner has this permission
// default and can grant this permission to others. For more information about // by default and can grant this permission to others. For more information about
// permissions, see Permissions Related to Bucket Subresource Operations // permissions, see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . For information about the Amazon S3 inventory feature, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // . The following operations are related to GetBucketInventoryConfiguration :
// For information about the Amazon S3 inventory feature, see Amazon S3 Inventory // - DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). The // - ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)
// following operations are related to GetBucketInventoryConfiguration: // - PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)
//
// *
// DeleteBucketInventoryConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html)
//
// *
// ListBucketInventoryConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)
//
// *
// PutBucketInventoryConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)
func (c *Client) GetBucketInventoryConfiguration(ctx context.Context, params *GetBucketInventoryConfigurationInput, optFns ...func(*Options)) (*GetBucketInventoryConfigurationOutput, error) { func (c *Client) GetBucketInventoryConfiguration(ctx context.Context, params *GetBucketInventoryConfigurationInput, optFns ...func(*Options)) (*GetBucketInventoryConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketInventoryConfigurationInput{} params = &GetBucketInventoryConfigurationInput{}
@ -138,6 +126,9 @@ func (c *Client) addOperationGetBucketInventoryConfigurationMiddlewares(stack *m
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketInventoryConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketInventoryConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -12,51 +12,31 @@ import (
smithyhttp "github.com/aws/smithy-go/transport/http" smithyhttp "github.com/aws/smithy-go/transport/http"
) )
// Bucket lifecycle configuration now supports specifying a lifecycle rule using an // Bucket lifecycle configuration now supports specifying a lifecycle rule using
// object key name prefix, one or more object tags, or a combination of both. // an object key name prefix, one or more object tags, or a combination of both.
// Accordingly, this section describes the latest API. The response describes the // Accordingly, this section describes the latest API. The response describes the
// new filter element that you can use to specify a filter to select a subset of // new filter element that you can use to specify a filter to select a subset of
// objects to which the rule applies. If you are using a previous version of the // objects to which the rule applies. If you are using a previous version of the
// lifecycle configuration, it still works. For the earlier action, see // lifecycle configuration, it still works. For the earlier action, see
// GetBucketLifecycle // GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). // . Returns the lifecycle configuration information set on the bucket. For
// Returns the lifecycle configuration information set on the bucket. For // information about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
// information about lifecycle configuration, see Object Lifecycle Management // . To use this operation, you must have permission to perform the
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). To
// use this operation, you must have permission to perform the
// s3:GetLifecycleConfiguration action. The bucket owner has this permission, by // s3:GetLifecycleConfiguration action. The bucket owner has this permission, by
// default. The bucket owner can grant this permission to others. For more // default. The bucket owner can grant this permission to others. For more
// information about permissions, see Permissions Related to Bucket Subresource // information about permissions, see Permissions Related to Bucket Subresource
// Operations // Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . GetBucketLifecycleConfiguration has the following special error:
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // - Error code: NoSuchLifecycleConfiguration
// GetBucketLifecycleConfiguration has the following special error: // - Description: The lifecycle configuration does not exist.
// - HTTP Status Code: 404 Not Found
// - SOAP Fault Code Prefix: Client
// //
// * Error code: // The following operations are related to GetBucketLifecycleConfiguration :
// NoSuchLifecycleConfiguration // - GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)
// // - PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)
// * Description: The lifecycle configuration does // - DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
// not exist.
//
// * HTTP Status Code: 404 Not Found
//
// * SOAP Fault Code Prefix:
// Client
//
// The following operations are related to
// GetBucketLifecycleConfiguration:
//
// * GetBucketLifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)
//
// *
// PutBucketLifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)
//
// *
// DeleteBucketLifecycle
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
func (c *Client) GetBucketLifecycleConfiguration(ctx context.Context, params *GetBucketLifecycleConfigurationInput, optFns ...func(*Options)) (*GetBucketLifecycleConfigurationOutput, error) { func (c *Client) GetBucketLifecycleConfiguration(ctx context.Context, params *GetBucketLifecycleConfigurationInput, optFns ...func(*Options)) (*GetBucketLifecycleConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketLifecycleConfigurationInput{} params = &GetBucketLifecycleConfigurationInput{}
@ -155,6 +135,9 @@ func (c *Client) addOperationGetBucketLifecycleConfigurationMiddlewares(stack *m
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketLifecycleConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketLifecycleConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -21,22 +21,20 @@ import (
// Returns the Region the bucket resides in. You set the bucket's Region using the // Returns the Region the bucket resides in. You set the bucket's Region using the
// LocationConstraint request parameter in a CreateBucket request. For more // LocationConstraint request parameter in a CreateBucket request. For more
// information, see CreateBucket // information, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). To use // . To use this API operation against an access point, provide the alias of the
// this implementation of the operation, you must be the bucket owner. To use this // access point in place of the bucket name. To use this API operation against an
// API against an access point, provide the alias of the access point in place of // Object Lambda access point, provide the alias of the Object Lambda access point
// the bucket name. For requests made using Amazon Web Services Signature Version 4 // in place of the bucket name. If the Object Lambda access point alias in a
// (SigV4), we recommend that you use HeadBucket // request is not valid, the error code InvalidAccessPointAliasError is returned.
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) to return // For more information about InvalidAccessPointAliasError , see List of Error
// the bucket Region instead of GetBucketLocation. The following operations are // Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// related to GetBucketLocation: // . We recommend that you use HeadBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)
// // to return the Region that a bucket resides in. For backward compatibility,
// * GetObject // Amazon S3 continues to support GetBucketLocation. The following operations are
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // related to GetBucketLocation :
// // - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
// * // - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
// CreateBucket
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
func (c *Client) GetBucketLocation(ctx context.Context, params *GetBucketLocationInput, optFns ...func(*Options)) (*GetBucketLocationOutput, error) { func (c *Client) GetBucketLocation(ctx context.Context, params *GetBucketLocationInput, optFns ...func(*Options)) (*GetBucketLocationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketLocationInput{} params = &GetBucketLocationInput{}
@ -54,7 +52,14 @@ func (c *Client) GetBucketLocation(ctx context.Context, params *GetBucketLocatio
type GetBucketLocationInput struct { type GetBucketLocationInput struct {
// The name of the bucket for which to get the location. // The name of the bucket for which to get the location. To use this API operation
// against an access point, provide the alias of the access point in place of the
// bucket name. To use this API operation against an Object Lambda access point,
// provide the alias of the Object Lambda access point in place of the bucket name.
// If the Object Lambda access point alias in a request is not valid, the error
// code InvalidAccessPointAliasError is returned. For more information about
// InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// .
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -70,9 +75,8 @@ type GetBucketLocationInput struct {
type GetBucketLocationOutput struct { type GetBucketLocationOutput struct {
// Specifies the Region where the bucket resides. For a list of all the Amazon S3 // Specifies the Region where the bucket resides. For a list of all the Amazon S3
// supported location constraints by Region, see Regions and Endpoints // supported location constraints by Region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). Buckets in // . Buckets in Region us-east-1 have a LocationConstraint of null .
// Region us-east-1 have a LocationConstraint of null.
LocationConstraint types.BucketLocationConstraint LocationConstraint types.BucketLocationConstraint
// Metadata pertaining to the operation's result. // Metadata pertaining to the operation's result.
@ -141,6 +145,9 @@ func (c *Client) addOperationGetBucketLocationMiddlewares(stack *middleware.Stac
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketLocationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketLocationUpdateEndpoint(stack, options); err != nil {
return err return err
} }
@ -224,9 +231,9 @@ func newServiceMetadataMiddleware_opGetBucketLocation(region string) *awsmiddlew
} }
} }
// getGetBucketLocationBucketMember returns a pointer to string denoting a provided // getGetBucketLocationBucketMember returns a pointer to string denoting a
// bucket member valueand a boolean indicating if the input has a modeled bucket // provided bucket member valueand a boolean indicating if the input has a modeled
// name, // bucket name,
func getGetBucketLocationBucketMember(input interface{}) (*string, bool) { func getGetBucketLocationBucketMember(input interface{}) (*string, bool) {
in := input.(*GetBucketLocationInput) in := input.(*GetBucketLocationInput)
if in.Bucket == nil { if in.Bucket == nil {

View file

@ -13,15 +13,10 @@ import (
) )
// Returns the logging status of a bucket and the permissions users have to view // Returns the logging status of a bucket and the permissions users have to view
// and modify that status. The following operations are related to // and modify that status. The following operations are related to GetBucketLogging
// GetBucketLogging: // :
// // - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
// * CreateBucket // - PutBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
//
// *
// PutBucketLogging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html)
func (c *Client) GetBucketLogging(ctx context.Context, params *GetBucketLoggingInput, optFns ...func(*Options)) (*GetBucketLoggingOutput, error) { func (c *Client) GetBucketLogging(ctx context.Context, params *GetBucketLoggingInput, optFns ...func(*Options)) (*GetBucketLoggingOutput, error) {
if params == nil { if params == nil {
params = &GetBucketLoggingInput{} params = &GetBucketLoggingInput{}
@ -54,10 +49,9 @@ type GetBucketLoggingInput struct {
type GetBucketLoggingOutput struct { type GetBucketLoggingOutput struct {
// Describes where logs are stored and the prefix that Amazon S3 assigns to all log // Describes where logs are stored and the prefix that Amazon S3 assigns to all
// object keys for a bucket. For more information, see PUT Bucket logging // log object keys for a bucket. For more information, see PUT Bucket logging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in // in the Amazon S3 API Reference.
// the Amazon S3 API Reference.
LoggingEnabled *types.LoggingEnabled LoggingEnabled *types.LoggingEnabled
// Metadata pertaining to the operation's result. // Metadata pertaining to the operation's result.
@ -123,6 +117,9 @@ func (c *Client) addOperationGetBucketLoggingMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketLoggingUpdateEndpoint(stack, options); err != nil { if err = addGetBucketLoggingUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -18,30 +18,15 @@ import (
// s3:GetMetricsConfiguration action. The bucket owner has this permission by // s3:GetMetricsConfiguration action. The bucket owner has this permission by
// default. The bucket owner can grant this permission to others. For more // default. The bucket owner can grant this permission to others. For more
// information about permissions, see Permissions Related to Bucket Subresource // information about permissions, see Permissions Related to Bucket Subresource
// Operations // Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)
// and Managing Access Permissions to Your Amazon S3 Resources // . For information about CloudWatch request metrics for Amazon S3, see
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
// For information about CloudWatch request metrics for Amazon S3, see Monitoring // . The following operations are related to GetBucketMetricsConfiguration :
// Metrics with Amazon CloudWatch // - PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). // - DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html)
// The following operations are related to GetBucketMetricsConfiguration: // - ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)
// // - Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
// *
// PutBucketMetricsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)
//
// *
// DeleteBucketMetricsConfiguration
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html)
//
// *
// ListBucketMetricsConfigurations
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)
//
// *
// Monitoring Metrics with Amazon CloudWatch
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html)
func (c *Client) GetBucketMetricsConfiguration(ctx context.Context, params *GetBucketMetricsConfigurationInput, optFns ...func(*Options)) (*GetBucketMetricsConfigurationOutput, error) { func (c *Client) GetBucketMetricsConfiguration(ctx context.Context, params *GetBucketMetricsConfigurationInput, optFns ...func(*Options)) (*GetBucketMetricsConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketMetricsConfigurationInput{} params = &GetBucketMetricsConfigurationInput{}
@ -146,6 +131,9 @@ func (c *Client) addOperationGetBucketMetricsConfigurationMiddlewares(stack *mid
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketMetricsConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketMetricsConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -17,17 +17,18 @@ import (
// element. By default, you must be the bucket owner to read the notification // element. By default, you must be the bucket owner to read the notification
// configuration of a bucket. However, the bucket owner can use a bucket policy to // configuration of a bucket. However, the bucket owner can use a bucket policy to
// grant permission to other users to read this configuration with the // grant permission to other users to read this configuration with the
// s3:GetBucketNotification permission. To use this API against an access point, // s3:GetBucketNotification permission. To use this API operation against an access
// provide the alias of the access point in place of the bucket name. For more // point, provide the alias of the access point in place of the bucket name. To use
// information about setting and reading the notification configuration on a // this API operation against an Object Lambda access point, provide the alias of
// bucket, see Setting Up Notification of Bucket Events // the Object Lambda access point in place of the bucket name. If the Object Lambda
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). For // access point alias in a request is not valid, the error code
// more information about bucket policies, see Using Bucket Policies // InvalidAccessPointAliasError is returned. For more information about
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). The // InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// following action is related to GetBucketNotification: // . For more information about setting and reading the notification configuration
// // on a bucket, see Setting Up Notification of Bucket Events (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// * PutBucketNotification // . For more information about bucket policies, see Using Bucket Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) // . The following action is related to GetBucketNotification :
// - PutBucketNotification (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html)
func (c *Client) GetBucketNotificationConfiguration(ctx context.Context, params *GetBucketNotificationConfigurationInput, optFns ...func(*Options)) (*GetBucketNotificationConfigurationOutput, error) { func (c *Client) GetBucketNotificationConfiguration(ctx context.Context, params *GetBucketNotificationConfigurationInput, optFns ...func(*Options)) (*GetBucketNotificationConfigurationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketNotificationConfigurationInput{} params = &GetBucketNotificationConfigurationInput{}
@ -45,7 +46,14 @@ func (c *Client) GetBucketNotificationConfiguration(ctx context.Context, params
type GetBucketNotificationConfigurationInput struct { type GetBucketNotificationConfigurationInput struct {
// The name of the bucket for which to get the notification configuration. // The name of the bucket for which to get the notification configuration. To use
// this API operation against an access point, provide the alias of the access
// point in place of the bucket name. To use this API operation against an Object
// Lambda access point, provide the alias of the Object Lambda access point in
// place of the bucket name. If the Object Lambda access point alias in a request
// is not valid, the error code InvalidAccessPointAliasError is returned. For more
// information about InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// .
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -58,8 +66,8 @@ type GetBucketNotificationConfigurationInput struct {
noSmithyDocumentSerde noSmithyDocumentSerde
} }
// A container for specifying the notification configuration of the bucket. If this // A container for specifying the notification configuration of the bucket. If
// element is empty, notifications are turned off for the bucket. // this element is empty, notifications are turned off for the bucket.
type GetBucketNotificationConfigurationOutput struct { type GetBucketNotificationConfigurationOutput struct {
// Enables delivery of events to Amazon EventBridge. // Enables delivery of events to Amazon EventBridge.
@ -69,12 +77,12 @@ type GetBucketNotificationConfigurationOutput struct {
// them. // them.
LambdaFunctionConfigurations []types.LambdaFunctionConfiguration LambdaFunctionConfigurations []types.LambdaFunctionConfiguration
// The Amazon Simple Queue Service queues to publish messages to and the events for // The Amazon Simple Queue Service queues to publish messages to and the events
// which to publish messages. // for which to publish messages.
QueueConfigurations []types.QueueConfiguration QueueConfigurations []types.QueueConfiguration
// The topic to which notifications are sent and the events for which notifications // The topic to which notifications are sent and the events for which
// are generated. // notifications are generated.
TopicConfigurations []types.TopicConfiguration TopicConfigurations []types.TopicConfiguration
// Metadata pertaining to the operation's result. // Metadata pertaining to the operation's result.
@ -140,6 +148,9 @@ func (c *Client) addOperationGetBucketNotificationConfigurationMiddlewares(stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketNotificationConfigurationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketNotificationConfigurationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,16 +14,11 @@ import (
// Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you // Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you
// must have the s3:GetBucketOwnershipControls permission. For more information // must have the s3:GetBucketOwnershipControls permission. For more information
// about Amazon S3 permissions, see Specifying permissions in a policy // about Amazon S3 permissions, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). // . For information about Amazon S3 Object Ownership, see Using Object Ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)
// For information about Amazon S3 Object Ownership, see Using Object Ownership // . The following operations are related to GetBucketOwnershipControls :
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). // - PutBucketOwnershipControls
// The following operations are related to GetBucketOwnershipControls: // - DeleteBucketOwnershipControls
//
// *
// PutBucketOwnershipControls
//
// * DeleteBucketOwnershipControls
func (c *Client) GetBucketOwnershipControls(ctx context.Context, params *GetBucketOwnershipControlsInput, optFns ...func(*Options)) (*GetBucketOwnershipControlsOutput, error) { func (c *Client) GetBucketOwnershipControls(ctx context.Context, params *GetBucketOwnershipControlsInput, optFns ...func(*Options)) (*GetBucketOwnershipControlsOutput, error) {
if params == nil { if params == nil {
params = &GetBucketOwnershipControlsInput{} params = &GetBucketOwnershipControlsInput{}
@ -123,6 +118,9 @@ func (c *Client) addOperationGetBucketOwnershipControlsMiddlewares(stack *middle
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketOwnershipControlsUpdateEndpoint(stack, options); err != nil { if err = addGetBucketOwnershipControlsUpdateEndpoint(stack, options); err != nil {
return err return err
} }
@ -150,9 +148,9 @@ func newServiceMetadataMiddleware_opGetBucketOwnershipControls(region string) *a
} }
} }
// getGetBucketOwnershipControlsBucketMember returns a pointer to string denoting a // getGetBucketOwnershipControlsBucketMember returns a pointer to string denoting
// provided bucket member valueand a boolean indicating if the input has a modeled // a provided bucket member valueand a boolean indicating if the input has a
// bucket name, // modeled bucket name,
func getGetBucketOwnershipControlsBucketMember(input interface{}) (*string, bool) { func getGetBucketOwnershipControlsBucketMember(input interface{}) (*string, bool) {
in := input.(*GetBucketOwnershipControlsInput) in := input.(*GetBucketOwnershipControlsInput)
if in.Bucket == nil { if in.Bucket == nil {

View file

@ -18,17 +18,23 @@ import (
// If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access // If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access
// Denied error. If you have the correct permissions, but you're not using an // Denied error. If you have the correct permissions, but you're not using an
// identity that belongs to the bucket owner's account, Amazon S3 returns a 405 // identity that belongs to the bucket owner's account, Amazon S3 returns a 405
// Method Not Allowed error. As a security precaution, the root user of the Amazon // Method Not Allowed error. To ensure that bucket owners don't inadvertently lock
// Web Services account that owns a bucket can always use this operation, even if // themselves out of their own buckets, the root principal in a bucket owner's
// the policy explicitly denies the root user the ability to perform this action. // Amazon Web Services account can perform the GetBucketPolicy , PutBucketPolicy ,
// To use this API against an access point, provide the alias of the access point // and DeleteBucketPolicy API actions, even if their bucket policy explicitly
// in place of the bucket name. For more information about bucket policies, see // denies the root principal's access. Bucket owner root principals can only be
// Using Bucket Policies and User Policies // blocked from performing these API actions by VPC endpoint policies and Amazon
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). The // Web Services Organizations policies. To use this API operation against an access
// following action is related to GetBucketPolicy: // point, provide the alias of the access point in place of the bucket name. To use
// // this API operation against an Object Lambda access point, provide the alias of
// * GetObject // the Object Lambda access point in place of the bucket name. If the Object Lambda
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // access point alias in a request is not valid, the error code
// InvalidAccessPointAliasError is returned. For more information about
// InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// . For more information about bucket policies, see Using Bucket Policies and
// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html)
// . The following action is related to GetBucketPolicy :
// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInput, optFns ...func(*Options)) (*GetBucketPolicyOutput, error) { func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInput, optFns ...func(*Options)) (*GetBucketPolicyOutput, error) {
if params == nil { if params == nil {
params = &GetBucketPolicyInput{} params = &GetBucketPolicyInput{}
@ -46,7 +52,14 @@ func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInp
type GetBucketPolicyInput struct { type GetBucketPolicyInput struct {
// The bucket name for which to get the bucket policy. // The bucket name for which to get the bucket policy. To use this API operation
// against an access point, provide the alias of the access point in place of the
// bucket name. To use this API operation against an Object Lambda access point,
// provide the alias of the Object Lambda access point in place of the bucket name.
// If the Object Lambda access point alias in a request is not valid, the error
// code InvalidAccessPointAliasError is returned. For more information about
// InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
// .
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -127,6 +140,9 @@ func (c *Client) addOperationGetBucketPolicyMiddlewares(stack *middleware.Stack,
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketPolicyUpdateEndpoint(stack, options); err != nil { if err = addGetBucketPolicyUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -15,28 +15,14 @@ import (
// Retrieves the policy status for an Amazon S3 bucket, indicating whether the // Retrieves the policy status for an Amazon S3 bucket, indicating whether the
// bucket is public. In order to use this operation, you must have the // bucket is public. In order to use this operation, you must have the
// s3:GetBucketPolicyStatus permission. For more information about Amazon S3 // s3:GetBucketPolicyStatus permission. For more information about Amazon S3
// permissions, see Specifying Permissions in a Policy // permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). // . For more information about when Amazon S3 considers a bucket public, see The
// For more information about when Amazon S3 considers a bucket public, see The // Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
// Meaning of "Public" // . The following operations are related to GetBucketPolicyStatus :
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). // - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)
// The following operations are related to GetBucketPolicyStatus: // - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
// // - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
// * Using Amazon // - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html)
// S3 Block Public Access
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)
//
// *
// GetPublicAccessBlock
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
//
// *
// PutPublicAccessBlock
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
//
// *
// DeletePublicAccessBlock
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html)
func (c *Client) GetBucketPolicyStatus(ctx context.Context, params *GetBucketPolicyStatusInput, optFns ...func(*Options)) (*GetBucketPolicyStatusOutput, error) { func (c *Client) GetBucketPolicyStatus(ctx context.Context, params *GetBucketPolicyStatusInput, optFns ...func(*Options)) (*GetBucketPolicyStatusOutput, error) {
if params == nil { if params == nil {
params = &GetBucketPolicyStatusInput{} params = &GetBucketPolicyStatusInput{}
@ -135,6 +121,9 @@ func (c *Client) addOperationGetBucketPolicyStatusMiddlewares(stack *middleware.
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketPolicyStatusUpdateEndpoint(stack, options); err != nil { if err = addGetBucketPolicyStatusUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -15,26 +15,17 @@ import (
// Returns the replication configuration of a bucket. It can take a while to // Returns the replication configuration of a bucket. It can take a while to
// propagate the put or delete a replication configuration to all Amazon S3 // propagate the put or delete a replication configuration to all Amazon S3
// systems. Therefore, a get request soon after put or delete can return a wrong // systems. Therefore, a get request soon after put or delete can return a wrong
// result. For information about replication configuration, see Replication // result. For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon // in the Amazon S3 User Guide. This action requires permissions for the
// S3 User Guide. This action requires permissions for the
// s3:GetReplicationConfiguration action. For more information about permissions, // s3:GetReplicationConfiguration action. For more information about permissions,
// see Using Bucket Policies and User Policies // see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). If // . If you include the Filter element in a replication configuration, you must
// you include the Filter element in a replication configuration, you must also // also include the DeleteMarkerReplication and Priority elements. The response
// include the DeleteMarkerReplication and Priority elements. The response also // also returns those elements. For information about GetBucketReplication errors,
// returns those elements. For information about GetBucketReplication errors, see // see List of replication-related error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList)
// List of replication-related error codes // The following operations are related to GetBucketReplication :
// (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) // - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)
// The following operations are related to GetBucketReplication: // - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html)
//
// *
// PutBucketReplication
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)
//
// *
// DeleteBucketReplication
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html)
func (c *Client) GetBucketReplication(ctx context.Context, params *GetBucketReplicationInput, optFns ...func(*Options)) (*GetBucketReplicationOutput, error) { func (c *Client) GetBucketReplication(ctx context.Context, params *GetBucketReplicationInput, optFns ...func(*Options)) (*GetBucketReplicationOutput, error) {
if params == nil { if params == nil {
params = &GetBucketReplicationInput{} params = &GetBucketReplicationInput{}
@ -134,6 +125,9 @@ func (c *Client) addOperationGetBucketReplicationMiddlewares(stack *middleware.S
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketReplicationUpdateEndpoint(stack, options); err != nil { if err = addGetBucketReplicationUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -13,13 +13,10 @@ import (
) )
// Returns the request payment configuration of a bucket. To use this version of // Returns the request payment configuration of a bucket. To use this version of
// the operation, you must be the bucket owner. For more information, see Requester // the operation, you must be the bucket owner. For more information, see
// Pays Buckets // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). The // . The following operations are related to GetBucketRequestPayment :
// following operations are related to GetBucketRequestPayment: // - ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
//
// * ListObjects
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
func (c *Client) GetBucketRequestPayment(ctx context.Context, params *GetBucketRequestPaymentInput, optFns ...func(*Options)) (*GetBucketRequestPaymentOutput, error) { func (c *Client) GetBucketRequestPayment(ctx context.Context, params *GetBucketRequestPaymentInput, optFns ...func(*Options)) (*GetBucketRequestPaymentOutput, error) {
if params == nil { if params == nil {
params = &GetBucketRequestPaymentInput{} params = &GetBucketRequestPaymentInput{}
@ -118,6 +115,9 @@ func (c *Client) addOperationGetBucketRequestPaymentMiddlewares(stack *middlewar
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketRequestPaymentUpdateEndpoint(stack, options); err != nil { if err = addGetBucketRequestPaymentUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -16,21 +16,12 @@ import (
// have permission to perform the s3:GetBucketTagging action. By default, the // have permission to perform the s3:GetBucketTagging action. By default, the
// bucket owner has this permission and can grant this permission to others. // bucket owner has this permission and can grant this permission to others.
// GetBucketTagging has the following special error: // GetBucketTagging has the following special error:
// - Error code: NoSuchTagSet
// - Description: There is no tag set associated with the bucket.
// //
// * Error code: NoSuchTagSet // The following operations are related to GetBucketTagging :
// // - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
// * // - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
// Description: There is no tag set associated with the bucket.
//
// The following
// operations are related to GetBucketTagging:
//
// * PutBucketTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
//
// *
// DeleteBucketTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
func (c *Client) GetBucketTagging(ctx context.Context, params *GetBucketTaggingInput, optFns ...func(*Options)) (*GetBucketTaggingOutput, error) { func (c *Client) GetBucketTagging(ctx context.Context, params *GetBucketTaggingInput, optFns ...func(*Options)) (*GetBucketTaggingOutput, error) {
if params == nil { if params == nil {
params = &GetBucketTaggingInput{} params = &GetBucketTaggingInput{}
@ -131,6 +122,9 @@ func (c *Client) addOperationGetBucketTaggingMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketTaggingUpdateEndpoint(stack, options); err != nil { if err = addGetBucketTaggingUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,21 +14,12 @@ import (
// Returns the versioning state of a bucket. To retrieve the versioning state of a // Returns the versioning state of a bucket. To retrieve the versioning state of a
// bucket, you must be the bucket owner. This implementation also returns the MFA // bucket, you must be the bucket owner. This implementation also returns the MFA
// Delete status of the versioning state. If the MFA Delete status is enabled, the // Delete status of the versioning state. If the MFA Delete status is enabled , the
// bucket owner must use an authentication device to change the versioning state of // bucket owner must use an authentication device to change the versioning state of
// the bucket. The following operations are related to GetBucketVersioning: // the bucket. The following operations are related to GetBucketVersioning :
// // - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
// * // - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
// GetObject // - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
//
// *
// PutObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
//
// *
// DeleteObject
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
func (c *Client) GetBucketVersioning(ctx context.Context, params *GetBucketVersioningInput, optFns ...func(*Options)) (*GetBucketVersioningOutput, error) { func (c *Client) GetBucketVersioning(ctx context.Context, params *GetBucketVersioningInput, optFns ...func(*Options)) (*GetBucketVersioningOutput, error) {
if params == nil { if params == nil {
params = &GetBucketVersioningInput{} params = &GetBucketVersioningInput{}
@ -132,6 +123,9 @@ func (c *Client) addOperationGetBucketVersioningMiddlewares(stack *middleware.St
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketVersioningUpdateEndpoint(stack, options); err != nil { if err = addGetBucketVersioningUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -14,20 +14,14 @@ import (
// Returns the website configuration for a bucket. To host website on Amazon S3, // Returns the website configuration for a bucket. To host website on Amazon S3,
// you can configure a bucket as website by adding a website configuration. For // you can configure a bucket as website by adding a website configuration. For
// more information about hosting websites, see Hosting Websites on Amazon S3 // more information about hosting websites, see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). This GET // . This GET action requires the S3:GetBucketWebsite permission. By default, only
// action requires the S3:GetBucketWebsite permission. By default, only the bucket // the bucket owner can read the bucket website configuration. However, bucket
// owner can read the bucket website configuration. However, bucket owners can // owners can allow other users to read the website configuration by writing a
// allow other users to read the website configuration by writing a bucket policy // bucket policy granting them the S3:GetBucketWebsite permission. The following
// granting them the S3:GetBucketWebsite permission. The following operations are // operations are related to GetBucketWebsite :
// related to DeleteBucketWebsite: // - DeleteBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html)
// // - PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
// * DeleteBucketWebsite
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html)
//
// *
// PutBucketWebsite
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
func (c *Client) GetBucketWebsite(ctx context.Context, params *GetBucketWebsiteInput, optFns ...func(*Options)) (*GetBucketWebsiteOutput, error) { func (c *Client) GetBucketWebsite(ctx context.Context, params *GetBucketWebsiteInput, optFns ...func(*Options)) (*GetBucketWebsiteOutput, error) {
if params == nil { if params == nil {
params = &GetBucketWebsiteInput{} params = &GetBucketWebsiteInput{}
@ -63,7 +57,7 @@ type GetBucketWebsiteOutput struct {
// The object key name of the website error document to use for 4XX class errors. // The object key name of the website error document to use for 4XX class errors.
ErrorDocument *types.ErrorDocument ErrorDocument *types.ErrorDocument
// The name of the index document for the website (for example index.html). // The name of the index document for the website (for example index.html ).
IndexDocument *types.IndexDocument IndexDocument *types.IndexDocument
// Specifies the redirect behavior of all requests to a website endpoint of an // Specifies the redirect behavior of all requests to a website endpoint of an
@ -136,6 +130,9 @@ func (c *Client) addOperationGetBucketWebsiteMiddlewares(stack *middleware.Stack
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetBucketWebsiteUpdateEndpoint(stack, options); err != nil { if err = addGetBucketWebsiteUpdateEndpoint(stack, options); err != nil {
return err return err
} }

View file

@ -15,88 +15,66 @@ import (
"time" "time"
) )
// Retrieves objects from Amazon S3. To use GET, you must have READ access to the // Retrieves objects from Amazon S3. To use GET , you must have READ access to the
// object. If you grant READ access to the anonymous user, you can return the // object. If you grant READ access to the anonymous user, you can return the
// object without using an authorization header. An Amazon S3 bucket has no // object without using an authorization header. An Amazon S3 bucket has no
// directory hierarchy such as you would find in a typical computer file system. // directory hierarchy such as you would find in a typical computer file system.
// You can, however, create a logical hierarchy by using object key names that // You can, however, create a logical hierarchy by using object key names that
// imply a folder structure. For example, instead of naming an object sample.jpg, // imply a folder structure. For example, instead of naming an object sample.jpg ,
// you can name it photos/2006/February/sample.jpg. To get an object from such a // you can name it photos/2006/February/sample.jpg . To get an object from such a
// logical hierarchy, specify the full key name for the object in the GET // logical hierarchy, specify the full key name for the object in the GET
// operation. For a virtual hosted-style request example, if you have the object // operation. For a virtual hosted-style request example, if you have the object
// photos/2006/February/sample.jpg, specify the resource as // photos/2006/February/sample.jpg , specify the resource as
// /photos/2006/February/sample.jpg. For a path-style request example, if you have // /photos/2006/February/sample.jpg . For a path-style request example, if you have
// the object photos/2006/February/sample.jpg in the bucket named examplebucket, // the object photos/2006/February/sample.jpg in the bucket named examplebucket ,
// specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more // specify the resource as /examplebucket/photos/2006/February/sample.jpg . For
// information about request types, see HTTP Host Header Bucket Specification // more information about request types, see HTTP Host Header Bucket Specification (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket). // . For more information about returning the ACL of an object, see GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)
// For more information about returning the ACL of an object, see GetObjectAcl // . If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). If the // Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
// object you are retrieving is stored in the S3 Glacier or S3 Glacier Deep Archive // Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
// storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep // must first restore a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)
// Archive tiers, before you can retrieve the object you must first restore a copy // . Otherwise, this action returns an InvalidObjectState error. For information
// using RestoreObject // about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). // . Encryption request headers, like x-amz-server-side-encryption , should not be
// Otherwise, this action returns an InvalidObjectState error. For information
// about restoring archived objects, see Restoring Archived Objects
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html).
// Encryption request headers, like x-amz-server-side-encryption, should not be
// sent for GET requests if your object uses server-side encryption with KMS keys // sent for GET requests if your object uses server-side encryption with KMS keys
// (SSE-KMS) or server-side encryption with Amazon S3managed encryption keys // (SSE-KMS) or server-side encryption with Amazon S3managed encryption keys
// (SSE-S3). If your object does use these types of keys, youll get an HTTP 400 // (SSE-S3). If your object does use these types of keys, youll get an HTTP 400
// BadRequest error. If you encrypt an object by using server-side encryption with // BadRequest error. If you encrypt an object by using server-side encryption with
// customer-provided encryption keys (SSE-C) when you store the object in Amazon // customer-provided encryption keys (SSE-C) when you store the object in Amazon
// S3, then when you GET the object, you must use the following headers: // S3, then when you GET the object, you must use the following headers:
// - x-amz-server-side-encryption-customer-algorithm
// - x-amz-server-side-encryption-customer-key
// - x-amz-server-side-encryption-customer-key-MD5
// //
// * // For more information about SSE-C, see Server-Side Encryption (Using
// x-amz-server-side-encryption-customer-algorithm // Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
// // . Assuming you have the relevant permission to read object tags, the response
// * // also returns the x-amz-tagging-count header that provides the count of number
// x-amz-server-side-encryption-customer-key // of tags associated with the object. You can use GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
// // to retrieve the tag set associated with an object. Permissions You need the
// *
// x-amz-server-side-encryption-customer-key-MD5
//
// For more information about SSE-C,
// see Server-Side Encryption (Using Customer-Provided Encryption Keys)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
// Assuming you have the relevant permission to read object tags, the response also
// returns the x-amz-tagging-count header that provides the count of number of tags
// associated with the object. You can use GetObjectTagging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) to
// retrieve the tag set associated with an object. Permissions You need the
// relevant read object (or version) permission for this operation. For more // relevant read object (or version) permission for this operation. For more
// information, see Specifying Permissions in a Policy // information, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). If // . If the object you request does not exist, the error Amazon S3 returns depends
// the object you request does not exist, the error Amazon S3 returns depends on // on whether you also have the s3:ListBucket permission.
// whether you also have the s3:ListBucket permission. // - If you have the s3:ListBucket permission on the bucket, Amazon S3 will
// return an HTTP status code 404 ("no such key") error.
// - If you dont have the s3:ListBucket permission, Amazon S3 will return an
// HTTP status code 403 ("access denied") error.
// //
// * If you have the // Versioning By default, the GET action returns the current version of an object.
// s3:ListBucket permission on the bucket, Amazon S3 will return an HTTP status // To return a different version, use the versionId subresource.
// code 404 ("no such key") error. // - If you supply a versionId , you need the s3:GetObjectVersion permission to
// access a specific version of an object. If you request a specific version, you
// do not need to have the s3:GetObject permission. If you request the current
// version without a specific version ID, only s3:GetObject permission is
// required. s3:GetObjectVersion permission won't be required.
// - If the current version of the object is a delete marker, Amazon S3 behaves
// as if the object was deleted and includes x-amz-delete-marker: true in the
// response.
// //
// * If you dont have the s3:ListBucket // For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)
// permission, Amazon S3 will return an HTTP status code 403 ("access denied") // . Overriding Response Header Values There are times when you want to override
// error.
//
// Versioning By default, the GET action returns the current version of an
// object. To return a different version, use the versionId subresource.
//
// * If you
// supply a versionId, you need the s3:GetObjectVersion permission to access a
// specific version of an object. If you request a specific version, you do not
// need to have the s3:GetObject permission. If you request the current version
// without a specific version ID, only s3:GetObject permission is required.
// s3:GetObjectVersion permission won't be required.
//
// * If the current version of
// the object is a delete marker, Amazon S3 behaves as if the object was deleted
// and includes x-amz-delete-marker: true in the response.
//
// For more information
// about versioning, see PutBucketVersioning
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html).
// Overriding Response Header Values There are times when you want to override
// certain response header values in a GET response. For example, you might // certain response header values in a GET response. For example, you might
// override the Content-Disposition response header value in your GET request. You // override the Content-Disposition response header value in your GET request. You
// can override values for a set of response headers using the following query // can override values for a set of response headers using the following query
@ -104,44 +82,30 @@ import (
// that is, when status code 200 OK is returned. The set of headers you can // that is, when status code 200 OK is returned. The set of headers you can
// override using these parameters is a subset of the headers that Amazon S3 // override using these parameters is a subset of the headers that Amazon S3
// accepts when you create an object. The response headers that you can override // accepts when you create an object. The response headers that you can override
// for the GET response are Content-Type, Content-Language, Expires, Cache-Control, // for the GET response are Content-Type , Content-Language , Expires ,
// Content-Disposition, and Content-Encoding. To override these header values in // Cache-Control , Content-Disposition , and Content-Encoding . To override these
// the GET response, you use the following request parameters. You must sign the // header values in the GET response, you use the following request parameters. You
// request, either using an Authorization header or a presigned URL, when using // must sign the request, either using an Authorization header or a presigned URL,
// these parameters. They cannot be used with an unsigned (anonymous) request. // when using these parameters. They cannot be used with an unsigned (anonymous)
// request.
// - response-content-type
// - response-content-language
// - response-expires
// - response-cache-control
// - response-content-disposition
// - response-content-encoding
// //
// * // Overriding Response Header Values If both of the If-Match and
// response-content-type // If-Unmodified-Since headers are present in the request as follows: If-Match
// // condition evaluates to true , and; If-Unmodified-Since condition evaluates to
// * response-content-language // false ; then, S3 returns 200 OK and the data requested. If both of the
// // If-None-Match and If-Modified-Since headers are present in the request as
// * response-expires // follows: If-None-Match condition evaluates to false , and; If-Modified-Since
// // condition evaluates to true ; then, S3 returns 304 Not Modified response code.
// * // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232)
// response-cache-control // . The following operations are related to GetObject :
// // - ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
// * response-content-disposition // - GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)
//
// *
// response-content-encoding
//
// Additional Considerations about Request Headers If
// both of the If-Match and If-Unmodified-Since headers are present in the request
// as follows: If-Match condition evaluates to true, and; If-Unmodified-Since
// condition evaluates to false; then, S3 returns 200 OK and the data requested. If
// both of the If-None-Match and If-Modified-Since headers are present in the
// request as follows: If-None-Match condition evaluates to false, and;
// If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified
// response code. For more information about conditional requests, see RFC 7232
// (https://tools.ietf.org/html/rfc7232). The following operations are related to
// GetObject:
//
// * ListBuckets
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
//
// *
// GetObjectAcl
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)
func (c *Client) GetObject(ctx context.Context, params *GetObjectInput, optFns ...func(*Options)) (*GetObjectOutput, error) { func (c *Client) GetObject(ctx context.Context, params *GetObjectInput, optFns ...func(*Options)) (*GetObjectOutput, error) {
if params == nil { if params == nil {
params = &GetObjectInput{} params = &GetObjectInput{}
@ -165,19 +129,17 @@ type GetObjectInput struct {
// AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this
// action with an access point through the Amazon Web Services SDKs, you provide // action with an access point through the Amazon Web Services SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using access points // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. When using an Object Lambda access point the // in the Amazon S3 User Guide. When using an Object Lambda access point the
// hostname takes the form // hostname takes the form
// AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. When you use // AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. When you use
// this action with Amazon S3 on Outposts, you must direct requests to the S3 on // this action with Amazon S3 on Outposts, you must direct requests to the S3 on
// Outposts hostname. The S3 on Outposts hostname takes the form // Outposts hostname. The S3 on Outposts hostname takes the form
// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you
// use this action with S3 on Outposts through the Amazon Web Services SDKs, you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you
// provide the Outposts access point ARN in place of the bucket name. For more // provide the Outposts access point ARN in place of the bucket name. For more
// information about S3 on Outposts ARNs, see What is S3 on Outposts // information about S3 on Outposts ARNs, see What is S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // in the Amazon S3 User Guide.
// Amazon S3 User Guide.
// //
// This member is required. // This member is required.
Bucket *string Bucket *string
@ -216,17 +178,16 @@ type GetObjectInput struct {
// Useful for downloading just a part of an object. // Useful for downloading just a part of an object.
PartNumber int32 PartNumber int32
// Downloads the specified range bytes of an object. For more information about the // Downloads the specified range bytes of an object. For more information about
// HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range // the HTTP Range header, see
// (https://www.rfc-editor.org/rfc/rfc9110.html#name-range). Amazon S3 doesn't // https://www.rfc-editor.org/rfc/rfc9110.html#name-range (https://www.rfc-editor.org/rfc/rfc9110.html#name-range)
// support retrieving multiple ranges of data per GET request. // . Amazon S3 doesn't support retrieving multiple ranges of data per GET request.
Range *string Range *string
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from Requester Pays buckets, see Downloading Objects // about downloading objects from Requester Pays buckets, see Downloading Objects
// in Requester Pays Buckets // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
RequestPayer types.RequestPayer RequestPayer types.RequestPayer
@ -252,11 +213,11 @@ type GetObjectInput struct {
// AES256). // AES256).
SSECustomerAlgorithm *string SSECustomerAlgorithm *string
// Specifies the customer-provided encryption key for Amazon S3 used to encrypt the // Specifies the customer-provided encryption key for Amazon S3 used to encrypt
// data. This value is used to decrypt the object when recovering it and must match // the data. This value is used to decrypt the object when recovering it and must
// the one used when storing the data. The key must be appropriate for use with the // match the one used when storing the data. The key must be appropriate for use
// algorithm specified in the x-amz-server-side-encryption-customer-algorithm // with the algorithm specified in the
// header. // x-amz-server-side-encryption-customer-algorithm header.
SSECustomerKey *string SSECustomerKey *string
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
@ -288,32 +249,28 @@ type GetObjectOutput struct {
// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32 *string ChecksumCRC32 *string
// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumCRC32C *string ChecksumCRC32C *string
// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA1 *string ChecksumSHA1 *string
// The base64-encoded, 256-bit SHA-256 digest of the object. This will only be // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be
// present if it was uploaded with the object. With multipart uploads, this may not // present if it was uploaded with the object. With multipart uploads, this may not
// be a checksum value of the object. For more information about how checksums are // be a checksum value of the object. For more information about how checksums are
// calculated with multipart uploads, see Checking object integrity // calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
ChecksumSHA256 *string ChecksumSHA256 *string
@ -394,13 +351,14 @@ type GetObjectOutput struct {
// restored object copy. // restored object copy.
Restore *string Restore *string
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header confirming the encryption algorithm used. // requested, the response will include this header confirming the encryption
// algorithm used.
SSECustomerAlgorithm *string SSECustomerAlgorithm *string
// If server-side encryption with a customer-provided encryption key was requested, // If server-side encryption with a customer-provided encryption key was
// the response will include this header to provide round-trip message integrity // requested, the response will include this header to provide round-trip message
// verification of the customer-provided encryption key. // integrity verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string SSECustomerKeyMD5 *string
// If present, specifies the ID of the Amazon Web Services Key Management Service // If present, specifies the ID of the Amazon Web Services Key Management Service
@ -409,7 +367,7 @@ type GetObjectOutput struct {
SSEKMSKeyId *string SSEKMSKeyId *string
// The server-side encryption algorithm used when storing this object in Amazon S3 // The server-side encryption algorithm used when storing this object in Amazon S3
// (for example, AES256, aws:kms). // (for example, AES256, aws:kms ).
ServerSideEncryption types.ServerSideEncryption ServerSideEncryption types.ServerSideEncryption
// Provides storage class information of the object. Amazon S3 returns this header // Provides storage class information of the object. Amazon S3 returns this header
@ -487,6 +445,9 @@ func (c *Client) addOperationGetObjectMiddlewares(stack *middleware.Stack, optio
if err = addMetadataRetrieverMiddleware(stack); err != nil { if err = addMetadataRetrieverMiddleware(stack); err != nil {
return err return err
} }
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addGetObjectOutputChecksumMiddlewares(stack, options); err != nil { if err = addGetObjectOutputChecksumMiddlewares(stack, options); err != nil {
return err return err
} }

Some files were not shown because too many files have changed in this diff Show more