vendor: make vendor-update

This commit is contained in:
Aliaksandr Valialkin 2023-02-08 08:55:14 -08:00
parent 6c21b6ec09
commit c9d2934bb4
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1
164 changed files with 6596 additions and 2060 deletions

56
go.mod
View file

@ -4,8 +4,8 @@ go 1.19
require ( require (
cloud.google.com/go/storage v1.29.0 cloud.google.com/go/storage v1.29.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0
github.com/VictoriaMetrics/fastcache v1.12.0 github.com/VictoriaMetrics/fastcache v1.12.0
// Do not use the original github.com/valyala/fasthttp because of issues // Do not use the original github.com/valyala/fasthttp because of issues
@ -13,10 +13,10 @@ require (
github.com/VictoriaMetrics/fasthttp v1.1.0 github.com/VictoriaMetrics/fasthttp v1.1.0
github.com/VictoriaMetrics/metrics v1.23.1 github.com/VictoriaMetrics/metrics v1.23.1
github.com/VictoriaMetrics/metricsql v0.51.2 github.com/VictoriaMetrics/metricsql v0.51.2
github.com/aws/aws-sdk-go-v2 v1.17.3 github.com/aws/aws-sdk-go-v2 v1.17.4
github.com/aws/aws-sdk-go-v2/config v1.18.11 github.com/aws/aws-sdk-go-v2/config v1.18.12
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.50 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.51
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.1 github.com/aws/aws-sdk-go-v2/service/s3 v1.30.2
github.com/cespare/xxhash/v2 v2.2.0 github.com/cespare/xxhash/v2 v2.2.0
github.com/cheggaaa/pb/v3 v3.1.0 github.com/cheggaaa/pb/v3 v3.1.0
github.com/gogo/protobuf v1.3.2 github.com/gogo/protobuf v1.3.2
@ -25,7 +25,7 @@ require (
github.com/influxdata/influxdb v1.11.0 github.com/influxdata/influxdb v1.11.0
github.com/klauspost/compress v1.15.15 github.com/klauspost/compress v1.15.15
github.com/prometheus/prometheus v0.42.0 github.com/prometheus/prometheus v0.42.0
github.com/urfave/cli/v2 v2.24.2 github.com/urfave/cli/v2 v2.24.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
@ -34,7 +34,7 @@ require (
github.com/valyala/quicktemplate v1.7.0 github.com/valyala/quicktemplate v1.7.0
golang.org/x/net v0.5.0 golang.org/x/net v0.5.0
golang.org/x/oauth2 v0.4.0 golang.org/x/oauth2 v0.4.0
golang.org/x/sys v0.4.0 golang.org/x/sys v0.5.0
google.golang.org/api v0.109.0 google.golang.org/api v0.109.0
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
) )
@ -47,21 +47,21 @@ require (
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // 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.192 // indirect github.com/aws/aws-sdk-go v1.44.196 // 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.11 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.12 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.18 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.19 // 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.22 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.23 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.21 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.22 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.12.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.12.1 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.1 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.18.2 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 // 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
@ -100,20 +100,20 @@ 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.38.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.39.0 // indirect
go.opentelemetry.io/otel v1.12.0 // indirect go.opentelemetry.io/otel v1.13.0 // indirect
go.opentelemetry.io/otel/metric v0.35.0 // indirect go.opentelemetry.io/otel/metric v0.36.0 // indirect
go.opentelemetry.io/otel/trace v1.12.0 // indirect go.opentelemetry.io/otel/trace v1.13.0 // indirect
go.uber.org/atomic v1.10.0 // indirect go.uber.org/atomic v1.10.0 // indirect
go.uber.org/goleak v1.2.0 // indirect go.uber.org/goleak v1.2.0 // indirect
golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 // indirect golang.org/x/exp v0.0.0-20230206171751-46f607a40771 // indirect
golang.org/x/sync v0.1.0 // indirect golang.org/x/sync v0.1.0 // indirect
golang.org/x/text v0.6.0 // indirect golang.org/x/text v0.6.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-20230131230820-1c016267d619 // indirect google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 // indirect
google.golang.org/grpc v1.52.3 // indirect google.golang.org/grpc v1.53.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
) )

114
go.sum
View file

@ -43,13 +43,13 @@ cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31
cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4=
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.3.0 h1:VuHAcMq8pU1IWNT/m5yRaGqbK0BiQKHT8X4DTp9CHdI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1 h1:gVXuXcWd1i4C2Ruxe321aU+IKGaStvGB/S90PUPB/W8=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0/go.mod h1:tZoQYdDZNOiIjdSn0dVWVfl0NEPGOJqVLzSrcFk4Is0= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1/go.mod h1:DffdKW9RFqa5VgmsjUOsS7UE7eiA5iAvYUs63bhKQ0M=
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.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1 h1:YvQv9Mz6T8oR5ypQOL6erY0Z5t71ak1uHV4QFokCOZk= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY=
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1/go.mod h1:c6WvOhtmjNUWbLfOG1qxM/q0SPvQNSVJvolm+C52dIU= 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.22 h1:/GblQdIudfEM3AWWZ0mrYJQSd7JS4S/Mbzh6F0ov0Xc=
@ -87,44 +87,44 @@ github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu
github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo=
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.192 h1:KL54vCxRd5v5XBGjnF3FelzXXwl+aWHDmDTihFmRNgM= github.com/aws/aws-sdk-go v1.44.196 h1:e3h9M7fpnRHwHOohYmYjgVbcCBvkxKwZiT7fGrxRn28=
github.com/aws/aws-sdk-go v1.44.192/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go v1.44.196/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v1.17.3 h1:shN7NlnVzvDUgPQ+1rLMSxY8OWRNDRYtiqe0p/PgrhY= github.com/aws/aws-sdk-go-v2 v1.17.4 h1:wyC6p9Yfq6V2y98wfDsj6OnNQa4w2BLGCLIxzNhwOGY=
github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.17.4/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.11 h1:7dJD4p90OyKYIihuwe/LbHfP7uw4yVm5P1hel+b8UZ8= github.com/aws/aws-sdk-go-v2/config v1.18.12 h1:fKs/I4wccmfrNRO9rdrbMO1NgLxct6H9rNMiPdBxHWw=
github.com/aws/aws-sdk-go-v2/config v1.18.11/go.mod h1:FTGKr2F7QL7IAg22dUmEB5NWpLPAOuhrONzXe7TVhAI= github.com/aws/aws-sdk-go-v2/config v1.18.12/go.mod h1:J36fOhj1LQBr+O4hJCiT8FwVvieeoSGOtPuvhKlsNu8=
github.com/aws/aws-sdk-go-v2/credentials v1.13.11 h1:QnvlTut1XXKkX4aaM1Ydo5X0CHriv0jmLu8PTVQQJJo= github.com/aws/aws-sdk-go-v2/credentials v1.13.12 h1:Cb+HhuEnV19zHRaYYVglwvdHGMJWbdsyP4oHhw04xws=
github.com/aws/aws-sdk-go-v2/credentials v1.13.11/go.mod h1:tqAm4JmQaShel+Qi38hmd1QglSnnxaYt50k/9yGQzzc= github.com/aws/aws-sdk-go-v2/credentials v1.13.12/go.mod h1:37HG2MBroXK3jXfxVGtbM2J48ra2+Ltu+tmwr/jO0KA=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21 h1:j9wi1kQ8b+e0FBVHxCqCGo4kxDU175hoDHcWAi0sauU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 h1:3aMfcTmoXtTZnaT86QlVaYh+BRMbvrrmZwIQ5jWqCZQ=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21/go.mod h1:ugwW57Z5Z48bpvUyZuaPy4Kv+vEfJWnIrky7RmkBvJg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22/go.mod h1:YGSIJyQ6D6FjKMQh16hVFSIUD54L4F7zTGePqYMYYJU=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.50 h1:ATgzvd5DaU0Evx7yvaUw2ftwiWDGnDN59zowPF3jDk0= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.51 h1:iTFYCAdKzSAjGnVIUe88Hxvix0uaBqr0Rv7qJEOX5hE=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.50/go.mod h1:naA7bah2/dpvwlyWysZ7yaAYI1Ti73HPaDyGryfJuiU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.51/go.mod h1:7Grl2gV+dx9SWrUIgwwlUvU40t7+lOSbx34XwfmsTkY=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 h1:I3cakv2Uy1vNmmhRQmFptYDxOvBnwCdNwyw63N0RaRU= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 h1:r+XwaCLpIvCKjBIYy/HVZujQS9tsz5ohHG3ZIe0wKoE=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28/go.mod h1:3lwChorpIM/BhImY/hy+Z6jekmN92cXGPI1QJasVPYY=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 h1:5NbbMrIzmUn/TXFqAle6mgrH5m9cOvMLRGL7pnG8tRE= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 h1:7AwGYXDdqRQYsluvKFmWoqpcOQJ4bH634SkYf3FNj/A=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22/go.mod h1:EqK7gVrIGAHyZItrD1D8B0ilgwMD1GiWAmbU4u/JHNk=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28 h1:KeTxcGdNnQudb46oOl4d90f2I33DF/c6q3RnZAmvQdQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 h1:J4xhFd6zHhdF9jPP0FQJ6WknzBboGMBNjKOv4iTuw4A=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28/go.mod h1:yRZVr/iT0AqyHeep00SZ4YfBAKojXz08w3XMBscdi0c= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29/go.mod h1:TwuqRBGzxjQJIwH16/fOZodwXt2Zxa9/cwJC5ke4j7s=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.18 h1:H/mF2LNWwX00lD6FlYfKpLLZgUW7oIzCBkig78x4Xok= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.19 h1:FGvpyTg2LKEmMrLlpjOgkoNp9XF5CGeyAyo33LdqZW8=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.18/go.mod h1:T2Ku+STrYQ1zIkL1wMvj8P3wWQaaCMKNdz70MT2FLfE= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.19/go.mod h1:8W88sW3PjamQpKFUQvHWWKay6ARsNvZnzU7+a4apubw=
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.22 h1:kv5vRAl00tozRxSnI0IszPWGXsJOyA7hmEUHFYqsyvw= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.23 h1:c5+bNdV8E4fIPteWx4HZSkqI07oY9exbfQ7JH7Yx4PI=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.22/go.mod h1:Od+GU5+Yx41gryN/ZGZzAJMZ9R1yn6lgA0fD5Lo5SkQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.23/go.mod h1:1jcUfF+FAOEwtIcNiHPaV4TSoZqkUIPzrohmD7fb95c=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 h1:5C6XgTViSb0bunmU57b3CT+MhxULqHH2721FVA+/kDM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 h1:LjFQf8hFuMO22HkV5VWGLBvmCLBCLPivUAmpdpnp4Vs=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21/go.mod h1:lRToEJsn+DRA9lW4O9L9+/3hjTkUzlzyzHqn8MTds5k= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22/go.mod h1:xt0Au8yPIwYXf/GYPy/vl4K3CgwhfQMYbrH7DlUUIws=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.21 h1:vY5siRXvW5TrOKm2qKEf9tliBfdLxdfy0i02LOcmqUo= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.22 h1:ISLJ2BKXe4zzyZ7mp5ewKECiw0U7KpLgS3S6OxY9Cm0=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.21/go.mod h1:WZvNXT1XuH8dnJM0HvOlvk+RNn7NbAPvA/ACO0QarSc= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.22/go.mod h1:QFVbqK54XArazLvn2wvWMRBi/jGrWii46qbr5DyPGjc=
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.1 h1:kIgvVY7PHx4gIb0na/Q9gTWJWauTwhKdaqJjX8PkIY8= github.com/aws/aws-sdk-go-v2/service/s3 v1.30.2 h1:5EQWIFO+Hc8E2hFcXQJ1vm6ufl/PMt/6RVRDZRju2vM=
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.1/go.mod h1:L2l2/q76teehcW7YEsgsDjqdsDTERJeX3nOMIFlgGUE= github.com/aws/aws-sdk-go-v2/service/s3 v1.30.2/go.mod h1:SXDHd6fI2RhqB7vmAzyYQCTQnpZrIprVJvYxpzW3JAM=
github.com/aws/aws-sdk-go-v2/service/sso v1.12.0 h1:/2gzjhQowRLarkkBOGPXSRnb8sQ2RVsjdG1C/UliK/c= github.com/aws/aws-sdk-go-v2/service/sso v1.12.1 h1:lQKN/LNa3qqu2cDOQZybP7oL4nMGGiFqob0jZJaR8/4=
github.com/aws/aws-sdk-go-v2/service/sso v1.12.0/go.mod h1:wo/B7uUm/7zw/dWhBJ4FXuw1sySU5lyIhVg1Bu2yL9A= github.com/aws/aws-sdk-go-v2/service/sso v1.12.1/go.mod h1:IgV8l3sj22nQDd5qcAGY0WenwCzCphqdbFOpfktZPrI=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0 h1:Jfly6mRxk2ZOSlbCvZfKNS7TukSx1mIzhSsqZ/IGSZI= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.1 h1:0bLhH6DRAqox+g0LatcjGKjjhU6Eudyys6HB6DJVPj8=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0/go.mod h1:TZSH7xLO7+phDtViY/KUp9WGCJMQkLJ/VpgkTFd5gh8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.1/go.mod h1:O1YSOg3aekZibh2SngvCRRG+cRHKKlYgxf/JBF/Kr/k=
github.com/aws/aws-sdk-go-v2/service/sts v1.18.2 h1:J/4wIaGInCEYCGhTSruxCxeoA5cy91a+JT7cHFKFSHQ= github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 h1:s49mSnsBZEXjfGBkRfmK+nPqzT7Lt3+t2SmAKNyHblw=
github.com/aws/aws-sdk-go-v2/service/sts v1.18.2/go.mod h1:+lGbb3+1ugwKrNTWcf2RT05Xmp543B06zDFTwiTLp7I= github.com/aws/aws-sdk-go-v2/service/sts v1.18.3/go.mod h1:b+psTJn33Q4qGoDaM7ZiOVVG8uVjGI6HaZ8WBHdgDgU=
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=
@ -143,7 +143,7 @@ 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-20220314180256-7f1daf1720fc h1:PYXxkRUBGUMa5xgMVMDl62vEklZvKpVaxQeN9ie7Hfk= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA=
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=
@ -421,8 +421,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
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/urfave/cli/v2 v2.24.2 h1:q1VA+ofZ8SWfEKB9xXHUD4QZaeI9e+ItEqSbfH2JBXk= github.com/urfave/cli/v2 v2.24.3 h1:7Q1w8VN8yE0MJEHP06bv89PjYsN4IHWED2s1v/Zlfm0=
github.com/urfave/cli/v2 v2.24.2/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= github.com/urfave/cli/v2 v2.24.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=
@ -454,14 +454,14 @@ 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.38.0 h1:rTxmym+VN9f6ajzNtITVgyvZrNbpLt3NHr3suLLHLEQ= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.39.0 h1:vFEBG7SieZJzvnRWQ81jxpuEqe6J8Ex+hgc9CqOTzHc=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.38.0/go.mod h1:w6xNm+kC506KNs5cknSHal6dtdRnc4uema0uN9GSQc0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.39.0/go.mod h1:9rgTcOKdIhDOC0IcAu8a+R+FChqSUBihKpM1lVNi6T0=
go.opentelemetry.io/otel v1.12.0 h1:IgfC7kqQrRccIKuB7Cl+SRUmsKbEwSGPr0Eu+/ht1SQ= go.opentelemetry.io/otel v1.13.0 h1:1ZAKnNQKwBBxFtww/GwxNUyTf0AxkZzrukO8MeXqe4Y=
go.opentelemetry.io/otel v1.12.0/go.mod h1:geaoz0L0r1BEOR81k7/n9W4TCXYCJ7bPO7K374jQHG0= go.opentelemetry.io/otel v1.13.0/go.mod h1:FH3RtdZCzRkJYFTCsAKDy9l/XYjMdNv6QrkFFB8DvVg=
go.opentelemetry.io/otel/metric v0.35.0 h1:aPT5jk/w7F9zW51L7WgRqNKDElBdyRLGuBtI5MX34e8= go.opentelemetry.io/otel/metric v0.36.0 h1:t0lgGI+L68QWt3QtOIlqM9gXoxqxWLhZ3R/e5oOAY0Q=
go.opentelemetry.io/otel/metric v0.35.0/go.mod h1:qAcbhaTRFU6uG8QM7dDo7XvFsWcugziq/5YI065TokQ= go.opentelemetry.io/otel/metric v0.36.0/go.mod h1:wKVw57sd2HdSZAzyfOM9gTqqE8v7CbqWsYL6AyrH9qk=
go.opentelemetry.io/otel/trace v1.12.0 h1:p28in++7Kd0r2d8gSt931O57fdjUyWxkVbESuILAeUc= go.opentelemetry.io/otel/trace v1.13.0 h1:CBgRZ6ntv+Amuj1jDsMhZtlAPT6gbyIRdaIzFhfBSdY=
go.opentelemetry.io/otel/trace v1.12.0/go.mod h1:pHlgBynn6s25qJ2szD+Bv+iwKJttjHSI3lUAyf0GNuQ= go.opentelemetry.io/otel/trace v1.13.0/go.mod h1:muCvmmO9KKpvuXSf3KKAXXB2ygNYHQ+ZfI5X08d3tds=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk=
@ -485,8 +485,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-20230131160201-f062dba9d201 h1:BEABXpNXLEz0WxtA+6CQIz2xkg80e+1zrhWyMcq8VzE= golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg=
golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
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=
@ -613,8 +613,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
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.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.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=
@ -739,8 +739,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
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-20230131230820-1c016267d619 h1:p0kMzw6AG0JEzd7Z+kXqOiLhC6gjUQTbtS2zR0Q3DbI= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 h1:vArvWooPH749rNHpBGgVl+U9B9dATjiEhJzcWGlovNs=
google.golang.org/genproto v0.0.0-20230131230820-1c016267d619/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
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=
@ -754,8 +754,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
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.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ= google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
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=

View file

@ -1,5 +1,10 @@
# Release History # Release History
## 1.3.1 (2023-02-02)
### Other Changes
* Update dependencies to latest versions.
## 1.3.0 (2023-01-06) ## 1.3.0 (2023-01-06)
### Features Added ### Features Added

View file

@ -103,6 +103,7 @@ func (req *Request) OperationValue(value interface{}) bool {
// SetBody sets the specified ReadSeekCloser as the HTTP request body, and sets Content-Type and Content-Length // SetBody sets the specified ReadSeekCloser as the HTTP request body, and sets Content-Type and Content-Length
// accordingly. If the ReadSeekCloser is nil or empty, Content-Length won't be set. If contentType is "", // accordingly. If the ReadSeekCloser is nil or empty, Content-Length won't be set. If contentType is "",
// Content-Type won't be set. // Content-Type won't be set.
// Use streaming.NopCloser to turn an io.ReadSeeker into an io.ReadSeekCloser.
func (req *Request) SetBody(body io.ReadSeekCloser, contentType string) error { func (req *Request) SetBody(body io.ReadSeekCloser, contentType string) error {
var err error var err error
var size int64 var size int64

View file

@ -30,5 +30,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.3.0" Version = "v1.3.1"
) )

View file

@ -20,6 +20,9 @@ type progress struct {
} }
// NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker. // NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker.
// In addition to adding a Close method to an io.ReadSeeker, this can also be used to wrap an
// io.ReadSeekCloser with a no-op Close method to allow explicit control of when the io.ReedSeekCloser
// has its underlying stream closed.
func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser { func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser {
return exported.NopCloser(rs) return exported.NopCloser(rs)
} }

View file

@ -1,5 +1,45 @@
# Release History # Release History
## 1.0.0 (2023-02-07)
### Features Added
* Add support to log calculated block size and count during uploads
* Added MissingSharedKeyCredential error type for cleaner UX. Related to [#19864](https://github.com/Azure/azure-sdk-for-go/issues/19864).
### Breaking Changes
* Changed API signatures to map correctly to Azure Storage REST APIs, These changes impact:
* `blob.GetSASURL()`
* `blockblob.StageBlockFromURL()`
* `container.SetAccessPolicy()`
* `container.GetSASURL()`
* `service.GetSASURL()`
* `service.FilterBlobs()`
* `lease.AcquireLease()` (blobs and containers)
* `lease.ChangeLease()` (blobs and containers)
* Type name changes:
* `CpkInfo` -> `CPKInfo`
* `CpkScopeInfo` -> `CPKScopeInfo`
* `RuleId` -> `RuleID`
* `PolicyId` -> `PolicyID`
* `CorsRule` -> `CORSRule`
* Remove `AccountServices` it is now hardcoded to blobs
### Bugs Fixed
* Fixed encoding issues seen in FilterBlobs. Fixes [#17421](https://github.com/Azure/azure-sdk-for-go/issues/17421).
* Fixing inconsistency seen with Metadata and ORS response. Fixes [#19688](https://github.com/Azure/azure-sdk-for-go/issues/19688).
* Fixed endless loop during pagination issue [#19773](https://github.com/Azure/azure-sdk-for-go/pull/19773).
### Other Changes
* Exported some missing types in the `blob`, `container` and `service` packages. Fixes [#19775](https://github.com/Azure/azure-sdk-for-go/issues/19775).
* SAS changes [#19781](https://github.com/Azure/azure-sdk-for-go/pull/19781):
* AccountSASPermissions: SetImmutabilityPolicy support
* ContainerSASPermissions: Move support
* Validations to ensure correct sas perm ordering
## 0.6.1 (2022-12-09) ## 0.6.1 (2022-12-09)
### Bugs Fixed ### Bugs Fixed

View file

@ -37,7 +37,9 @@ func NewClient(blobURL string, cred azcore.TokenCredential, options *ClientOptio
authPolicy := runtime.NewBearerTokenPolicy(cred, []string{shared.TokenScope}, nil) authPolicy := runtime.NewBearerTokenPolicy(cred, []string{shared.TokenScope}, nil)
conOptions := shared.GetClientOptions(options) conOptions := shared.GetClientOptions(options)
conOptions.PerRetryPolicies = append(conOptions.PerRetryPolicies, authPolicy) conOptions.PerRetryPolicies = append(conOptions.PerRetryPolicies, authPolicy)
pl := runtime.NewPipeline(exported.ModuleName, exported.ModuleVersion, runtime.PipelineOptions{}, &conOptions.ClientOptions) pl := runtime.NewPipeline(exported.ModuleName,
exported.ModuleVersion, runtime.PipelineOptions{},
&conOptions.ClientOptions)
return (*Client)(base.NewAppendBlobClient(blobURL, pl, nil)), nil return (*Client)(base.NewAppendBlobClient(blobURL, pl, nil)), nil
} }
@ -48,7 +50,10 @@ func NewClient(blobURL string, cred azcore.TokenCredential, options *ClientOptio
// - options - client options; pass nil to accept the default values // - options - client options; pass nil to accept the default values
func NewClientWithNoCredential(blobURL string, options *ClientOptions) (*Client, error) { func NewClientWithNoCredential(blobURL string, options *ClientOptions) (*Client, error) {
conOptions := shared.GetClientOptions(options) conOptions := shared.GetClientOptions(options)
pl := runtime.NewPipeline(exported.ModuleName, exported.ModuleVersion, runtime.PipelineOptions{}, &conOptions.ClientOptions) pl := runtime.NewPipeline(exported.ModuleName,
exported.ModuleVersion,
runtime.PipelineOptions{},
&conOptions.ClientOptions)
return (*Client)(base.NewAppendBlobClient(blobURL, pl, nil)), nil return (*Client)(base.NewAppendBlobClient(blobURL, pl, nil)), nil
} }
@ -61,7 +66,10 @@ func NewClientWithSharedKeyCredential(blobURL string, cred *blob.SharedKeyCreden
authPolicy := exported.NewSharedKeyCredPolicy(cred) authPolicy := exported.NewSharedKeyCredPolicy(cred)
conOptions := shared.GetClientOptions(options) conOptions := shared.GetClientOptions(options)
conOptions.PerRetryPolicies = append(conOptions.PerRetryPolicies, authPolicy) conOptions.PerRetryPolicies = append(conOptions.PerRetryPolicies, authPolicy)
pl := runtime.NewPipeline(exported.ModuleName, exported.ModuleVersion, runtime.PipelineOptions{}, &conOptions.ClientOptions) pl := runtime.NewPipeline(exported.ModuleName,
exported.ModuleVersion,
runtime.PipelineOptions{},
&conOptions.ClientOptions)
return (*Client)(base.NewAppendBlobClient(blobURL, pl, cred)), nil return (*Client)(base.NewAppendBlobClient(blobURL, pl, cred)), nil
} }
@ -166,7 +174,15 @@ func (ab *Client) AppendBlock(ctx context.Context, body io.ReadSeekCloser, o *Ap
} }
} }
resp, err := ab.generated().AppendBlock(ctx, count, body, appendOptions, leaseAccessConditions, appendPositionAccessConditions, cpkInfo, cpkScope, modifiedAccessConditions) resp, err := ab.generated().AppendBlock(ctx,
count,
body,
appendOptions,
leaseAccessConditions,
appendPositionAccessConditions,
cpkInfo,
cpkScope,
modifiedAccessConditions)
return resp, err return resp, err
} }
@ -174,11 +190,25 @@ func (ab *Client) AppendBlock(ctx context.Context, body io.ReadSeekCloser, o *Ap
// AppendBlockFromURL copies a new block of data from source URL to the end of the existing append blob. // AppendBlockFromURL copies a new block of data from source URL to the end of the existing append blob.
// For more information, see https://docs.microsoft.com/rest/api/storageservices/append-block-from-url. // For more information, see https://docs.microsoft.com/rest/api/storageservices/append-block-from-url.
func (ab *Client) AppendBlockFromURL(ctx context.Context, source string, o *AppendBlockFromURLOptions) (AppendBlockFromURLResponse, error) { func (ab *Client) AppendBlockFromURL(ctx context.Context, source string, o *AppendBlockFromURLOptions) (AppendBlockFromURLResponse, error) {
appendBlockFromURLOptions, cpkInfo, cpkScopeInfo, leaseAccessConditions, appendPositionAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions := o.format() appendBlockFromURLOptions,
cpkInfo,
cpkScopeInfo,
leaseAccessConditions,
appendPositionAccessConditions,
modifiedAccessConditions,
sourceModifiedAccessConditions := o.format()
// content length should be 0 on * from URL. always. It's a 400 if it isn't. // content length should be 0 on * from URL. always. It's a 400 if it isn't.
resp, err := ab.generated().AppendBlockFromURL(ctx, source, 0, appendBlockFromURLOptions, cpkInfo, cpkScopeInfo, resp, err := ab.generated().AppendBlockFromURL(ctx,
leaseAccessConditions, appendPositionAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions) source,
0,
appendBlockFromURLOptions,
cpkInfo,
cpkScopeInfo,
leaseAccessConditions,
appendPositionAccessConditions,
modifiedAccessConditions,
sourceModifiedAccessConditions)
return resp, err return resp, err
} }
@ -186,7 +216,11 @@ func (ab *Client) AppendBlockFromURL(ctx context.Context, source string, o *Appe
// https://docs.microsoft.com/en-us/rest/api/storageservices/append-blob-seal // https://docs.microsoft.com/en-us/rest/api/storageservices/append-blob-seal
func (ab *Client) Seal(ctx context.Context, o *SealOptions) (SealResponse, error) { func (ab *Client) Seal(ctx context.Context, o *SealOptions) (SealResponse, error) {
leaseAccessConditions, modifiedAccessConditions, positionAccessConditions := o.format() leaseAccessConditions, modifiedAccessConditions, positionAccessConditions := o.format()
resp, err := ab.generated().Seal(ctx, nil, leaseAccessConditions, modifiedAccessConditions, positionAccessConditions) resp, err := ab.generated().Seal(ctx,
nil,
leaseAccessConditions,
modifiedAccessConditions,
positionAccessConditions)
return resp, err return resp, err
} }
@ -256,7 +290,7 @@ func (ab *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeade
// SetMetadata changes a blob's metadata. // SetMetadata changes a blob's metadata.
// https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata. // https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata.
func (ab *Client) SetMetadata(ctx context.Context, metadata map[string]string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) { func (ab *Client) SetMetadata(ctx context.Context, metadata map[string]*string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) {
return ab.BlobClient().SetMetadata(ctx, metadata, o) return ab.BlobClient().SetMetadata(ctx, metadata, o)
} }

View file

@ -37,9 +37,9 @@ type CreateOptions struct {
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
// Optional. Used to set blob tags in various blob operations. // Optional. Used to set blob tags in various blob operations.
Tags map[string]string Tags map[string]string
@ -49,10 +49,10 @@ type CreateOptions struct {
// are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source // are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source
// blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. // blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers.
// See Naming and Referencing Containers, Blobs, and Metadata for more information. // See Naming and Referencing Containers, Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
} }
func (o *CreateOptions) format() (*generated.AppendBlobClientCreateOptions, *generated.BlobHTTPHeaders, *generated.LeaseAccessConditions, *generated.CpkInfo, *generated.CpkScopeInfo, *generated.ModifiedAccessConditions) { func (o *CreateOptions) format() (*generated.AppendBlobClientCreateOptions, *generated.BlobHTTPHeaders, *generated.LeaseAccessConditions, *generated.CPKInfo, *generated.CPKScopeInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil
} }
@ -66,7 +66,7 @@ func (o *CreateOptions) format() (*generated.AppendBlobClientCreateOptions, *gen
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return &options, o.HTTPHeaders, leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions return &options, o.HTTPHeaders, leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -79,21 +79,21 @@ type AppendBlockOptions struct {
AppendPositionAccessConditions *AppendPositionAccessConditions AppendPositionAccessConditions *AppendPositionAccessConditions
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
} }
func (o *AppendBlockOptions) format() (*generated.AppendBlobClientAppendBlockOptions, *generated.AppendPositionAccessConditions, func (o *AppendBlockOptions) format() (*generated.AppendBlobClientAppendBlockOptions, *generated.AppendPositionAccessConditions,
*generated.CpkInfo, *generated.CpkScopeInfo, *generated.ModifiedAccessConditions, *generated.LeaseAccessConditions) { *generated.CPKInfo, *generated.CPKScopeInfo, *generated.ModifiedAccessConditions, *generated.LeaseAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return &generated.AppendBlobClientAppendBlockOptions{}, o.AppendPositionAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions, leaseAccessConditions return &generated.AppendBlobClientAppendBlockOptions{}, o.AppendPositionAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions, leaseAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -105,9 +105,9 @@ type AppendBlockFromURLOptions struct {
AppendPositionAccessConditions *AppendPositionAccessConditions AppendPositionAccessConditions *AppendPositionAccessConditions
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
SourceModifiedAccessConditions *blob.SourceModifiedAccessConditions SourceModifiedAccessConditions *blob.SourceModifiedAccessConditions
@ -117,8 +117,8 @@ type AppendBlockFromURLOptions struct {
Range blob.HTTPRange Range blob.HTTPRange
} }
func (o *AppendBlockFromURLOptions) format() (*generated.AppendBlobClientAppendBlockFromURLOptions, *generated.CpkInfo, func (o *AppendBlockFromURLOptions) format() (*generated.AppendBlobClientAppendBlockFromURLOptions, *generated.CPKInfo,
*generated.CpkScopeInfo, *generated.LeaseAccessConditions, *generated.AppendPositionAccessConditions, *generated.CPKScopeInfo, *generated.LeaseAccessConditions, *generated.AppendPositionAccessConditions,
*generated.ModifiedAccessConditions, *generated.SourceModifiedAccessConditions) { *generated.ModifiedAccessConditions, *generated.SourceModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil, nil
@ -133,7 +133,7 @@ func (o *AppendBlockFromURLOptions) format() (*generated.AppendBlobClientAppendB
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return options, o.CpkInfo, o.CpkScopeInfo, leaseAccessConditions, o.AppendPositionAccessConditions, modifiedAccessConditions, o.SourceModifiedAccessConditions return options, o.CPKInfo, o.CPKScopeInfo, leaseAccessConditions, o.AppendPositionAccessConditions, modifiedAccessConditions, o.SourceModifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------

View file

@ -22,5 +22,5 @@ type AppendBlockFromURLResponse = generated.AppendBlobClientAppendBlockFromURLRe
// SealResponse contains the response from method Client.Seal. // SealResponse contains the response from method Client.Seal.
type SealResponse = generated.AppendBlobClientSealResponse type SealResponse = generated.AppendBlobClientSealResponse
// SetExpiryResponse contains the response from method BlobClient.SetExpiry. // SetExpiryResponse contains the response from method Client.SetExpiry.
type SetExpiryResponse = generated.BlobClientSetExpiryResponse type SetExpiryResponse = generated.BlobClientSetExpiryResponse

View file

@ -0,0 +1,6 @@
{
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "go",
"TagPrefix": "go/storage/azblob",
"Tag": "go/storage/azblob_46e572d43a"
}

View file

@ -8,7 +8,7 @@ package blob
import ( import (
"context" "context"
"errors" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
"io" "io"
"os" "os"
"sync" "sync"
@ -148,10 +148,10 @@ func (b *Client) Undelete(ctx context.Context, o *UndeleteOptions) (UndeleteResp
// SetTier operation sets the tier on a blob. The operation is allowed on a page // SetTier operation sets the tier on a blob. The operation is allowed on a page
// blob in a premium storage account and on a block blob in a blob storage account (locally // blob in a premium storage account and on a block blob in a blob storage account (locally
// redundant storage only). A premium page blob's tier determines the allowed size, IOPS, and // redundant storage only). A premium page blob's tier determines the allowed size, IOPs, and
// bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation // bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation
// does not update the blob's ETag. // does not update the blob's ETag.
// For detailed information about block blob level tiering see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers. // For detailed information about block blob level tiers see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers.
func (b *Client) SetTier(ctx context.Context, tier AccessTier, o *SetTierOptions) (SetTierResponse, error) { func (b *Client) SetTier(ctx context.Context, tier AccessTier, o *SetTierOptions) (SetTierResponse, error) {
opts, leaseAccessConditions, modifiedAccessConditions := o.format() opts, leaseAccessConditions, modifiedAccessConditions := o.format()
resp, err := b.generated().SetTier(ctx, tier, opts, leaseAccessConditions, modifiedAccessConditions) resp, err := b.generated().SetTier(ctx, tier, opts, leaseAccessConditions, modifiedAccessConditions)
@ -176,7 +176,7 @@ func (b *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders HTTPHeaders, o
// SetMetadata changes a blob's metadata. // SetMetadata changes a blob's metadata.
// https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata. // https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata.
func (b *Client) SetMetadata(ctx context.Context, metadata map[string]string, o *SetMetadataOptions) (SetMetadataResponse, error) { func (b *Client) SetMetadata(ctx context.Context, metadata map[string]*string, o *SetMetadataOptions) (SetMetadataResponse, error) {
basics := generated.BlobClientSetMetadataOptions{Metadata: metadata} basics := generated.BlobClientSetMetadataOptions{Metadata: metadata}
leaseAccessConditions, cpkInfo, cpkScope, modifiedAccessConditions := o.format() leaseAccessConditions, cpkInfo, cpkScope, modifiedAccessConditions := o.format()
resp, err := b.generated().SetMetadata(ctx, &basics, leaseAccessConditions, cpkInfo, cpkScope, modifiedAccessConditions) resp, err := b.generated().SetMetadata(ctx, &basics, leaseAccessConditions, cpkInfo, cpkScope, modifiedAccessConditions)
@ -266,9 +266,9 @@ func (b *Client) CopyFromURL(ctx context.Context, copySource string, options *Co
// GetSASURL is a convenience method for generating a SAS token for the currently pointed at blob. // GetSASURL is a convenience method for generating a SAS token for the currently pointed at blob.
// It can only be used if the credential supplied during creation was a SharedKeyCredential. // It can only be used if the credential supplied during creation was a SharedKeyCredential.
func (b *Client) GetSASURL(permissions sas.BlobPermissions, start time.Time, expiry time.Time) (string, error) { func (b *Client) GetSASURL(permissions sas.BlobPermissions, expiry time.Time, o *GetSASURLOptions) (string, error) {
if b.sharedKey() == nil { if b.sharedKey() == nil {
return "", errors.New("credential is not a SharedKeyCredential. SAS can only be signed with a SharedKeyCredential") return "", bloberror.MissingSharedKeyCredential
} }
urlParts, err := ParseURL(b.URL()) urlParts, err := ParseURL(b.URL())
@ -281,17 +281,16 @@ func (b *Client) GetSASURL(permissions sas.BlobPermissions, start time.Time, exp
if err != nil { if err != nil {
t = time.Time{} t = time.Time{}
} }
st := o.format()
qps, err := sas.BlobSignatureValues{ qps, err := sas.BlobSignatureValues{
ContainerName: urlParts.ContainerName, ContainerName: urlParts.ContainerName,
BlobName: urlParts.BlobName, BlobName: urlParts.BlobName,
SnapshotTime: t, SnapshotTime: t,
Version: sas.Version, Version: sas.Version,
Permissions: permissions.String(),
Permissions: permissions.String(), StartTime: st,
ExpiryTime: expiry.UTC(),
StartTime: start.UTC(),
ExpiryTime: expiry.UTC(),
}.SignWithSharedKey(b.sharedKey()) }.SignWithSharedKey(b.sharedKey())
if err != nil { if err != nil {
@ -387,12 +386,12 @@ func (b *Client) DownloadStream(ctx context.Context, o *DownloadStreamOptions) (
} }
return DownloadStreamResponse{ return DownloadStreamResponse{
client: b, client: b,
BlobClientDownloadResponse: dr, DownloadResponse: dr,
getInfo: httpGetterInfo{Range: o.Range, ETag: dr.ETag}, getInfo: httpGetterInfo{Range: o.Range, ETag: dr.ETag},
ObjectReplicationRules: deserializeORSPolicies(dr.ObjectReplicationRules), ObjectReplicationRules: deserializeORSPolicies(dr.ObjectReplicationRules),
cpkInfo: o.CpkInfo, cpkInfo: o.CPKInfo,
cpkScope: o.CpkScopeInfo, cpkScope: o.CPKScopeInfo,
}, err }, err
} }

View file

@ -47,7 +47,7 @@ func PossibleDeleteSnapshotsOptionTypeValues() []DeleteSnapshotsOptionType {
return generated.PossibleDeleteSnapshotsOptionTypeValues() return generated.PossibleDeleteSnapshotsOptionTypeValues()
} }
// AccessTier defines values for Blob Access Tier // AccessTier defines values for Blob Access Tier.
type AccessTier = generated.AccessTier type AccessTier = generated.AccessTier
const ( const (
@ -129,7 +129,7 @@ func PossibleCopyStatusTypeValues() []CopyStatusType {
return generated.PossibleCopyStatusTypeValues() return generated.PossibleCopyStatusTypeValues()
} }
// EncryptionAlgorithmType defines values for EncryptionAlgorithmType // EncryptionAlgorithmType defines values for EncryptionAlgorithmType.
type EncryptionAlgorithmType = generated.EncryptionAlgorithmType type EncryptionAlgorithmType = generated.EncryptionAlgorithmType
const ( const (
@ -142,7 +142,7 @@ func PossibleEncryptionAlgorithmTypeValues() []EncryptionAlgorithmType {
return generated.PossibleEncryptionAlgorithmTypeValues() return generated.PossibleEncryptionAlgorithmTypeValues()
} }
// ArchiveStatus defines values for ArchiveStatus // ArchiveStatus defines values for ArchiveStatus.
type ArchiveStatus = generated.ArchiveStatus type ArchiveStatus = generated.ArchiveStatus
const ( const (
@ -155,7 +155,7 @@ func PossibleArchiveStatusValues() []ArchiveStatus {
return generated.PossibleArchiveStatusValues() return generated.PossibleArchiveStatusValues()
} }
// DeleteType defines values for DeleteType // DeleteType defines values for DeleteType.
type DeleteType = generated.DeleteType type DeleteType = generated.DeleteType
const ( const (
@ -204,7 +204,7 @@ type SourceContentValidationType interface {
notPubliclyImplementable() notPubliclyImplementable()
} }
// SourceContentValidationTypeCRC64 is a SourceContentValidationType used to provided a precomputed CRC64. // SourceContentValidationTypeCRC64 is a SourceContentValidationType used to provide a precomputed CRC64.
type SourceContentValidationTypeCRC64 []byte type SourceContentValidationTypeCRC64 []byte
// Apply implements the SourceContentValidationType interface for type SourceContentValidationTypeCRC64. // Apply implements the SourceContentValidationType interface for type SourceContentValidationTypeCRC64.
@ -216,7 +216,7 @@ func (SourceContentValidationTypeCRC64) notPubliclyImplementable() {}
var _ SourceContentValidationType = (SourceContentValidationTypeCRC64)(nil) var _ SourceContentValidationType = (SourceContentValidationTypeCRC64)(nil)
// SourceContentValidationTypeMD5 is a SourceContentValidationType used to provided a precomputed MD5. // SourceContentValidationTypeMD5 is a SourceContentValidationType used to provide a precomputed MD5.
type SourceContentValidationTypeMD5 []byte type SourceContentValidationTypeMD5 []byte
// Apply implements the SourceContentValidationType interface for type SourceContentValidationTypeMD5. // Apply implements the SourceContentValidationType interface for type SourceContentValidationTypeMD5.

View file

@ -34,11 +34,11 @@ type LeaseAccessConditions = exported.LeaseAccessConditions
// ModifiedAccessConditions contains a group of parameters for specifying access conditions. // ModifiedAccessConditions contains a group of parameters for specifying access conditions.
type ModifiedAccessConditions = exported.ModifiedAccessConditions type ModifiedAccessConditions = exported.ModifiedAccessConditions
// CpkInfo contains a group of parameters for client provided encryption key. // CPKInfo contains a group of parameters for client provided encryption key.
type CpkInfo = generated.CpkInfo type CPKInfo = generated.CPKInfo
// CpkScopeInfo contains a group of parameters for client provided encryption scope. // CPKScopeInfo contains a group of parameters for client provided encryption scope.
type CpkScopeInfo = generated.CpkScopeInfo type CPKScopeInfo = generated.CPKScopeInfo
// HTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // HTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
type HTTPHeaders = generated.BlobHTTPHeaders type HTTPHeaders = generated.BlobHTTPHeaders
@ -66,11 +66,11 @@ type DownloadStreamOptions struct {
Range HTTPRange Range HTTPRange
AccessConditions *AccessConditions AccessConditions *AccessConditions
CpkInfo *CpkInfo CPKInfo *CPKInfo
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
} }
func (o *DownloadStreamOptions) format() (*generated.BlobClientDownloadOptions, *generated.LeaseAccessConditions, *generated.CpkInfo, *generated.ModifiedAccessConditions) { func (o *DownloadStreamOptions) format() (*generated.BlobClientDownloadOptions, *generated.LeaseAccessConditions, *generated.CPKInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil return nil, nil, nil, nil
} }
@ -81,7 +81,7 @@ func (o *DownloadStreamOptions) format() (*generated.BlobClientDownloadOptions,
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return &basics, leaseAccessConditions, o.CpkInfo, modifiedAccessConditions return &basics, leaseAccessConditions, o.CPKInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -101,10 +101,10 @@ type downloadOptions struct {
AccessConditions *AccessConditions AccessConditions *AccessConditions
// ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data. // ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data.
CpkInfo *CpkInfo CPKInfo *CPKInfo
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
// Concurrency indicates the maximum number of blocks to download in parallel (0=default) // Concurrency indicates the maximum number of blocks to download in parallel (0=default).
Concurrency uint16 Concurrency uint16
// RetryReaderOptionsPerBlock is used when downloading each block. // RetryReaderOptionsPerBlock is used when downloading each block.
@ -117,7 +117,7 @@ func (o *downloadOptions) getBlobPropertiesOptions() *GetPropertiesOptions {
} }
return &GetPropertiesOptions{ return &GetPropertiesOptions{
AccessConditions: o.AccessConditions, AccessConditions: o.AccessConditions,
CpkInfo: o.CpkInfo, CPKInfo: o.CPKInfo,
} }
} }
@ -127,8 +127,8 @@ func (o *downloadOptions) getDownloadBlobOptions(rnge HTTPRange, rangeGetContent
} }
return &DownloadStreamOptions{ return &DownloadStreamOptions{
AccessConditions: o.AccessConditions, AccessConditions: o.AccessConditions,
CpkInfo: o.CpkInfo, CPKInfo: o.CPKInfo,
CpkScopeInfo: o.CpkScopeInfo, CPKScopeInfo: o.CPKScopeInfo,
Range: rnge, Range: rnge,
RangeGetContentMD5: rangeGetContentMD5, RangeGetContentMD5: rangeGetContentMD5,
} }
@ -148,13 +148,13 @@ type DownloadBufferOptions struct {
// BlobAccessConditions indicates the access conditions used when making HTTP GET requests against the blob. // BlobAccessConditions indicates the access conditions used when making HTTP GET requests against the blob.
AccessConditions *AccessConditions AccessConditions *AccessConditions
// CpkInfo contains a group of parameters for client provided encryption key. // CPKInfo contains a group of parameters for client provided encryption key.
CpkInfo *CpkInfo CPKInfo *CPKInfo
// CpkScopeInfo contains a group of parameters for client provided encryption scope. // CPKScopeInfo contains a group of parameters for client provided encryption scope.
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
// Concurrency indicates the maximum number of blocks to download in parallel (0=default) // Concurrency indicates the maximum number of blocks to download in parallel (0=default).
Concurrency uint16 Concurrency uint16
// RetryReaderOptionsPerBlock is used when downloading each block. // RetryReaderOptionsPerBlock is used when downloading each block.
@ -176,8 +176,8 @@ type DownloadFileOptions struct {
AccessConditions *AccessConditions AccessConditions *AccessConditions
// ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data. // ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data.
CpkInfo *CpkInfo CPKInfo *CPKInfo
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
// Concurrency indicates the maximum number of blocks to download in parallel. The default value is 5. // Concurrency indicates the maximum number of blocks to download in parallel. The default value is 5.
Concurrency uint16 Concurrency uint16
@ -191,7 +191,7 @@ type DownloadFileOptions struct {
// DeleteOptions contains the optional parameters for the Client.Delete method. // DeleteOptions contains the optional parameters for the Client.Delete method.
type DeleteOptions struct { type DeleteOptions struct {
// Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob // Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob
// and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself // and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself.
DeleteSnapshots *DeleteSnapshotsOptionType DeleteSnapshots *DeleteSnapshotsOptionType
AccessConditions *AccessConditions AccessConditions *AccessConditions
// Setting DeleteType to DeleteTypePermanent will permanently delete soft-delete snapshot and/or version blobs. // Setting DeleteType to DeleteTypePermanent will permanently delete soft-delete snapshot and/or version blobs.
@ -253,17 +253,17 @@ func (o *SetTierOptions) format() (*generated.BlobClientSetTierOptions, *generat
// GetPropertiesOptions contains the optional parameters for the Client.GetProperties method // GetPropertiesOptions contains the optional parameters for the Client.GetProperties method
type GetPropertiesOptions struct { type GetPropertiesOptions struct {
AccessConditions *AccessConditions AccessConditions *AccessConditions
CpkInfo *CpkInfo CPKInfo *CPKInfo
} }
func (o *GetPropertiesOptions) format() (*generated.BlobClientGetPropertiesOptions, func (o *GetPropertiesOptions) format() (*generated.BlobClientGetPropertiesOptions,
*generated.LeaseAccessConditions, *generated.CpkInfo, *generated.ModifiedAccessConditions) { *generated.LeaseAccessConditions, *generated.CPKInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil return nil, nil, nil, nil
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return nil, leaseAccessConditions, o.CpkInfo, modifiedAccessConditions return nil, leaseAccessConditions, o.CPKInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -287,32 +287,32 @@ func (o *SetHTTPHeadersOptions) format() (*generated.BlobClientSetHTTPHeadersOpt
// SetMetadataOptions provides set of configurations for Set Metadata on blob operation // SetMetadataOptions provides set of configurations for Set Metadata on blob operation
type SetMetadataOptions struct { type SetMetadataOptions struct {
AccessConditions *AccessConditions AccessConditions *AccessConditions
CpkInfo *CpkInfo CPKInfo *CPKInfo
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
} }
func (o *SetMetadataOptions) format() (*generated.LeaseAccessConditions, *CpkInfo, func (o *SetMetadataOptions) format() (*generated.LeaseAccessConditions, *CPKInfo,
*CpkScopeInfo, *ModifiedAccessConditions) { *CPKScopeInfo, *ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil return nil, nil, nil, nil
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions return leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// CreateSnapshotOptions contains the optional parameters for the Client.CreateSnapshot method. // CreateSnapshotOptions contains the optional parameters for the Client.CreateSnapshot method.
type CreateSnapshotOptions struct { type CreateSnapshotOptions struct {
Metadata map[string]string Metadata map[string]*string
AccessConditions *AccessConditions AccessConditions *AccessConditions
CpkInfo *CpkInfo CPKInfo *CPKInfo
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
} }
func (o *CreateSnapshotOptions) format() (*generated.BlobClientCreateSnapshotOptions, *generated.CpkInfo, func (o *CreateSnapshotOptions) format() (*generated.BlobClientCreateSnapshotOptions, *generated.CPKInfo,
*generated.CpkScopeInfo, *generated.ModifiedAccessConditions, *generated.LeaseAccessConditions) { *generated.CPKScopeInfo, *generated.ModifiedAccessConditions, *generated.LeaseAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil return nil, nil, nil, nil, nil
} }
@ -321,7 +321,7 @@ func (o *CreateSnapshotOptions) format() (*generated.BlobClientCreateSnapshotOpt
return &generated.BlobClientCreateSnapshotOptions{ return &generated.BlobClientCreateSnapshotOptions{
Metadata: o.Metadata, Metadata: o.Metadata,
}, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions, leaseAccessConditions }, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions, leaseAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -341,7 +341,7 @@ type StartCopyFromURLOptions struct {
// are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source // are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source
// blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. // blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers.
// See Naming and Referencing Containers, Blobs, and Metadata for more information. // See Naming and Referencing Containers, Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Optional: Indicates the priority with which to rehydrate an archived blob. // Optional: Indicates the priority with which to rehydrate an archived blob.
RehydratePriority *RehydratePriority RehydratePriority *RehydratePriority
// Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. // Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer.
@ -496,6 +496,27 @@ func (o *SetLegalHoldOptions) format() *generated.BlobClientSetLegalHoldOptions
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// GetSASURLOptions contains the optional parameters for the Client.GetSASURL method.
type GetSASURLOptions struct {
StartTime *time.Time
}
func (o *GetSASURLOptions) format() time.Time {
if o == nil {
return time.Time{}
}
var st time.Time
if o.StartTime != nil {
st = o.StartTime.UTC()
} else {
st = time.Time{}
}
return st
}
// ---------------------------------------------------------------------------------------------------------------------
// CopyFromURLOptions contains the optional parameters for the Client.CopyFromURL method. // CopyFromURLOptions contains the optional parameters for the Client.CopyFromURL method.
type CopyFromURLOptions struct { type CopyFromURLOptions struct {
// Optional. Used to set blob tags in various blob operations. // Optional. Used to set blob tags in various blob operations.
@ -514,7 +535,7 @@ type CopyFromURLOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Specify the md5 calculated for the range of bytes that must be read from the copy source. // Specify the md5 calculated for the range of bytes that must be read from the copy source.
SourceContentMD5 []byte SourceContentMD5 []byte
// Optional. Indicates the tier to be set on the blob. // Optional. Indicates the tier to be set on the blob.

View file

@ -13,22 +13,25 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
) )
// DownloadResponse contains the response from method BlobClient.Download.
type DownloadResponse = generated.BlobClientDownloadResponse
// DownloadStreamResponse contains the response from the DownloadStream method. // DownloadStreamResponse contains the response from the DownloadStream method.
// To read from the stream, read from the Body field, or call the NewRetryReader method. // To read from the stream, read from the Body field, or call the NewRetryReader method.
type DownloadStreamResponse struct { type DownloadStreamResponse struct {
generated.BlobClientDownloadResponse DownloadResponse
ObjectReplicationRules []ObjectReplicationPolicy ObjectReplicationRules []ObjectReplicationPolicy
client *Client client *Client
getInfo httpGetterInfo getInfo httpGetterInfo
cpkInfo *CpkInfo cpkInfo *CPKInfo
cpkScope *CpkScopeInfo cpkScope *CPKScopeInfo
} }
// NewRetryReader constructs new RetryReader stream for reading data. If a connection fails while // NewRetryReader constructs new RetryReader stream for reading data. If a connection fails while
// reading, it will make additional requests to reestablish a connection and continue reading. // reading, it will make additional requests to reestablish a connection and continue reading.
// Pass nil for options to accept the default options. // Pass nil for options to accept the default options.
// Callers of this method should not access the DowloadStreamResponse.Body field. // Callers of this method should not access the DownloadStreamResponse.Body field.
func (r *DownloadStreamResponse) NewRetryReader(ctx context.Context, options *RetryReaderOptions) *RetryReader { func (r *DownloadStreamResponse) NewRetryReader(ctx context.Context, options *RetryReaderOptions) *RetryReader {
if options == nil { if options == nil {
options = &RetryReaderOptions{} options = &RetryReaderOptions{}
@ -41,8 +44,8 @@ func (r *DownloadStreamResponse) NewRetryReader(ctx context.Context, options *Re
options := DownloadStreamOptions{ options := DownloadStreamOptions{
Range: getInfo.Range, Range: getInfo.Range,
AccessConditions: accessConditions, AccessConditions: accessConditions,
CpkInfo: r.cpkInfo, CPKInfo: r.cpkInfo,
CpkScopeInfo: r.cpkScope, CPKScopeInfo: r.cpkScope,
} }
resp, err := r.client.DownloadStream(ctx, &options) resp, err := r.client.DownloadStream(ctx, &options)
if err != nil { if err != nil {

View file

@ -58,7 +58,7 @@ type RetryReaderOptions struct {
injectedError error injectedError error
} }
// RetryReader attempts to read from response, and if there is retriable network error // RetryReader attempts to read from response, and if there is a retry-able network error
// returned during reading, it will retry according to retry reader option through executing // returned during reading, it will retry according to retry reader option through executing
// user defined action with provided data to get a new response, and continue the overall reading process // user defined action with provided data to get a new response, and continue the overall reading process
// through reading from the new response. // through reading from the new response.
@ -167,7 +167,7 @@ func (s *RetryReader) Read(p []byte) (n int, err error) {
// net.Conn.Close, and that is documented as "Any blocked Read or Write operations will be unblocked and return errors" // net.Conn.Close, and that is documented as "Any blocked Read or Write operations will be unblocked and return errors"
// which is exactly the behaviour we want. // which is exactly the behaviour we want.
// NOTE: that if caller has forced an early Close from a separate goroutine (separate from the Read) // NOTE: that if caller has forced an early Close from a separate goroutine (separate from the Read)
// then there are two different types of error that may happen - either the one one we check for here, // then there are two different types of error that may happen - either the one we check for here,
// or a net.Error (due to closure of connection). Which one happens depends on timing. We only need this routine // or a net.Error (due to closure of connection). Which one happens depends on timing. We only need this routine
// to check for one, since the other is a net.Error, which our main Read retry loop is already handing. // to check for one, since the other is a net.Error, which our main Read retry loop is already handing.
func (s *RetryReader) wasRetryableEarlyClose(err error) bool { func (s *RetryReader) wasRetryableEarlyClose(err error) bool {

View file

@ -14,25 +14,25 @@ import (
// ObjectReplicationRules struct // ObjectReplicationRules struct
type ObjectReplicationRules struct { type ObjectReplicationRules struct {
RuleId string RuleID string
Status string Status string
} }
// ObjectReplicationPolicy are deserialized attributes // ObjectReplicationPolicy are deserialized attributes.
type ObjectReplicationPolicy struct { type ObjectReplicationPolicy struct {
PolicyId *string PolicyID *string
Rules *[]ObjectReplicationRules Rules *[]ObjectReplicationRules
} }
// deserializeORSPolicies is utility function to deserialize ORS Policies // deserializeORSPolicies is utility function to deserialize ORS Policies.
func deserializeORSPolicies(policies map[string]string) (objectReplicationPolicies []ObjectReplicationPolicy) { func deserializeORSPolicies(policies map[string]*string) (objectReplicationPolicies []ObjectReplicationPolicy) {
if policies == nil { if policies == nil {
return nil return nil
} }
// For source blobs (blobs that have policy ids and rule ids applied to them), // For source blobs (blobs that have policy ids and rule ids applied to them),
// the header will be formatted as "x-ms-or-<policy_id>_<rule_id>: {Complete, Failed}". // the header will be formatted as "x-ms-or-<policy_id>_<rule_id>: {Complete, Failed}".
// The value of this header is the status of the replication. // The value of this header is the status of the replication.
orPolicyStatusHeader := make(map[string]string) orPolicyStatusHeader := make(map[string]*string)
for key, value := range policies { for key, value := range policies {
if strings.Contains(key, "or-") && key != "x-ms-or-policy-id" { if strings.Contains(key, "or-") && key != "x-ms-or-policy-id" {
orPolicyStatusHeader[key] = value orPolicyStatusHeader[key] = value
@ -44,19 +44,19 @@ func deserializeORSPolicies(policies map[string]string) (objectReplicationPolici
policyAndRuleIDs := strings.Split(strings.Split(key, "or-")[1], "_") policyAndRuleIDs := strings.Split(strings.Split(key, "or-")[1], "_")
policyId, ruleId := policyAndRuleIDs[0], policyAndRuleIDs[1] policyId, ruleId := policyAndRuleIDs[0], policyAndRuleIDs[1]
parsedResult[policyId] = append(parsedResult[policyId], ObjectReplicationRules{RuleId: ruleId, Status: value}) parsedResult[policyId] = append(parsedResult[policyId], ObjectReplicationRules{RuleID: ruleId, Status: *value})
} }
for policyId, rules := range parsedResult { for policyId, rules := range parsedResult {
objectReplicationPolicies = append(objectReplicationPolicies, ObjectReplicationPolicy{ objectReplicationPolicies = append(objectReplicationPolicies, ObjectReplicationPolicy{
PolicyId: &policyId, PolicyID: &policyId,
Rules: &rules, Rules: &rules,
}) })
} }
return return
} }
// ParseHTTPHeaders parses GetPropertiesResponse and returns HTTPHeaders // ParseHTTPHeaders parses GetPropertiesResponse and returns HTTPHeaders.
func ParseHTTPHeaders(resp GetPropertiesResponse) HTTPHeaders { func ParseHTTPHeaders(resp GetPropertiesResponse) HTTPHeaders {
return HTTPHeaders{ return HTTPHeaders{
BlobContentType: resp.ContentType, BlobContentType: resp.ContentType,

View file

@ -0,0 +1,156 @@
//go:build go1.18
// +build go1.18
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
package bloberror
import (
"errors"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
)
// HasCode returns true if the provided error is an *azcore.ResponseError
// with its ErrorCode field equal to one of the specified Codes.
func HasCode(err error, codes ...Code) bool {
var respErr *azcore.ResponseError
if !errors.As(err, &respErr) {
return false
}
for _, code := range codes {
if respErr.ErrorCode == string(code) {
return true
}
}
return false
}
// Code - Error codes returned by the service
type Code = generated.StorageErrorCode
const (
AccountAlreadyExists Code = "AccountAlreadyExists"
AccountBeingCreated Code = "AccountBeingCreated"
AccountIsDisabled Code = "AccountIsDisabled"
AppendPositionConditionNotMet Code = "AppendPositionConditionNotMet"
AuthenticationFailed Code = "AuthenticationFailed"
AuthorizationFailure Code = "AuthorizationFailure"
AuthorizationPermissionMismatch Code = "AuthorizationPermissionMismatch"
AuthorizationProtocolMismatch Code = "AuthorizationProtocolMismatch"
AuthorizationResourceTypeMismatch Code = "AuthorizationResourceTypeMismatch"
AuthorizationServiceMismatch Code = "AuthorizationServiceMismatch"
AuthorizationSourceIPMismatch Code = "AuthorizationSourceIPMismatch"
BlobAlreadyExists Code = "BlobAlreadyExists"
BlobArchived Code = "BlobArchived"
BlobBeingRehydrated Code = "BlobBeingRehydrated"
BlobImmutableDueToPolicy Code = "BlobImmutableDueToPolicy"
BlobNotArchived Code = "BlobNotArchived"
BlobNotFound Code = "BlobNotFound"
BlobOverwritten Code = "BlobOverwritten"
BlobTierInadequateForContentLength Code = "BlobTierInadequateForContentLength"
BlobUsesCustomerSpecifiedEncryption Code = "BlobUsesCustomerSpecifiedEncryption"
BlockCountExceedsLimit Code = "BlockCountExceedsLimit"
BlockListTooLong Code = "BlockListTooLong"
CannotChangeToLowerTier Code = "CannotChangeToLowerTier"
CannotVerifyCopySource Code = "CannotVerifyCopySource"
ConditionHeadersNotSupported Code = "ConditionHeadersNotSupported"
ConditionNotMet Code = "ConditionNotMet"
ContainerAlreadyExists Code = "ContainerAlreadyExists"
ContainerBeingDeleted Code = "ContainerBeingDeleted"
ContainerDisabled Code = "ContainerDisabled"
ContainerNotFound Code = "ContainerNotFound"
ContentLengthLargerThanTierLimit Code = "ContentLengthLargerThanTierLimit"
CopyAcrossAccountsNotSupported Code = "CopyAcrossAccountsNotSupported"
CopyIDMismatch Code = "CopyIdMismatch"
EmptyMetadataKey Code = "EmptyMetadataKey"
FeatureVersionMismatch Code = "FeatureVersionMismatch"
IncrementalCopyBlobMismatch Code = "IncrementalCopyBlobMismatch"
IncrementalCopyOfEralierVersionSnapshotNotAllowed Code = "IncrementalCopyOfEralierVersionSnapshotNotAllowed"
IncrementalCopySourceMustBeSnapshot Code = "IncrementalCopySourceMustBeSnapshot"
InfiniteLeaseDurationRequired Code = "InfiniteLeaseDurationRequired"
InsufficientAccountPermissions Code = "InsufficientAccountPermissions"
InternalError Code = "InternalError"
InvalidAuthenticationInfo Code = "InvalidAuthenticationInfo"
InvalidBlobOrBlock Code = "InvalidBlobOrBlock"
InvalidBlobTier Code = "InvalidBlobTier"
InvalidBlobType Code = "InvalidBlobType"
InvalidBlockID Code = "InvalidBlockId"
InvalidBlockList Code = "InvalidBlockList"
InvalidHTTPVerb Code = "InvalidHttpVerb"
InvalidHeaderValue Code = "InvalidHeaderValue"
InvalidInput Code = "InvalidInput"
InvalidMD5 Code = "InvalidMd5"
InvalidMetadata Code = "InvalidMetadata"
InvalidOperation Code = "InvalidOperation"
InvalidPageRange Code = "InvalidPageRange"
InvalidQueryParameterValue Code = "InvalidQueryParameterValue"
InvalidRange Code = "InvalidRange"
InvalidResourceName Code = "InvalidResourceName"
InvalidSourceBlobType Code = "InvalidSourceBlobType"
InvalidSourceBlobURL Code = "InvalidSourceBlobUrl"
InvalidURI Code = "InvalidUri"
InvalidVersionForPageBlobOperation Code = "InvalidVersionForPageBlobOperation"
InvalidXMLDocument Code = "InvalidXmlDocument"
InvalidXMLNodeValue Code = "InvalidXmlNodeValue"
LeaseAlreadyBroken Code = "LeaseAlreadyBroken"
LeaseAlreadyPresent Code = "LeaseAlreadyPresent"
LeaseIDMismatchWithBlobOperation Code = "LeaseIdMismatchWithBlobOperation"
LeaseIDMismatchWithContainerOperation Code = "LeaseIdMismatchWithContainerOperation"
LeaseIDMismatchWithLeaseOperation Code = "LeaseIdMismatchWithLeaseOperation"
LeaseIDMissing Code = "LeaseIdMissing"
LeaseIsBreakingAndCannotBeAcquired Code = "LeaseIsBreakingAndCannotBeAcquired"
LeaseIsBreakingAndCannotBeChanged Code = "LeaseIsBreakingAndCannotBeChanged"
LeaseIsBrokenAndCannotBeRenewed Code = "LeaseIsBrokenAndCannotBeRenewed"
LeaseLost Code = "LeaseLost"
LeaseNotPresentWithBlobOperation Code = "LeaseNotPresentWithBlobOperation"
LeaseNotPresentWithContainerOperation Code = "LeaseNotPresentWithContainerOperation"
LeaseNotPresentWithLeaseOperation Code = "LeaseNotPresentWithLeaseOperation"
MD5Mismatch Code = "Md5Mismatch"
CRC64Mismatch Code = "Crc64Mismatch"
MaxBlobSizeConditionNotMet Code = "MaxBlobSizeConditionNotMet"
MetadataTooLarge Code = "MetadataTooLarge"
MissingContentLengthHeader Code = "MissingContentLengthHeader"
MissingRequiredHeader Code = "MissingRequiredHeader"
MissingRequiredQueryParameter Code = "MissingRequiredQueryParameter"
MissingRequiredXMLNode Code = "MissingRequiredXmlNode"
MultipleConditionHeadersNotSupported Code = "MultipleConditionHeadersNotSupported"
NoAuthenticationInformation Code = "NoAuthenticationInformation"
NoPendingCopyOperation Code = "NoPendingCopyOperation"
OperationNotAllowedOnIncrementalCopyBlob Code = "OperationNotAllowedOnIncrementalCopyBlob"
OperationTimedOut Code = "OperationTimedOut"
OutOfRangeInput Code = "OutOfRangeInput"
OutOfRangeQueryParameterValue Code = "OutOfRangeQueryParameterValue"
PendingCopyOperation Code = "PendingCopyOperation"
PreviousSnapshotCannotBeNewer Code = "PreviousSnapshotCannotBeNewer"
PreviousSnapshotNotFound Code = "PreviousSnapshotNotFound"
PreviousSnapshotOperationNotSupported Code = "PreviousSnapshotOperationNotSupported"
RequestBodyTooLarge Code = "RequestBodyTooLarge"
RequestURLFailedToParse Code = "RequestUrlFailedToParse"
ResourceAlreadyExists Code = "ResourceAlreadyExists"
ResourceNotFound Code = "ResourceNotFound"
ResourceTypeMismatch Code = "ResourceTypeMismatch"
SequenceNumberConditionNotMet Code = "SequenceNumberConditionNotMet"
SequenceNumberIncrementTooLarge Code = "SequenceNumberIncrementTooLarge"
ServerBusy Code = "ServerBusy"
SnapshotCountExceeded Code = "SnapshotCountExceeded"
SnapshotOperationRateExceeded Code = "SnapshotOperationRateExceeded"
SnapshotsPresent Code = "SnapshotsPresent"
SourceConditionNotMet Code = "SourceConditionNotMet"
SystemInUse Code = "SystemInUse"
TargetConditionNotMet Code = "TargetConditionNotMet"
UnauthorizedBlobOverwrite Code = "UnauthorizedBlobOverwrite"
UnsupportedHTTPVerb Code = "UnsupportedHttpVerb"
UnsupportedHeader Code = "UnsupportedHeader"
UnsupportedQueryParameter Code = "UnsupportedQueryParameter"
UnsupportedXMLNode Code = "UnsupportedXmlNode"
)
var (
// MissingSharedKeyCredential - Error is returned when SAS URL is being created without SharedKeyCredential.
MissingSharedKeyCredential = errors.New("SAS can only be signed with a SharedKeyCredential")
)

View file

@ -20,6 +20,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming" "github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/internal/log"
"github.com/Azure/azure-sdk-for-go/sdk/internal/uuid" "github.com/Azure/azure-sdk-for-go/sdk/internal/uuid"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/base" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/base"
@ -189,12 +190,11 @@ func (bb *Client) StageBlock(ctx context.Context, base64BlockID string, body io.
// StageBlockFromURL copies the specified block from a source URL to the block blob's "staging area" to be later committed by a call to CommitBlockList. // StageBlockFromURL copies the specified block from a source URL to the block blob's "staging area" to be later committed by a call to CommitBlockList.
// If count is CountToEnd (0), then data is read from specified offset to the end. // If count is CountToEnd (0), then data is read from specified offset to the end.
// For more information, see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url. // For more information, see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url.
func (bb *Client) StageBlockFromURL(ctx context.Context, base64BlockID string, sourceURL string, func (bb *Client) StageBlockFromURL(ctx context.Context, base64BlockID string, sourceURL string, options *StageBlockFromURLOptions) (StageBlockFromURLResponse, error) {
contentLength int64, options *StageBlockFromURLOptions) (StageBlockFromURLResponse, error) {
stageBlockFromURLOptions, cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions := options.format() stageBlockFromURLOptions, cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions := options.format()
resp, err := bb.generated().StageBlockFromURL(ctx, base64BlockID, contentLength, sourceURL, stageBlockFromURLOptions, resp, err := bb.generated().StageBlockFromURL(ctx, base64BlockID, 0, sourceURL, stageBlockFromURLOptions,
cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions) cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions)
return resp, err return resp, err
@ -218,8 +218,8 @@ func (bb *Client) CommitBlockList(ctx context.Context, base64BlockIDs []string,
var commitOptions *generated.BlockBlobClientCommitBlockListOptions var commitOptions *generated.BlockBlobClientCommitBlockListOptions
var headers *generated.BlobHTTPHeaders var headers *generated.BlobHTTPHeaders
var leaseAccess *blob.LeaseAccessConditions var leaseAccess *blob.LeaseAccessConditions
var cpkInfo *generated.CpkInfo var cpkInfo *generated.CPKInfo
var cpkScope *generated.CpkScopeInfo var cpkScope *generated.CPKScopeInfo
var modifiedAccess *generated.ModifiedAccessConditions var modifiedAccess *generated.ModifiedAccessConditions
if options != nil { if options != nil {
@ -238,8 +238,8 @@ func (bb *Client) CommitBlockList(ctx context.Context, base64BlockIDs []string,
headers = options.HTTPHeaders headers = options.HTTPHeaders
leaseAccess, modifiedAccess = exported.FormatBlobAccessConditions(options.AccessConditions) leaseAccess, modifiedAccess = exported.FormatBlobAccessConditions(options.AccessConditions)
cpkInfo = options.CpkInfo cpkInfo = options.CPKInfo
cpkScope = options.CpkScopeInfo cpkScope = options.CPKScopeInfo
} }
resp, err := bb.generated().CommitBlockList(ctx, blockLookupList, commitOptions, headers, leaseAccess, cpkInfo, cpkScope, modifiedAccess) resp, err := bb.generated().CommitBlockList(ctx, blockLookupList, commitOptions, headers, leaseAccess, cpkInfo, cpkScope, modifiedAccess)
@ -291,7 +291,7 @@ func (bb *Client) SetLegalHold(ctx context.Context, legalHold bool, options *blo
// SetTier operation sets the tier on a blob. The operation is allowed on a page // SetTier operation sets the tier on a blob. The operation is allowed on a page
// blob in a premium storage account and on a block blob in a blob storage account (locally // blob in a premium storage account and on a block blob in a blob storage account (locally
// redundant storage only). A premium page blob's tier determines the allowed size, IOPS, and // redundant storage only). A premium page blob's tier determines the allowed size, IOPs, and
// bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation // bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation
// does not update the blob's ETag. // does not update the blob's ETag.
// For detailed information about block blob level tiering see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers. // For detailed information about block blob level tiering see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers.
@ -324,7 +324,7 @@ func (bb *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeade
// SetMetadata changes a blob's metadata. // SetMetadata changes a blob's metadata.
// https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata. // https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata.
func (bb *Client) SetMetadata(ctx context.Context, metadata map[string]string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) { func (bb *Client) SetMetadata(ctx context.Context, metadata map[string]*string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) {
return bb.BlobClient().SetMetadata(ctx, metadata, o) return bb.BlobClient().SetMetadata(ctx, metadata, o)
} }
@ -411,6 +411,14 @@ func (bb *Client) uploadFromReader(ctx context.Context, reader io.ReaderAt, actu
return uploadFromReaderResponse{}, errors.New("block limit exceeded") return uploadFromReaderResponse{}, errors.New("block limit exceeded")
} }
if log.Should(exported.EventUpload) {
urlparts, err := blob.ParseURL(bb.generated().Endpoint())
if err == nil {
log.Writef(exported.EventUpload, "blob name %s actual size %v block-size %v block-count %v",
urlparts.BlobName, actualSize, o.BlockSize, numBlocks)
}
}
blockIDList := make([]string, numBlocks) // Base-64 encoded block IDs blockIDList := make([]string, numBlocks) // Base-64 encoded block IDs
progress := int64(0) progress := int64(0)
progressLock := &sync.Mutex{} progressLock := &sync.Mutex{}

View file

@ -9,7 +9,7 @@ package blockblob
import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated" import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
const ( const (
// CountToEnd specifies the end of the file // CountToEnd specifies the end of the file.
CountToEnd = 0 CountToEnd = 0
_1MiB = 1024 * 1024 _1MiB = 1024 * 1024

View file

@ -20,7 +20,7 @@ import (
// Block - Represents a single block in a block blob. It describes the block's ID and size. // Block - Represents a single block in a block blob. It describes the block's ID and size.
type Block = generated.Block type Block = generated.Block
// BlockList - type of blocklist (committed/uncommitted) // BlockList - can be uncommitted or committed blocks (committed/uncommitted)
type BlockList = generated.BlockList type BlockList = generated.BlockList
// Request Model Declaration ------------------------------------------------------------------------------------------- // Request Model Declaration -------------------------------------------------------------------------------------------
@ -31,7 +31,7 @@ type UploadOptions struct {
Tags map[string]string Tags map[string]string
// Optional. Specifies a user-defined name-value pair associated with the blob. // Optional. Specifies a user-defined name-value pair associated with the blob.
Metadata map[string]string Metadata map[string]*string
// Optional. Indicates the tier to be set on the blob. // Optional. Indicates the tier to be set on the blob.
Tier *blob.AccessTier Tier *blob.AccessTier
@ -40,8 +40,8 @@ type UploadOptions struct {
TransactionalContentMD5 []byte TransactionalContentMD5 []byte
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
LegalHold *bool LegalHold *bool
ImmutabilityPolicyMode *blob.ImmutabilityPolicySetting ImmutabilityPolicyMode *blob.ImmutabilityPolicySetting
@ -49,7 +49,7 @@ type UploadOptions struct {
} }
func (o *UploadOptions) format() (*generated.BlockBlobClientUploadOptions, *generated.BlobHTTPHeaders, *generated.LeaseAccessConditions, func (o *UploadOptions) format() (*generated.BlockBlobClientUploadOptions, *generated.BlobHTTPHeaders, *generated.LeaseAccessConditions,
*generated.CpkInfo, *generated.CpkScopeInfo, *generated.ModifiedAccessConditions) { *generated.CPKInfo, *generated.CPKScopeInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil
} }
@ -65,16 +65,16 @@ func (o *UploadOptions) format() (*generated.BlockBlobClientUploadOptions, *gene
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return &basics, o.HTTPHeaders, leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions return &basics, o.HTTPHeaders, leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// StageBlockOptions contains the optional parameters for the Client.StageBlock method. // StageBlockOptions contains the optional parameters for the Client.StageBlock method.
type StageBlockOptions struct { type StageBlockOptions struct {
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
LeaseAccessConditions *blob.LeaseAccessConditions LeaseAccessConditions *blob.LeaseAccessConditions
@ -84,12 +84,12 @@ type StageBlockOptions struct {
} }
// StageBlockOptions contains the optional parameters for the Client.StageBlock method. // StageBlockOptions contains the optional parameters for the Client.StageBlock method.
func (o *StageBlockOptions) format() (*generated.BlockBlobClientStageBlockOptions, *generated.LeaseAccessConditions, *generated.CpkInfo, *generated.CpkScopeInfo) { func (o *StageBlockOptions) format() (*generated.BlockBlobClientStageBlockOptions, *generated.LeaseAccessConditions, *generated.CPKInfo, *generated.CPKScopeInfo) {
if o == nil { if o == nil {
return nil, nil, nil, nil return nil, nil, nil, nil
} }
return &generated.BlockBlobClientStageBlockOptions{}, o.LeaseAccessConditions, o.CpkInfo, o.CpkScopeInfo return &generated.BlockBlobClientStageBlockOptions{}, o.LeaseAccessConditions, o.CPKInfo, o.CPKScopeInfo
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -109,12 +109,12 @@ type StageBlockFromURLOptions struct {
// Range specifies a range of bytes. The default value is all bytes. // Range specifies a range of bytes. The default value is all bytes.
Range blob.HTTPRange Range blob.HTTPRange
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
} }
func (o *StageBlockFromURLOptions) format() (*generated.BlockBlobClientStageBlockFromURLOptions, *generated.CpkInfo, *generated.CpkScopeInfo, *generated.LeaseAccessConditions, *generated.SourceModifiedAccessConditions) { func (o *StageBlockFromURLOptions) format() (*generated.BlockBlobClientStageBlockFromURLOptions, *generated.CPKInfo, *generated.CPKScopeInfo, *generated.LeaseAccessConditions, *generated.SourceModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil return nil, nil, nil, nil, nil
} }
@ -128,7 +128,7 @@ func (o *StageBlockFromURLOptions) format() (*generated.BlockBlobClientStageBloc
o.SourceContentValidation.Apply(options) o.SourceContentValidation.Apply(options)
} }
return options, o.CpkInfo, o.CpkScopeInfo, o.LeaseAccessConditions, o.SourceModifiedAccessConditions return options, o.CPKInfo, o.CPKScopeInfo, o.LeaseAccessConditions, o.SourceModifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -136,15 +136,15 @@ func (o *StageBlockFromURLOptions) format() (*generated.BlockBlobClientStageBloc
// CommitBlockListOptions contains the optional parameters for Client.CommitBlockList method. // CommitBlockListOptions contains the optional parameters for Client.CommitBlockList method.
type CommitBlockListOptions struct { type CommitBlockListOptions struct {
Tags map[string]string Tags map[string]string
Metadata map[string]string Metadata map[string]*string
RequestID *string RequestID *string
Tier *blob.AccessTier Tier *blob.AccessTier
Timeout *int32 Timeout *int32
TransactionalContentCRC64 []byte TransactionalContentCRC64 []byte
TransactionalContentMD5 []byte TransactionalContentMD5 []byte
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
LegalHold *bool LegalHold *bool
ImmutabilityPolicyMode *blob.ImmutabilityPolicySetting ImmutabilityPolicyMode *blob.ImmutabilityPolicySetting
@ -183,7 +183,7 @@ type uploadFromReaderOptions struct {
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
// Metadata indicates the metadata to be associated with the blob when PutBlockList is called. // Metadata indicates the metadata to be associated with the blob when PutBlockList is called.
Metadata map[string]string Metadata map[string]*string
// AccessConditions indicates the access conditions for the block blob. // AccessConditions indicates the access conditions for the block blob.
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
@ -195,8 +195,8 @@ type uploadFromReaderOptions struct {
Tags map[string]string Tags map[string]string
// ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data. // ClientProvidedKeyOptions indicates the client provided key by name and/or by value to encrypt/decrypt data.
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
// Concurrency indicates the maximum number of blocks to upload in parallel (0=default) // Concurrency indicates the maximum number of blocks to upload in parallel (0=default)
Concurrency uint16 Concurrency uint16
@ -209,17 +209,17 @@ type uploadFromReaderOptions struct {
TransactionalContentMD5 []byte TransactionalContentMD5 []byte
} }
// UploadBufferOptions provides set of configurations for UploadBuffer operation // UploadBufferOptions provides set of configurations for UploadBuffer operation.
type UploadBufferOptions = uploadFromReaderOptions type UploadBufferOptions = uploadFromReaderOptions
// UploadFileOptions provides set of configurations for UploadFile operation // UploadFileOptions provides set of configurations for UploadFile operation.
type UploadFileOptions = uploadFromReaderOptions type UploadFileOptions = uploadFromReaderOptions
func (o *uploadFromReaderOptions) getStageBlockOptions() *StageBlockOptions { func (o *uploadFromReaderOptions) getStageBlockOptions() *StageBlockOptions {
leaseAccessConditions, _ := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, _ := exported.FormatBlobAccessConditions(o.AccessConditions)
return &StageBlockOptions{ return &StageBlockOptions{
CpkInfo: o.CpkInfo, CPKInfo: o.CPKInfo,
CpkScopeInfo: o.CpkScopeInfo, CPKScopeInfo: o.CPKScopeInfo,
LeaseAccessConditions: leaseAccessConditions, LeaseAccessConditions: leaseAccessConditions,
TransactionalValidation: o.TransactionalValidation, TransactionalValidation: o.TransactionalValidation,
@ -233,8 +233,8 @@ func (o *uploadFromReaderOptions) getUploadBlockBlobOptions() *UploadOptions {
Tier: o.AccessTier, Tier: o.AccessTier,
HTTPHeaders: o.HTTPHeaders, HTTPHeaders: o.HTTPHeaders,
AccessConditions: o.AccessConditions, AccessConditions: o.AccessConditions,
CpkInfo: o.CpkInfo, CPKInfo: o.CPKInfo,
CpkScopeInfo: o.CpkScopeInfo, CPKScopeInfo: o.CPKScopeInfo,
} }
} }
@ -244,16 +244,16 @@ func (o *uploadFromReaderOptions) getCommitBlockListOptions() *CommitBlockListOp
Metadata: o.Metadata, Metadata: o.Metadata,
Tier: o.AccessTier, Tier: o.AccessTier,
HTTPHeaders: o.HTTPHeaders, HTTPHeaders: o.HTTPHeaders,
CpkInfo: o.CpkInfo, CPKInfo: o.CPKInfo,
CpkScopeInfo: o.CpkScopeInfo, CPKScopeInfo: o.CPKScopeInfo,
} }
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// UploadStreamOptions provides set of configurations for UploadStream operation // UploadStreamOptions provides set of configurations for UploadStream operation.
type UploadStreamOptions struct { type UploadStreamOptions struct {
// BlockSize defines the size of the buffer used during upload. The default and mimimum value is 1 MiB. // BlockSize defines the size of the buffer used during upload. The default and minimum value is 1 MiB.
BlockSize int64 BlockSize int64
// Concurrency defines the max number of concurrent uploads to be performed to upload the file. // Concurrency defines the max number of concurrent uploads to be performed to upload the file.
@ -263,12 +263,12 @@ type UploadStreamOptions struct {
TransactionalValidation blob.TransferValidationType TransactionalValidation blob.TransferValidationType
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
Metadata map[string]string Metadata map[string]*string
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
AccessTier *blob.AccessTier AccessTier *blob.AccessTier
Tags map[string]string Tags map[string]string
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
} }
func (u *UploadStreamOptions) setDefaults() { func (u *UploadStreamOptions) setDefaults() {
@ -289,8 +289,8 @@ func (u *UploadStreamOptions) getStageBlockOptions() *StageBlockOptions {
leaseAccessConditions, _ := exported.FormatBlobAccessConditions(u.AccessConditions) leaseAccessConditions, _ := exported.FormatBlobAccessConditions(u.AccessConditions)
return &StageBlockOptions{ return &StageBlockOptions{
TransactionalValidation: u.TransactionalValidation, TransactionalValidation: u.TransactionalValidation,
CpkInfo: u.CpkInfo, CPKInfo: u.CPKInfo,
CpkScopeInfo: u.CpkScopeInfo, CPKScopeInfo: u.CPKScopeInfo,
LeaseAccessConditions: leaseAccessConditions, LeaseAccessConditions: leaseAccessConditions,
} }
} }
@ -305,8 +305,8 @@ func (u *UploadStreamOptions) getCommitBlockListOptions() *CommitBlockListOption
Metadata: u.Metadata, Metadata: u.Metadata,
Tier: u.AccessTier, Tier: u.AccessTier,
HTTPHeaders: u.HTTPHeaders, HTTPHeaders: u.HTTPHeaders,
CpkInfo: u.CpkInfo, CPKInfo: u.CPKInfo,
CpkScopeInfo: u.CpkScopeInfo, CPKScopeInfo: u.CPKScopeInfo,
AccessConditions: u.AccessConditions, AccessConditions: u.AccessConditions,
} }
} }
@ -321,27 +321,27 @@ func (u *UploadStreamOptions) getUploadOptions() *UploadOptions {
Metadata: u.Metadata, Metadata: u.Metadata,
Tier: u.AccessTier, Tier: u.AccessTier,
HTTPHeaders: u.HTTPHeaders, HTTPHeaders: u.HTTPHeaders,
CpkInfo: u.CpkInfo, CPKInfo: u.CPKInfo,
CpkScopeInfo: u.CpkScopeInfo, CPKScopeInfo: u.CPKScopeInfo,
AccessConditions: u.AccessConditions, AccessConditions: u.AccessConditions,
} }
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// ExpiryType defines values for ExpiryType // ExpiryType defines values for ExpiryType.
type ExpiryType = exported.ExpiryType type ExpiryType = exported.ExpiryType
// ExpiryTypeAbsolute defines the absolute time for the blob expiry // ExpiryTypeAbsolute defines the absolute time for the blob expiry.
type ExpiryTypeAbsolute = exported.ExpiryTypeAbsolute type ExpiryTypeAbsolute = exported.ExpiryTypeAbsolute
// ExpiryTypeRelativeToNow defines the duration relative to now for the blob expiry // ExpiryTypeRelativeToNow defines the duration relative to now for the blob expiry.
type ExpiryTypeRelativeToNow = exported.ExpiryTypeRelativeToNow type ExpiryTypeRelativeToNow = exported.ExpiryTypeRelativeToNow
// ExpiryTypeRelativeToCreation defines the duration relative to creation for the blob expiry // ExpiryTypeRelativeToCreation defines the duration relative to creation for the blob expiry.
type ExpiryTypeRelativeToCreation = exported.ExpiryTypeRelativeToCreation type ExpiryTypeRelativeToCreation = exported.ExpiryTypeRelativeToCreation
// ExpiryTypeNever defines that the blob will be set to never expire // ExpiryTypeNever defines that the blob will be set to never expire.
type ExpiryTypeNever = exported.ExpiryTypeNever type ExpiryTypeNever = exported.ExpiryTypeNever
// SetExpiryOptions contains the optional parameters for the Client.SetExpiry method. // SetExpiryOptions contains the optional parameters for the Client.SetExpiry method.

View file

@ -110,5 +110,5 @@ type UploadBufferResponse = uploadFromReaderResponse
// UploadStreamResponse contains the response from method Client.CommitBlockList. // UploadStreamResponse contains the response from method Client.CommitBlockList.
type UploadStreamResponse = CommitBlockListResponse type UploadStreamResponse = CommitBlockListResponse
// SetExpiryResponse contains the response from method BlobClient.SetExpiry. // SetExpiryResponse contains the response from method Client.SetExpiry.
type SetExpiryResponse = generated.BlobClientSetExpiryResponse type SetExpiryResponse = generated.BlobClientSetExpiryResponse

View file

@ -10,7 +10,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
) )
// PublicAccessType defines values for AccessType - private (default) or blob or container // PublicAccessType defines values for AccessType - private (default) or blob or container.
type PublicAccessType = generated.PublicAccessType type PublicAccessType = generated.PublicAccessType
const ( const (
@ -23,7 +23,7 @@ func PossiblePublicAccessTypeValues() []PublicAccessType {
return generated.PossiblePublicAccessTypeValues() return generated.PossiblePublicAccessTypeValues()
} }
// DeleteSnapshotsOptionType defines values for DeleteSnapshotsOptionType // DeleteSnapshotsOptionType defines values for DeleteSnapshotsOptionType.
type DeleteSnapshotsOptionType = generated.DeleteSnapshotsOptionType type DeleteSnapshotsOptionType = generated.DeleteSnapshotsOptionType
const ( const (

View file

@ -8,7 +8,7 @@ package container
import ( import (
"context" "context"
"errors" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
"net/http" "net/http"
"net/url" "net/url"
"time" "time"
@ -147,13 +147,13 @@ func (c *Client) NewPageBlobClient(blobName string) *pageblob.Client {
// For more information, see https://docs.microsoft.com/rest/api/storageservices/create-container. // For more information, see https://docs.microsoft.com/rest/api/storageservices/create-container.
func (c *Client) Create(ctx context.Context, options *CreateOptions) (CreateResponse, error) { func (c *Client) Create(ctx context.Context, options *CreateOptions) (CreateResponse, error) {
var opts *generated.ContainerClientCreateOptions var opts *generated.ContainerClientCreateOptions
var cpkScopes *generated.ContainerCpkScopeInfo var cpkScopes *generated.ContainerCPKScopeInfo
if options != nil { if options != nil {
opts = &generated.ContainerClientCreateOptions{ opts = &generated.ContainerClientCreateOptions{
Access: options.Access, Access: options.Access,
Metadata: options.Metadata, Metadata: options.Metadata,
} }
cpkScopes = options.CpkScopeInfo cpkScopes = options.CPKScopeInfo
} }
resp, err := c.generated().Create(ctx, opts, cpkScopes) resp, err := c.generated().Create(ctx, opts, cpkScopes)
@ -217,15 +217,12 @@ func (c *Client) GetAccessPolicy(ctx context.Context, o *GetAccessPolicyOptions)
// SetAccessPolicy sets the container's permissions. The access policy indicates whether blobs in a container may be accessed publicly. // SetAccessPolicy sets the container's permissions. The access policy indicates whether blobs in a container may be accessed publicly.
// For more information, see https://docs.microsoft.com/rest/api/storageservices/set-container-acl. // For more information, see https://docs.microsoft.com/rest/api/storageservices/set-container-acl.
func (c *Client) SetAccessPolicy(ctx context.Context, containerACL []*SignedIdentifier, o *SetAccessPolicyOptions) (SetAccessPolicyResponse, error) { func (c *Client) SetAccessPolicy(ctx context.Context, o *SetAccessPolicyOptions) (SetAccessPolicyResponse, error) {
accessPolicy, mac, lac := o.format() accessPolicy, mac, lac, acl, err := o.format()
for _, c := range containerACL { if err != nil {
err := formatTime(c) return SetAccessPolicyResponse{}, err
if err != nil {
return SetAccessPolicyResponse{}, err
}
} }
resp, err := c.generated().SetAccessPolicy(ctx, containerACL, accessPolicy, mac, lac) resp, err := c.generated().SetAccessPolicy(ctx, acl, accessPolicy, mac, lac)
return resp, err return resp, err
} }
@ -271,12 +268,9 @@ func (c *Client) NewListBlobsFlatPager(o *ListBlobsFlatOptions) *runtime.Pager[L
// NewListBlobsHierarchyPager returns a channel of blobs starting from the specified Marker. Use an empty // NewListBlobsHierarchyPager returns a channel of blobs starting from the specified Marker. Use an empty
// Marker to start enumeration from the beginning. Blob names are returned in lexicographic order. // Marker to start enumeration from the beginning. Blob names are returned in lexicographic order.
// After getting a segment, process it, and then call ListBlobsHierarchicalSegment again (passing the the // After getting a segment, process it, and then call ListBlobsHierarchicalSegment again (passing the
// previously-returned Marker) to get the next segment. // previously-returned Marker) to get the next segment.
// For more information, see https://docs.microsoft.com/rest/api/storageservices/list-blobs. // For more information, see https://docs.microsoft.com/rest/api/storageservices/list-blobs.
// AutoPagerTimeout specifies the amount of time with no read operations before the channel times out and closes. Specify no time and it will be ignored.
// AutoPagerBufferSize specifies the channel's buffer size.
// Both the blob item channel and error channel should be watched. Only one error will be released via this channel (or a nil error, to register a clean exit.)
func (c *Client) NewListBlobsHierarchyPager(delimiter string, o *ListBlobsHierarchyOptions) *runtime.Pager[ListBlobsHierarchyResponse] { func (c *Client) NewListBlobsHierarchyPager(delimiter string, o *ListBlobsHierarchyOptions) *runtime.Pager[ListBlobsHierarchyResponse] {
listOptions := o.format() listOptions := o.format()
return runtime.NewPager(runtime.PagingHandler[ListBlobsHierarchyResponse]{ return runtime.NewPager(runtime.PagingHandler[ListBlobsHierarchyResponse]{
@ -309,23 +303,22 @@ func (c *Client) NewListBlobsHierarchyPager(delimiter string, o *ListBlobsHierar
// GetSASURL is a convenience method for generating a SAS token for the currently pointed at container. // GetSASURL is a convenience method for generating a SAS token for the currently pointed at container.
// It can only be used if the credential supplied during creation was a SharedKeyCredential. // It can only be used if the credential supplied during creation was a SharedKeyCredential.
func (c *Client) GetSASURL(permissions sas.ContainerPermissions, start time.Time, expiry time.Time) (string, error) { func (c *Client) GetSASURL(permissions sas.ContainerPermissions, expiry time.Time, o *GetSASURLOptions) (string, error) {
if c.sharedKey() == nil { if c.sharedKey() == nil {
return "", errors.New("SAS can only be signed with a SharedKeyCredential") return "", bloberror.MissingSharedKeyCredential
} }
st := o.format()
urlParts, err := blob.ParseURL(c.URL()) urlParts, err := blob.ParseURL(c.URL())
if err != nil { if err != nil {
return "", err return "", err
} }
// Containers do not have snapshots, nor versions. // Containers do not have snapshots, nor versions.
qps, err := sas.BlobSignatureValues{ qps, err := sas.BlobSignatureValues{
Version: sas.Version, Version: sas.Version,
Protocol: sas.ProtocolHTTPS, Protocol: sas.ProtocolHTTPS,
ContainerName: urlParts.ContainerName, ContainerName: urlParts.ContainerName,
Permissions: permissions.String(), Permissions: permissions.String(),
StartTime: start.UTC(), StartTime: st,
ExpiryTime: expiry.UTC(), ExpiryTime: expiry.UTC(),
}.SignWithSharedKey(c.sharedKey()) }.SignWithSharedKey(c.sharedKey())
if err != nil { if err != nil {

View file

@ -34,7 +34,7 @@ func PossibleAccessTierValues() []AccessTier {
return generated.PossibleAccessTierValues() return generated.PossibleAccessTierValues()
} }
// PublicAccessType defines values for AccessType - private (default) or blob or container // PublicAccessType defines values for AccessType - private (default) or blob or container.
type PublicAccessType = generated.PublicAccessType type PublicAccessType = generated.PublicAccessType
const ( const (
@ -47,7 +47,7 @@ func PossiblePublicAccessTypeValues() []PublicAccessType {
return generated.PossiblePublicAccessTypeValues() return generated.PossiblePublicAccessTypeValues()
} }
// SKUName defines values for SkuName - LRS, GRS, RAGRS, ZRS, Premium LRS // SKUName defines values for SkuName - LRS, GRS, RAGRS, ZRS, Premium LRS.
type SKUName = generated.SKUName type SKUName = generated.SKUName
const ( const (

View file

@ -25,19 +25,28 @@ func NewSharedKeyCredential(accountName, accountKey string) (*SharedKeyCredentia
// Request Model Declaration ------------------------------------------------------------------------------------------- // Request Model Declaration -------------------------------------------------------------------------------------------
// CpkScopeInfo contains a group of parameters for the ContainerClient.Create method. // CPKScopeInfo contains a group of parameters for the ContainerClient.Create method.
type CpkScopeInfo = generated.ContainerCpkScopeInfo type CPKScopeInfo = generated.ContainerCPKScopeInfo
// BlobProperties - Properties of a blob // BlobFlatListSegment - List of BlobItem.
type BlobFlatListSegment = generated.BlobFlatListSegment
// BlobHierarchyListSegment - List of BlobItem and BlobPrefix.
type BlobHierarchyListSegment = generated.BlobHierarchyListSegment
// BlobProperties - Properties of a blob.
type BlobProperties = generated.BlobProperties type BlobProperties = generated.BlobProperties
// BlobItem - An Azure Storage blob // BlobItem - An Azure Storage blob.
type BlobItem = generated.BlobItem type BlobItem = generated.BlobItem
// BlobTags - Blob tags.
type BlobTags = generated.BlobTags
// BlobPrefix is a blob's prefix when hierarchically listing blobs. // BlobPrefix is a blob's prefix when hierarchically listing blobs.
type BlobPrefix = generated.BlobPrefix type BlobPrefix = generated.BlobPrefix
// BlobTag - a key/value pair on a blob // BlobTag - a key/value pair on a blob.
type BlobTag = generated.BlobTag type BlobTag = generated.BlobTag
// AccessConditions identifies container-specific access conditions which you optionally set. // AccessConditions identifies container-specific access conditions which you optionally set.
@ -49,28 +58,28 @@ type LeaseAccessConditions = exported.LeaseAccessConditions
// ModifiedAccessConditions contains a group of parameters for specifying access conditions. // ModifiedAccessConditions contains a group of parameters for specifying access conditions.
type ModifiedAccessConditions = exported.ModifiedAccessConditions type ModifiedAccessConditions = exported.ModifiedAccessConditions
// AccessPolicy - An Access policy // AccessPolicy - An Access policy.
type AccessPolicy = generated.AccessPolicy type AccessPolicy = generated.AccessPolicy
// AccessPolicyPermission type simplifies creating the permissions string for a container's access policy. // AccessPolicyPermission type simplifies creating the permissions string for a container's access policy.
// Initialize an instance of this type and then call its String method to set AccessPolicy's Permission field. // Initialize an instance of this type and then call its String method to set AccessPolicy's Permission field.
type AccessPolicyPermission = exported.AccessPolicyPermission type AccessPolicyPermission = exported.AccessPolicyPermission
// SignedIdentifier - signed identifier // SignedIdentifier - signed identifier.
type SignedIdentifier = generated.SignedIdentifier type SignedIdentifier = generated.SignedIdentifier
// Request Model Declaration ------------------------------------------------------------------------------------------- // Request Model Declaration -------------------------------------------------------------------------------------------
// CreateOptions contains the optional parameters for the Client.Create method. // CreateOptions contains the optional parameters for the Client.Create method.
type CreateOptions struct { type CreateOptions struct {
// Specifies whether data in the container may be accessed publicly and the level of access // Specifies whether data in the container may be accessed publicly and the level of access.
Access *PublicAccessType Access *PublicAccessType
// Optional. Specifies a user-defined name-value pair associated with the blob. // Optional. Specifies a user-defined name-value pair associated with the blob.
Metadata map[string]string Metadata map[string]*string
// Optional. Specifies the encryption scope settings to set on the container. // Optional. Specifies the encryption scope settings to set on the container.
CpkScopeInfo *CpkScopeInfo CPKScopeInfo *CPKScopeInfo
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -170,11 +179,11 @@ type ListBlobsFlatOptions struct {
// as the value for the marker parameter in a subsequent call to request the next // as the value for the marker parameter in a subsequent call to request the next
// page of list items. The marker value is opaque to the client. // page of list items. The marker value is opaque to the client.
Marker *string Marker *string
// Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value // Specifies the maximum number of containers to return. If the request does not specify MaxResults, or specifies a value
// greater than 5000, the server will return up to 5000 items. Note that if the // greater than 5000, the server will return up to 5000 items. Note that if the
// listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder // listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder
// of the results. For this reason, it is possible that the service will // of the results. For this reason, it is possible that the service will
// return fewer results than specified by maxresults, or than the default of 5000. // return fewer results than specified by MaxResults, or than the default of 5000.
MaxResults *int32 MaxResults *int32
// Filters the results to return only containers whose name begins with the specified prefix. // Filters the results to return only containers whose name begins with the specified prefix.
Prefix *string Prefix *string
@ -192,11 +201,11 @@ type ListBlobsHierarchyOptions struct {
// as the value for the marker parameter in a subsequent call to request the next // as the value for the marker parameter in a subsequent call to request the next
// page of list items. The marker value is opaque to the client. // page of list items. The marker value is opaque to the client.
Marker *string Marker *string
// Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value // Specifies the maximum number of containers to return. If the request does not specify MaxResults, or specifies a value
// greater than 5000, the server will return up to 5000 items. Note that if the // greater than 5000, the server will return up to 5000 items. Note that if the
// listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder // listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder
// of the results. For this reason, it is possible that the service will // of the results. For this reason, it is possible that the service will
// return fewer results than specified by maxresults, or than the default of 5000. // return fewer results than specified by MaxResults, or than the default of 5000.
MaxResults *int32 MaxResults *int32
// Filters the results to return only containers whose name begins with the specified prefix. // Filters the results to return only containers whose name begins with the specified prefix.
Prefix *string Prefix *string
@ -218,9 +227,30 @@ func (o *ListBlobsHierarchyOptions) format() generated.ContainerClientListBlobHi
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// GetSASURLOptions contains the optional parameters for the Client.GetSASURL method.
type GetSASURLOptions struct {
StartTime *time.Time
}
func (o *GetSASURLOptions) format() time.Time {
if o == nil {
return time.Time{}
}
var st time.Time
if o.StartTime != nil {
st = o.StartTime.UTC()
} else {
st = time.Time{}
}
return st
}
// ---------------------------------------------------------------------------------------------------------------------
// SetMetadataOptions contains the optional parameters for the Client.SetMetadata method. // SetMetadataOptions contains the optional parameters for the Client.SetMetadata method.
type SetMetadataOptions struct { type SetMetadataOptions struct {
Metadata map[string]string Metadata map[string]*string
LeaseAccessConditions *LeaseAccessConditions LeaseAccessConditions *LeaseAccessConditions
ModifiedAccessConditions *ModifiedAccessConditions ModifiedAccessConditions *ModifiedAccessConditions
} }
@ -250,23 +280,31 @@ func (o *GetAccessPolicyOptions) format() (*generated.ContainerClientGetAccessPo
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// SetAccessPolicyOptions provides set of configurations for ContainerClient.SetAccessPolicy operation // SetAccessPolicyOptions provides set of configurations for ContainerClient.SetAccessPolicy operation.
type SetAccessPolicyOptions struct { type SetAccessPolicyOptions struct {
// Specifies whether data in the container may be accessed publicly and the level of access // Specifies whether data in the container may be accessed publicly and the level of access.
Access *PublicAccessType // If this header is not included in the request, container data is private to the account owner.
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage Access *PublicAccessType
// analytics logging is enabled.
AccessConditions *AccessConditions AccessConditions *AccessConditions
ContainerACL []*SignedIdentifier
} }
func (o *SetAccessPolicyOptions) format() (*generated.ContainerClientSetAccessPolicyOptions, *LeaseAccessConditions, *ModifiedAccessConditions) { func (o *SetAccessPolicyOptions) format() (*generated.ContainerClientSetAccessPolicyOptions, *LeaseAccessConditions, *ModifiedAccessConditions, []*SignedIdentifier, error) {
if o == nil { if o == nil {
return nil, nil, nil return nil, nil, nil, nil, nil
}
if o.ContainerACL != nil {
for _, c := range o.ContainerACL {
err := formatTime(c)
if err != nil {
return nil, nil, nil, nil, err
}
}
} }
lac, mac := exported.FormatContainerAccessConditions(o.AccessConditions) lac, mac := exported.FormatContainerAccessConditions(o.AccessConditions)
return &generated.ContainerClientSetAccessPolicyOptions{ return &generated.ContainerClientSetAccessPolicyOptions{
Access: o.Access, Access: o.Access,
}, lac, mac }, lac, mac, o.ContainerACL, nil
} }
func formatTime(c *SignedIdentifier) error { func formatTime(c *SignedIdentifier) error {

View file

@ -25,9 +25,15 @@ type GetPropertiesResponse = generated.ContainerClientGetPropertiesResponse
// ListBlobsFlatResponse contains the response from method Client.ListBlobFlatSegment. // ListBlobsFlatResponse contains the response from method Client.ListBlobFlatSegment.
type ListBlobsFlatResponse = generated.ContainerClientListBlobFlatSegmentResponse type ListBlobsFlatResponse = generated.ContainerClientListBlobFlatSegmentResponse
// ListBlobsFlatSegmentResponse - An enumeration of blobs
type ListBlobsFlatSegmentResponse = generated.ListBlobsFlatSegmentResponse
// ListBlobsHierarchyResponse contains the response from method Client.ListBlobHierarchySegment. // ListBlobsHierarchyResponse contains the response from method Client.ListBlobHierarchySegment.
type ListBlobsHierarchyResponse = generated.ContainerClientListBlobHierarchySegmentResponse type ListBlobsHierarchyResponse = generated.ContainerClientListBlobHierarchySegmentResponse
// ListBlobsHierarchySegmentResponse - An enumeration of blobs
type ListBlobsHierarchySegmentResponse = generated.ListBlobsHierarchySegmentResponse
// SetMetadataResponse contains the response from method Client.SetMetadata. // SetMetadataResponse contains the response from method Client.SetMetadata.
type SetMetadataResponse = generated.ContainerClientSetMetadataResponse type SetMetadataResponse = generated.ContainerClientSetMetadataResponse

View file

@ -0,0 +1,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package exported
import (
"github.com/Azure/azure-sdk-for-go/sdk/internal/log"
)
// NOTE: these are publicly exported via type-aliasing in azblob/log.go
const (
// EventUpload is used when we compute number of blocks to upload and size of each block.
EventUpload log.Event = "azblob.Upload"
)

View file

@ -8,5 +8,5 @@ package exported
const ( const (
ModuleName = "azblob" ModuleName = "azblob"
ModuleVersion = "v0.6.1" ModuleVersion = "v1.0.0"
) )

View file

@ -19,7 +19,7 @@ modelerfour:
seal-single-value-enum-by-default: true seal-single-value-enum-by-default: true
lenient-model-deduplication: true lenient-model-deduplication: true
export-clients: true export-clients: true
use: "@autorest/go@4.0.0-preview.43" use: "@autorest/go@4.0.0-preview.45"
``` ```
### Remove pager methods and export various generated methods in container client ### Remove pager methods and export various generated methods in container client
@ -321,3 +321,67 @@ directive:
from: BlobPropertiesInternal from: BlobPropertiesInternal
to: BlobProperties to: BlobProperties
``` ```
### Updating encoding URL, Golang adds '+' which disrupts encoding with service
``` yaml
directive:
- from: zz_service_client.go
where: $
transform: >-
return $.
replace(/req.Raw\(\).URL.RawQuery \= reqQP.Encode\(\)/, `req.Raw().URL.RawQuery = strings.Replace(reqQP.Encode(), "+", "%20", -1)`)
```
### Change `where` parameter in blob filtering to be required
``` yaml
directive:
- from: swagger-document
where: $.parameters.FilterBlobsWhere
transform: >
$.required = true;
```
### Change `Duration` parameter in leases to be required
``` yaml
directive:
- from: swagger-document
where: $.parameters.LeaseDuration
transform: >
$.required = true;
```
### Change CPK acronym to be all caps
``` yaml
directive:
- from: source-file-go
where: $
transform: >-
return $.
replace(/Cpk/g, "CPK");
```
### Change CORS acronym to be all caps
``` yaml
directive:
- from: source-file-go
where: $
transform: >-
return $.
replace(/Cors/g, "CORS");
```
### Change cors xml to be correct
``` yaml
directive:
- from: source-file-go
where: $
transform: >-
return $.
replace(/xml:"CORS>CORSRule"/g, "xml:\"Cors>CorsRule\"");
```

View file

@ -29,8 +29,8 @@ type AppendBlobClient struct {
} }
// NewAppendBlobClient creates a new instance of AppendBlobClient with the specified values. // NewAppendBlobClient creates a new instance of AppendBlobClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewAppendBlobClient(endpoint string, pl runtime.Pipeline) *AppendBlobClient { func NewAppendBlobClient(endpoint string, pl runtime.Pipeline) *AppendBlobClient {
client := &AppendBlobClient{ client := &AppendBlobClient{
endpoint: endpoint, endpoint: endpoint,
@ -43,17 +43,18 @@ func NewAppendBlobClient(endpoint string, pl runtime.Pipeline) *AppendBlobClient
// Block operation is permitted only if the blob was created with x-ms-blob-type set to // Block operation is permitted only if the blob was created with x-ms-blob-type set to
// AppendBlob. Append Block is supported only on version 2015-02-21 version or later. // AppendBlob. Append Block is supported only on version 2015-02-21 version or later.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// body - Initial data // - body - Initial data
// options - AppendBlobClientAppendBlockOptions contains the optional parameters for the AppendBlobClient.AppendBlock method. // - options - AppendBlobClientAppendBlockOptions contains the optional parameters for the AppendBlobClient.AppendBlock method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock // - AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock
// method. // method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *AppendBlobClient) AppendBlock(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *AppendBlobClientAppendBlockOptions, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (AppendBlobClientAppendBlockResponse, error) { func (client *AppendBlobClient) AppendBlock(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *AppendBlobClientAppendBlockOptions, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (AppendBlobClientAppendBlockResponse, error) {
req, err := client.appendBlockCreateRequest(ctx, contentLength, body, options, leaseAccessConditions, appendPositionAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.appendBlockCreateRequest(ctx, contentLength, body, options, leaseAccessConditions, appendPositionAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return AppendBlobClientAppendBlockResponse{}, err return AppendBlobClientAppendBlockResponse{}, err
@ -69,7 +70,7 @@ func (client *AppendBlobClient) AppendBlock(ctx context.Context, contentLength i
} }
// appendBlockCreateRequest creates the AppendBlock request. // appendBlockCreateRequest creates the AppendBlock request.
func (client *AppendBlobClient) appendBlockCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *AppendBlobClientAppendBlockOptions, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *AppendBlobClient) appendBlockCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *AppendBlobClientAppendBlockOptions, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -205,20 +206,21 @@ func (client *AppendBlobClient) appendBlockHandleResponse(resp *http.Response) (
// the contents are read from a source url. The Append Block operation is permitted only if the blob was // the contents are read from a source url. The Append Block operation is permitted only if the blob was
// created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later. // created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// sourceURL - Specify a URL to the copy source. // - sourceURL - Specify a URL to the copy source.
// contentLength - The length of the request. // - contentLength - The length of the request.
// options - AppendBlobClientAppendBlockFromURLOptions contains the optional parameters for the AppendBlobClient.AppendBlockFromURL // - options - AppendBlobClientAppendBlockFromURLOptions contains the optional parameters for the AppendBlobClient.AppendBlockFromURL
// method. // method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock // - AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
func (client *AppendBlobClient) AppendBlockFromURL(ctx context.Context, sourceURL string, contentLength int64, options *AppendBlobClientAppendBlockFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (AppendBlobClientAppendBlockFromURLResponse, error) { func (client *AppendBlobClient) AppendBlockFromURL(ctx context.Context, sourceURL string, contentLength int64, options *AppendBlobClientAppendBlockFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (AppendBlobClientAppendBlockFromURLResponse, error) {
req, err := client.appendBlockFromURLCreateRequest(ctx, sourceURL, contentLength, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, appendPositionAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions) req, err := client.appendBlockFromURLCreateRequest(ctx, sourceURL, contentLength, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, appendPositionAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions)
if err != nil { if err != nil {
return AppendBlobClientAppendBlockFromURLResponse{}, err return AppendBlobClientAppendBlockFromURLResponse{}, err
@ -234,7 +236,7 @@ func (client *AppendBlobClient) AppendBlockFromURL(ctx context.Context, sourceUR
} }
// appendBlockFromURLCreateRequest creates the AppendBlockFromURL request. // appendBlockFromURLCreateRequest creates the AppendBlockFromURL request.
func (client *AppendBlobClient) appendBlockFromURLCreateRequest(ctx context.Context, sourceURL string, contentLength int64, options *AppendBlobClientAppendBlockFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) { func (client *AppendBlobClient) appendBlockFromURLCreateRequest(ctx context.Context, sourceURL string, contentLength int64, options *AppendBlobClientAppendBlockFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -387,15 +389,16 @@ func (client *AppendBlobClient) appendBlockFromURLHandleResponse(resp *http.Resp
// Create - The Create Append Blob operation creates a new append blob. // Create - The Create Append Blob operation creates a new append blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// options - AppendBlobClientCreateOptions contains the optional parameters for the AppendBlobClient.Create method. // - options - AppendBlobClientCreateOptions contains the optional parameters for the AppendBlobClient.Create method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *AppendBlobClient) Create(ctx context.Context, contentLength int64, options *AppendBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (AppendBlobClientCreateResponse, error) { func (client *AppendBlobClient) Create(ctx context.Context, contentLength int64, options *AppendBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (AppendBlobClientCreateResponse, error) {
req, err := client.createCreateRequest(ctx, contentLength, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.createCreateRequest(ctx, contentLength, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return AppendBlobClientCreateResponse{}, err return AppendBlobClientCreateResponse{}, err
@ -411,7 +414,7 @@ func (client *AppendBlobClient) Create(ctx context.Context, contentLength int64,
} }
// createCreateRequest creates the Create request. // createCreateRequest creates the Create request.
func (client *AppendBlobClient) createCreateRequest(ctx context.Context, contentLength int64, options *AppendBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *AppendBlobClient) createCreateRequest(ctx context.Context, contentLength int64, options *AppendBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -440,7 +443,9 @@ func (client *AppendBlobClient) createCreateRequest(ctx context.Context, content
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
@ -554,12 +559,13 @@ func (client *AppendBlobClient) createHandleResponse(resp *http.Response) (Appen
// Seal - The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version // Seal - The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version
// or later. // or later.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - AppendBlobClientSealOptions contains the optional parameters for the AppendBlobClient.Seal method. // - options - AppendBlobClientSealOptions contains the optional parameters for the AppendBlobClient.Seal method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock // - AppendPositionAccessConditions - AppendPositionAccessConditions contains a group of parameters for the AppendBlobClient.AppendBlock
// method. // method.
func (client *AppendBlobClient) Seal(ctx context.Context, options *AppendBlobClientSealOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions) (AppendBlobClientSealResponse, error) { func (client *AppendBlobClient) Seal(ctx context.Context, options *AppendBlobClientSealOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, appendPositionAccessConditions *AppendPositionAccessConditions) (AppendBlobClientSealResponse, error) {
req, err := client.sealCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions, appendPositionAccessConditions) req, err := client.sealCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions, appendPositionAccessConditions)
if err != nil { if err != nil {

View file

@ -15,6 +15,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore"
"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/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
@ -29,8 +30,8 @@ type BlobClient struct {
} }
// NewBlobClient creates a new instance of BlobClient with the specified values. // NewBlobClient creates a new instance of BlobClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewBlobClient(endpoint string, pl runtime.Pipeline) *BlobClient { func NewBlobClient(endpoint string, pl runtime.Pipeline) *BlobClient {
client := &BlobClient{ client := &BlobClient{
endpoint: endpoint, endpoint: endpoint,
@ -42,10 +43,11 @@ func NewBlobClient(endpoint string, pl runtime.Pipeline) *BlobClient {
// AbortCopyFromURL - The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination // AbortCopyFromURL - The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination
// blob with zero length and full metadata. // blob with zero length and full metadata.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// copyID - The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. // - copyID - The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.
// options - BlobClientAbortCopyFromURLOptions contains the optional parameters for the BlobClient.AbortCopyFromURL method. // - options - BlobClientAbortCopyFromURLOptions contains the optional parameters for the BlobClient.AbortCopyFromURL method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) AbortCopyFromURL(ctx context.Context, copyID string, options *BlobClientAbortCopyFromURLOptions, leaseAccessConditions *LeaseAccessConditions) (BlobClientAbortCopyFromURLResponse, error) { func (client *BlobClient) AbortCopyFromURL(ctx context.Context, copyID string, options *BlobClientAbortCopyFromURLOptions, leaseAccessConditions *LeaseAccessConditions) (BlobClientAbortCopyFromURLResponse, error) {
req, err := client.abortCopyFromURLCreateRequest(ctx, copyID, options, leaseAccessConditions) req, err := client.abortCopyFromURLCreateRequest(ctx, copyID, options, leaseAccessConditions)
if err != nil { if err != nil {
@ -110,11 +112,15 @@ func (client *BlobClient) abortCopyFromURLHandleResponse(resp *http.Response) (B
// AcquireLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations // AcquireLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientAcquireLeaseOptions contains the optional parameters for the BlobClient.AcquireLease method. // - duration - Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // lease can be between 15 and 60 seconds. A lease duration cannot be changed using
func (client *BlobClient) AcquireLease(ctx context.Context, options *BlobClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientAcquireLeaseResponse, error) { // renew or change.
req, err := client.acquireLeaseCreateRequest(ctx, options, modifiedAccessConditions) // - options - BlobClientAcquireLeaseOptions contains the optional parameters for the BlobClient.AcquireLease method.
// - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) AcquireLease(ctx context.Context, duration int32, options *BlobClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientAcquireLeaseResponse, error) {
req, err := client.acquireLeaseCreateRequest(ctx, duration, options, modifiedAccessConditions)
if err != nil { if err != nil {
return BlobClientAcquireLeaseResponse{}, err return BlobClientAcquireLeaseResponse{}, err
} }
@ -129,7 +135,7 @@ func (client *BlobClient) AcquireLease(ctx context.Context, options *BlobClientA
} }
// acquireLeaseCreateRequest creates the AcquireLease request. // acquireLeaseCreateRequest creates the AcquireLease request.
func (client *BlobClient) acquireLeaseCreateRequest(ctx context.Context, options *BlobClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlobClient) acquireLeaseCreateRequest(ctx context.Context, duration int32, options *BlobClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -141,9 +147,7 @@ func (client *BlobClient) acquireLeaseCreateRequest(ctx context.Context, options
} }
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
req.Raw().Header["x-ms-lease-action"] = []string{"acquire"} req.Raw().Header["x-ms-lease-action"] = []string{"acquire"}
if options != nil && options.Duration != nil { req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(duration), 10)}
req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(*options.Duration), 10)}
}
if options != nil && options.ProposedLeaseID != nil { if options != nil && options.ProposedLeaseID != nil {
req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID} req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID}
} }
@ -207,9 +211,10 @@ func (client *BlobClient) acquireLeaseHandleResponse(resp *http.Response) (BlobC
// BreakLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations // BreakLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientBreakLeaseOptions contains the optional parameters for the BlobClient.BreakLease method. // - options - BlobClientBreakLeaseOptions contains the optional parameters for the BlobClient.BreakLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) BreakLease(ctx context.Context, options *BlobClientBreakLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientBreakLeaseResponse, error) { func (client *BlobClient) BreakLease(ctx context.Context, options *BlobClientBreakLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientBreakLeaseResponse, error) {
req, err := client.breakLeaseCreateRequest(ctx, options, modifiedAccessConditions) req, err := client.breakLeaseCreateRequest(ctx, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -306,13 +311,14 @@ func (client *BlobClient) breakLeaseHandleResponse(resp *http.Response) (BlobCli
// ChangeLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations // ChangeLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// proposedLeaseID - Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed // - proposedLeaseID - Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed
// lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID // lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID
// string formats. // string formats.
// options - BlobClientChangeLeaseOptions contains the optional parameters for the BlobClient.ChangeLease method. // - options - BlobClientChangeLeaseOptions contains the optional parameters for the BlobClient.ChangeLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) ChangeLease(ctx context.Context, leaseID string, proposedLeaseID string, options *BlobClientChangeLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientChangeLeaseResponse, error) { func (client *BlobClient) ChangeLease(ctx context.Context, leaseID string, proposedLeaseID string, options *BlobClientChangeLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientChangeLeaseResponse, error) {
req, err := client.changeLeaseCreateRequest(ctx, leaseID, proposedLeaseID, options, modifiedAccessConditions) req, err := client.changeLeaseCreateRequest(ctx, leaseID, proposedLeaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -404,15 +410,16 @@ func (client *BlobClient) changeLeaseHandleResponse(resp *http.Response) (BlobCl
// CopyFromURL - The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response // CopyFromURL - The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response
// until the copy is complete. // until the copy is complete.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies // - copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies
// a page blob snapshot. The value should be URL-encoded as it would appear in a request // a page blob snapshot. The value should be URL-encoded as it would appear in a request
// URI. The source blob must either be public or must be authenticated via a shared access signature. // URI. The source blob must either be public or must be authenticated via a shared access signature.
// options - BlobClientCopyFromURLOptions contains the optional parameters for the BlobClient.CopyFromURL method. // - options - BlobClientCopyFromURLOptions contains the optional parameters for the BlobClient.CopyFromURL method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) CopyFromURL(ctx context.Context, copySource string, options *BlobClientCopyFromURLOptions, sourceModifiedAccessConditions *SourceModifiedAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientCopyFromURLResponse, error) { func (client *BlobClient) CopyFromURL(ctx context.Context, copySource string, options *BlobClientCopyFromURLOptions, sourceModifiedAccessConditions *SourceModifiedAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientCopyFromURLResponse, error) {
req, err := client.copyFromURLCreateRequest(ctx, copySource, options, sourceModifiedAccessConditions, modifiedAccessConditions, leaseAccessConditions) req, err := client.copyFromURLCreateRequest(ctx, copySource, options, sourceModifiedAccessConditions, modifiedAccessConditions, leaseAccessConditions)
if err != nil { if err != nil {
@ -442,7 +449,9 @@ func (client *BlobClient) copyFromURLCreateRequest(ctx context.Context, copySour
req.Raw().Header["x-ms-requires-sync"] = []string{"true"} req.Raw().Header["x-ms-requires-sync"] = []string{"true"}
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if options != nil && options.Tier != nil { if options != nil && options.Tier != nil {
@ -562,13 +571,14 @@ func (client *BlobClient) copyFromURLHandleResponse(resp *http.Response) (BlobCl
// CreateSnapshot - The Create Snapshot operation creates a read-only snapshot of a blob // CreateSnapshot - The Create Snapshot operation creates a read-only snapshot of a blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientCreateSnapshotOptions contains the optional parameters for the BlobClient.CreateSnapshot method. // - options - BlobClientCreateSnapshotOptions contains the optional parameters for the BlobClient.CreateSnapshot method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) CreateSnapshot(ctx context.Context, options *BlobClientCreateSnapshotOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientCreateSnapshotResponse, error) { func (client *BlobClient) CreateSnapshot(ctx context.Context, options *BlobClientCreateSnapshotOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientCreateSnapshotResponse, error) {
req, err := client.createSnapshotCreateRequest(ctx, options, cpkInfo, cpkScopeInfo, modifiedAccessConditions, leaseAccessConditions) req, err := client.createSnapshotCreateRequest(ctx, options, cpkInfo, cpkScopeInfo, modifiedAccessConditions, leaseAccessConditions)
if err != nil { if err != nil {
return BlobClientCreateSnapshotResponse{}, err return BlobClientCreateSnapshotResponse{}, err
@ -584,7 +594,7 @@ func (client *BlobClient) CreateSnapshot(ctx context.Context, options *BlobClien
} }
// createSnapshotCreateRequest creates the CreateSnapshot request. // createSnapshotCreateRequest creates the CreateSnapshot request.
func (client *BlobClient) createSnapshotCreateRequest(ctx context.Context, options *BlobClientCreateSnapshotOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (*policy.Request, error) { func (client *BlobClient) createSnapshotCreateRequest(ctx context.Context, options *BlobClientCreateSnapshotOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -597,7 +607,9 @@ func (client *BlobClient) createSnapshotCreateRequest(ctx context.Context, optio
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if cpkInfo != nil && cpkInfo.EncryptionKey != nil { if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
@ -695,10 +707,11 @@ func (client *BlobClient) createSnapshotHandleResponse(resp *http.Response) (Blo
// All other operations on a soft-deleted blob or snapshot causes the service to // All other operations on a soft-deleted blob or snapshot causes the service to
// return an HTTP status code of 404 (ResourceNotFound). // return an HTTP status code of 404 (ResourceNotFound).
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientDeleteOptions contains the optional parameters for the BlobClient.Delete method. // - options - BlobClientDeleteOptions contains the optional parameters for the BlobClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) Delete(ctx context.Context, options *BlobClientDeleteOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientDeleteResponse, error) { func (client *BlobClient) Delete(ctx context.Context, options *BlobClientDeleteOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientDeleteResponse, error) {
req, err := client.deleteCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.deleteCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -787,9 +800,10 @@ func (client *BlobClient) deleteHandleResponse(resp *http.Response) (BlobClientD
// DeleteImmutabilityPolicy - The Delete Immutability Policy operation deletes the immutability policy on the blob // DeleteImmutabilityPolicy - The Delete Immutability Policy operation deletes the immutability policy on the blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientDeleteImmutabilityPolicyOptions contains the optional parameters for the BlobClient.DeleteImmutabilityPolicy // - options - BlobClientDeleteImmutabilityPolicyOptions contains the optional parameters for the BlobClient.DeleteImmutabilityPolicy
// method. // method.
func (client *BlobClient) DeleteImmutabilityPolicy(ctx context.Context, options *BlobClientDeleteImmutabilityPolicyOptions) (BlobClientDeleteImmutabilityPolicyResponse, error) { func (client *BlobClient) DeleteImmutabilityPolicy(ctx context.Context, options *BlobClientDeleteImmutabilityPolicyOptions) (BlobClientDeleteImmutabilityPolicyResponse, error) {
req, err := client.deleteImmutabilityPolicyCreateRequest(ctx, options) req, err := client.deleteImmutabilityPolicyCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -850,12 +864,13 @@ func (client *BlobClient) deleteImmutabilityPolicyHandleResponse(resp *http.Resp
// Download - The Download operation reads or downloads a blob from the system, including its metadata and properties. You // Download - The Download operation reads or downloads a blob from the system, including its metadata and properties. You
// can also call Download to read a snapshot. // can also call Download to read a snapshot.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientDownloadOptions contains the optional parameters for the BlobClient.Download method. // - options - BlobClientDownloadOptions contains the optional parameters for the BlobClient.Download method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) Download(ctx context.Context, options *BlobClientDownloadOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientDownloadResponse, error) { func (client *BlobClient) Download(ctx context.Context, options *BlobClientDownloadOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientDownloadResponse, error) {
req, err := client.downloadCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions) req, err := client.downloadCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlobClientDownloadResponse{}, err return BlobClientDownloadResponse{}, err
@ -871,7 +886,7 @@ func (client *BlobClient) Download(ctx context.Context, options *BlobClientDownl
} }
// downloadCreateRequest creates the Download request. // downloadCreateRequest creates the Download request.
func (client *BlobClient) downloadCreateRequest(ctx context.Context, options *BlobClientDownloadOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlobClient) downloadCreateRequest(ctx context.Context, options *BlobClientDownloadOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -945,9 +960,9 @@ func (client *BlobClient) downloadHandleResponse(resp *http.Response) (BlobClien
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") { if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-meta-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-meta-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("x-ms-or-policy-id"); val != "" { if val := resp.Header.Get("x-ms-or-policy-id"); val != "" {
@ -956,9 +971,9 @@ func (client *BlobClient) downloadHandleResponse(resp *http.Response) (BlobClien
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-or-") && strings.EqualFold(hh[:len("x-ms-or-")], "x-ms-or-") { if len(hh) > len("x-ms-or-") && strings.EqualFold(hh[:len("x-ms-or-")], "x-ms-or-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-or-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-or-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("Content-Length"); val != "" { if val := resp.Header.Get("Content-Length"); val != "" {
@ -1147,8 +1162,9 @@ func (client *BlobClient) downloadHandleResponse(resp *http.Response) (BlobClien
// GetAccountInfo - Returns the sku name and account kind // GetAccountInfo - Returns the sku name and account kind
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientGetAccountInfoOptions contains the optional parameters for the BlobClient.GetAccountInfo method. // - options - BlobClientGetAccountInfoOptions contains the optional parameters for the BlobClient.GetAccountInfo method.
func (client *BlobClient) GetAccountInfo(ctx context.Context, options *BlobClientGetAccountInfoOptions) (BlobClientGetAccountInfoResponse, error) { func (client *BlobClient) GetAccountInfo(ctx context.Context, options *BlobClientGetAccountInfoOptions) (BlobClientGetAccountInfoResponse, error) {
req, err := client.getAccountInfoCreateRequest(ctx, options) req, err := client.getAccountInfoCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -1210,12 +1226,13 @@ func (client *BlobClient) getAccountInfoHandleResponse(resp *http.Response) (Blo
// GetProperties - The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties // GetProperties - The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties
// for the blob. It does not return the content of the blob. // for the blob. It does not return the content of the blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientGetPropertiesOptions contains the optional parameters for the BlobClient.GetProperties method. // - options - BlobClientGetPropertiesOptions contains the optional parameters for the BlobClient.GetProperties method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) GetProperties(ctx context.Context, options *BlobClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientGetPropertiesResponse, error) { func (client *BlobClient) GetProperties(ctx context.Context, options *BlobClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientGetPropertiesResponse, error) {
req, err := client.getPropertiesCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions) req, err := client.getPropertiesCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlobClientGetPropertiesResponse{}, err return BlobClientGetPropertiesResponse{}, err
@ -1231,7 +1248,7 @@ func (client *BlobClient) GetProperties(ctx context.Context, options *BlobClient
} }
// getPropertiesCreateRequest creates the GetProperties request. // getPropertiesCreateRequest creates the GetProperties request.
func (client *BlobClient) getPropertiesCreateRequest(ctx context.Context, options *BlobClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlobClient) getPropertiesCreateRequest(ctx context.Context, options *BlobClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodHead, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodHead, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -1302,9 +1319,9 @@ func (client *BlobClient) getPropertiesHandleResponse(resp *http.Response) (Blob
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") { if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-meta-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-meta-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("x-ms-or-policy-id"); val != "" { if val := resp.Header.Get("x-ms-or-policy-id"); val != "" {
@ -1313,9 +1330,9 @@ func (client *BlobClient) getPropertiesHandleResponse(resp *http.Response) (Blob
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-or-") && strings.EqualFold(hh[:len("x-ms-or-")], "x-ms-or-") { if len(hh) > len("x-ms-or-") && strings.EqualFold(hh[:len("x-ms-or-")], "x-ms-or-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-or-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-or-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("x-ms-blob-type"); val != "" { if val := resp.Header.Get("x-ms-blob-type"); val != "" {
@ -1524,10 +1541,11 @@ func (client *BlobClient) getPropertiesHandleResponse(resp *http.Response) (Blob
// GetTags - The Get Tags operation enables users to get the tags associated with a blob. // GetTags - The Get Tags operation enables users to get the tags associated with a blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientGetTagsOptions contains the optional parameters for the BlobClient.GetTags method. // - options - BlobClientGetTagsOptions contains the optional parameters for the BlobClient.GetTags method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) GetTags(ctx context.Context, options *BlobClientGetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientGetTagsResponse, error) { func (client *BlobClient) GetTags(ctx context.Context, options *BlobClientGetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientGetTagsResponse, error) {
req, err := client.getTagsCreateRequest(ctx, options, modifiedAccessConditions, leaseAccessConditions) req, err := client.getTagsCreateRequest(ctx, options, modifiedAccessConditions, leaseAccessConditions)
if err != nil { if err != nil {
@ -1602,12 +1620,13 @@ func (client *BlobClient) getTagsHandleResponse(resp *http.Response) (BlobClient
// Query - The Query operation enables users to select/project on blob data by providing simple query expressions. // Query - The Query operation enables users to select/project on blob data by providing simple query expressions.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientQueryOptions contains the optional parameters for the BlobClient.Query method. // - options - BlobClientQueryOptions contains the optional parameters for the BlobClient.Query method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) Query(ctx context.Context, options *BlobClientQueryOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientQueryResponse, error) { func (client *BlobClient) Query(ctx context.Context, options *BlobClientQueryOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientQueryResponse, error) {
req, err := client.queryCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions) req, err := client.queryCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlobClientQueryResponse{}, err return BlobClientQueryResponse{}, err
@ -1623,7 +1642,7 @@ func (client *BlobClient) Query(ctx context.Context, options *BlobClientQueryOpt
} }
// queryCreateRequest creates the Query request. // queryCreateRequest creates the Query request.
func (client *BlobClient) queryCreateRequest(ctx context.Context, options *BlobClientQueryOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlobClient) queryCreateRequest(ctx context.Context, options *BlobClientQueryOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPost, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPost, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -1689,9 +1708,9 @@ func (client *BlobClient) queryHandleResponse(resp *http.Response) (BlobClientQu
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") { if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-meta-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-meta-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("Content-Length"); val != "" { if val := resp.Header.Get("Content-Length"); val != "" {
@ -1829,10 +1848,11 @@ func (client *BlobClient) queryHandleResponse(resp *http.Response) (BlobClientQu
// ReleaseLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations // ReleaseLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// options - BlobClientReleaseLeaseOptions contains the optional parameters for the BlobClient.ReleaseLease method. // - options - BlobClientReleaseLeaseOptions contains the optional parameters for the BlobClient.ReleaseLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) ReleaseLease(ctx context.Context, leaseID string, options *BlobClientReleaseLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientReleaseLeaseResponse, error) { func (client *BlobClient) ReleaseLease(ctx context.Context, leaseID string, options *BlobClientReleaseLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientReleaseLeaseResponse, error) {
req, err := client.releaseLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions) req, err := client.releaseLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -1919,10 +1939,11 @@ func (client *BlobClient) releaseLeaseHandleResponse(resp *http.Response) (BlobC
// RenewLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations // RenewLease - [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// options - BlobClientRenewLeaseOptions contains the optional parameters for the BlobClient.RenewLease method. // - options - BlobClientRenewLeaseOptions contains the optional parameters for the BlobClient.RenewLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) RenewLease(ctx context.Context, leaseID string, options *BlobClientRenewLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientRenewLeaseResponse, error) { func (client *BlobClient) RenewLease(ctx context.Context, leaseID string, options *BlobClientRenewLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientRenewLeaseResponse, error) {
req, err := client.renewLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions) req, err := client.renewLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -2012,9 +2033,10 @@ func (client *BlobClient) renewLeaseHandleResponse(resp *http.Response) (BlobCli
// SetExpiry - Sets the time a blob will expire and be deleted. // SetExpiry - Sets the time a blob will expire and be deleted.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// expiryOptions - Required. Indicates mode of the expiry time // - expiryOptions - Required. Indicates mode of the expiry time
// options - BlobClientSetExpiryOptions contains the optional parameters for the BlobClient.SetExpiry method. // - options - BlobClientSetExpiryOptions contains the optional parameters for the BlobClient.SetExpiry method.
func (client *BlobClient) SetExpiry(ctx context.Context, expiryOptions ExpiryOptions, options *BlobClientSetExpiryOptions) (BlobClientSetExpiryResponse, error) { func (client *BlobClient) SetExpiry(ctx context.Context, expiryOptions ExpiryOptions, options *BlobClientSetExpiryOptions) (BlobClientSetExpiryResponse, error) {
req, err := client.setExpiryCreateRequest(ctx, expiryOptions, options) req, err := client.setExpiryCreateRequest(ctx, expiryOptions, options)
if err != nil { if err != nil {
@ -2088,11 +2110,12 @@ func (client *BlobClient) setExpiryHandleResponse(resp *http.Response) (BlobClie
// SetHTTPHeaders - The Set HTTP Headers operation sets system properties on the blob // SetHTTPHeaders - The Set HTTP Headers operation sets system properties on the blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientSetHTTPHeadersOptions contains the optional parameters for the BlobClient.SetHTTPHeaders method. // - options - BlobClientSetHTTPHeadersOptions contains the optional parameters for the BlobClient.SetHTTPHeaders method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) SetHTTPHeaders(ctx context.Context, options *BlobClientSetHTTPHeadersOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetHTTPHeadersResponse, error) { func (client *BlobClient) SetHTTPHeaders(ctx context.Context, options *BlobClientSetHTTPHeadersOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetHTTPHeadersResponse, error) {
req, err := client.setHTTPHeadersCreateRequest(ctx, options, blobHTTPHeaders, leaseAccessConditions, modifiedAccessConditions) req, err := client.setHTTPHeadersCreateRequest(ctx, options, blobHTTPHeaders, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -2205,10 +2228,11 @@ func (client *BlobClient) setHTTPHeadersHandleResponse(resp *http.Response) (Blo
// SetImmutabilityPolicy - The Set Immutability Policy operation sets the immutability policy on the blob // SetImmutabilityPolicy - The Set Immutability Policy operation sets the immutability policy on the blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientSetImmutabilityPolicyOptions contains the optional parameters for the BlobClient.SetImmutabilityPolicy // - options - BlobClientSetImmutabilityPolicyOptions contains the optional parameters for the BlobClient.SetImmutabilityPolicy
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) SetImmutabilityPolicy(ctx context.Context, options *BlobClientSetImmutabilityPolicyOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetImmutabilityPolicyResponse, error) { func (client *BlobClient) SetImmutabilityPolicy(ctx context.Context, options *BlobClientSetImmutabilityPolicyOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetImmutabilityPolicyResponse, error) {
req, err := client.setImmutabilityPolicyCreateRequest(ctx, options, modifiedAccessConditions) req, err := client.setImmutabilityPolicyCreateRequest(ctx, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -2287,9 +2311,10 @@ func (client *BlobClient) setImmutabilityPolicyHandleResponse(resp *http.Respons
// SetLegalHold - The Set Legal Hold operation sets a legal hold on the blob. // SetLegalHold - The Set Legal Hold operation sets a legal hold on the blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// legalHold - Specified if a legal hold should be set on the blob. // - legalHold - Specified if a legal hold should be set on the blob.
// options - BlobClientSetLegalHoldOptions contains the optional parameters for the BlobClient.SetLegalHold method. // - options - BlobClientSetLegalHoldOptions contains the optional parameters for the BlobClient.SetLegalHold method.
func (client *BlobClient) SetLegalHold(ctx context.Context, legalHold bool, options *BlobClientSetLegalHoldOptions) (BlobClientSetLegalHoldResponse, error) { func (client *BlobClient) SetLegalHold(ctx context.Context, legalHold bool, options *BlobClientSetLegalHoldOptions) (BlobClientSetLegalHoldResponse, error) {
req, err := client.setLegalHoldCreateRequest(ctx, legalHold, options) req, err := client.setLegalHoldCreateRequest(ctx, legalHold, options)
if err != nil { if err != nil {
@ -2358,13 +2383,14 @@ func (client *BlobClient) setLegalHoldHandleResponse(resp *http.Response) (BlobC
// SetMetadata - The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-value // SetMetadata - The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-value
// pairs // pairs
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientSetMetadataOptions contains the optional parameters for the BlobClient.SetMetadata method. // - options - BlobClientSetMetadataOptions contains the optional parameters for the BlobClient.SetMetadata method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) SetMetadata(ctx context.Context, options *BlobClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetMetadataResponse, error) { func (client *BlobClient) SetMetadata(ctx context.Context, options *BlobClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetMetadataResponse, error) {
req, err := client.setMetadataCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.setMetadataCreateRequest(ctx, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlobClientSetMetadataResponse{}, err return BlobClientSetMetadataResponse{}, err
@ -2380,7 +2406,7 @@ func (client *BlobClient) SetMetadata(ctx context.Context, options *BlobClientSe
} }
// setMetadataCreateRequest creates the SetMetadata request. // setMetadataCreateRequest creates the SetMetadata request.
func (client *BlobClient) setMetadataCreateRequest(ctx context.Context, options *BlobClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlobClient) setMetadataCreateRequest(ctx context.Context, options *BlobClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -2393,7 +2419,9 @@ func (client *BlobClient) setMetadataCreateRequest(ctx context.Context, options
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
@ -2484,11 +2512,12 @@ func (client *BlobClient) setMetadataHandleResponse(resp *http.Response) (BlobCl
// SetTags - The Set Tags operation enables users to set tags on a blob. // SetTags - The Set Tags operation enables users to set tags on a blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// tags - Blob tags // - tags - Blob tags
// options - BlobClientSetTagsOptions contains the optional parameters for the BlobClient.SetTags method. // - options - BlobClientSetTagsOptions contains the optional parameters for the BlobClient.SetTags method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) SetTags(ctx context.Context, tags BlobTags, options *BlobClientSetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientSetTagsResponse, error) { func (client *BlobClient) SetTags(ctx context.Context, tags BlobTags, options *BlobClientSetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientSetTagsResponse, error) {
req, err := client.setTagsCreateRequest(ctx, tags, options, modifiedAccessConditions, leaseAccessConditions) req, err := client.setTagsCreateRequest(ctx, tags, options, modifiedAccessConditions, leaseAccessConditions)
if err != nil { if err != nil {
@ -2566,11 +2595,12 @@ func (client *BlobClient) setTagsHandleResponse(resp *http.Response) (BlobClient
// premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive // premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive
// storage type. This operation does not update the blob's ETag. // storage type. This operation does not update the blob's ETag.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// tier - Indicates the tier to be set on the blob. // - tier - Indicates the tier to be set on the blob.
// options - BlobClientSetTierOptions contains the optional parameters for the BlobClient.SetTier method. // - options - BlobClientSetTierOptions contains the optional parameters for the BlobClient.SetTier method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlobClient) SetTier(ctx context.Context, tier AccessTier, options *BlobClientSetTierOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetTierResponse, error) { func (client *BlobClient) SetTier(ctx context.Context, tier AccessTier, options *BlobClientSetTierOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobClientSetTierResponse, error) {
req, err := client.setTierCreateRequest(ctx, tier, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.setTierCreateRequest(ctx, tier, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -2639,15 +2669,16 @@ func (client *BlobClient) setTierHandleResponse(resp *http.Response) (BlobClient
// StartCopyFromURL - The Start Copy From URL operation copies a blob or an internet resource to a new blob. // StartCopyFromURL - The Start Copy From URL operation copies a blob or an internet resource to a new blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies // - copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies
// a page blob snapshot. The value should be URL-encoded as it would appear in a request // a page blob snapshot. The value should be URL-encoded as it would appear in a request
// URI. The source blob must either be public or must be authenticated via a shared access signature. // URI. The source blob must either be public or must be authenticated via a shared access signature.
// options - BlobClientStartCopyFromURLOptions contains the optional parameters for the BlobClient.StartCopyFromURL method. // - options - BlobClientStartCopyFromURLOptions contains the optional parameters for the BlobClient.StartCopyFromURL method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *BlobClient) StartCopyFromURL(ctx context.Context, copySource string, options *BlobClientStartCopyFromURLOptions, sourceModifiedAccessConditions *SourceModifiedAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientStartCopyFromURLResponse, error) { func (client *BlobClient) StartCopyFromURL(ctx context.Context, copySource string, options *BlobClientStartCopyFromURLOptions, sourceModifiedAccessConditions *SourceModifiedAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, leaseAccessConditions *LeaseAccessConditions) (BlobClientStartCopyFromURLResponse, error) {
req, err := client.startCopyFromURLCreateRequest(ctx, copySource, options, sourceModifiedAccessConditions, modifiedAccessConditions, leaseAccessConditions) req, err := client.startCopyFromURLCreateRequest(ctx, copySource, options, sourceModifiedAccessConditions, modifiedAccessConditions, leaseAccessConditions)
if err != nil { if err != nil {
@ -2676,7 +2707,9 @@ func (client *BlobClient) startCopyFromURLCreateRequest(ctx context.Context, cop
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if options != nil && options.Tier != nil { if options != nil && options.Tier != nil {
@ -2785,8 +2818,9 @@ func (client *BlobClient) startCopyFromURLHandleResponse(resp *http.Response) (B
// Undelete - Undelete a blob that was previously soft deleted // Undelete - Undelete a blob that was previously soft deleted
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - BlobClientUndeleteOptions contains the optional parameters for the BlobClient.Undelete method. // - options - BlobClientUndeleteOptions contains the optional parameters for the BlobClient.Undelete method.
func (client *BlobClient) Undelete(ctx context.Context, options *BlobClientUndeleteOptions) (BlobClientUndeleteResponse, error) { func (client *BlobClient) Undelete(ctx context.Context, options *BlobClientUndeleteOptions) (BlobClientUndeleteResponse, error) {
req, err := client.undeleteCreateRequest(ctx, options) req, err := client.undeleteCreateRequest(ctx, options)
if err != nil { if err != nil {

View file

@ -29,8 +29,8 @@ type BlockBlobClient struct {
} }
// NewBlockBlobClient creates a new instance of BlockBlobClient with the specified values. // NewBlockBlobClient creates a new instance of BlockBlobClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewBlockBlobClient(endpoint string, pl runtime.Pipeline) *BlockBlobClient { func NewBlockBlobClient(endpoint string, pl runtime.Pipeline) *BlockBlobClient {
client := &BlockBlobClient{ client := &BlockBlobClient{
endpoint: endpoint, endpoint: endpoint,
@ -47,16 +47,17 @@ func NewBlockBlobClient(endpoint string, pl runtime.Pipeline) *BlockBlobClient {
// the most recently uploaded version of the block, whichever list it may // the most recently uploaded version of the block, whichever list it may
// belong to. // belong to.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// blocks - Blob Blocks. // - blocks - Blob Blocks.
// options - BlockBlobClientCommitBlockListOptions contains the optional parameters for the BlockBlobClient.CommitBlockList // - options - BlockBlobClientCommitBlockListOptions contains the optional parameters for the BlockBlobClient.CommitBlockList
// method. // method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlockBlobClient) CommitBlockList(ctx context.Context, blocks BlockLookupList, options *BlockBlobClientCommitBlockListOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientCommitBlockListResponse, error) { func (client *BlockBlobClient) CommitBlockList(ctx context.Context, blocks BlockLookupList, options *BlockBlobClientCommitBlockListOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientCommitBlockListResponse, error) {
req, err := client.commitBlockListCreateRequest(ctx, blocks, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.commitBlockListCreateRequest(ctx, blocks, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlockBlobClientCommitBlockListResponse{}, err return BlockBlobClientCommitBlockListResponse{}, err
@ -72,7 +73,7 @@ func (client *BlockBlobClient) CommitBlockList(ctx context.Context, blocks Block
} }
// commitBlockListCreateRequest creates the CommitBlockList request. // commitBlockListCreateRequest creates the CommitBlockList request.
func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context, blocks BlockLookupList, options *BlockBlobClientCommitBlockListOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context, blocks BlockLookupList, options *BlockBlobClientCommitBlockListOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -106,7 +107,9 @@ func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context,
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
@ -229,11 +232,12 @@ func (client *BlockBlobClient) commitBlockListHandleResponse(resp *http.Response
// GetBlockList - The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob // GetBlockList - The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// listType - Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. // - listType - Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.
// options - BlockBlobClientGetBlockListOptions contains the optional parameters for the BlockBlobClient.GetBlockList method. // - options - BlockBlobClientGetBlockListOptions contains the optional parameters for the BlockBlobClient.GetBlockList method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlockBlobClient) GetBlockList(ctx context.Context, listType BlockListType, options *BlockBlobClientGetBlockListOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientGetBlockListResponse, error) { func (client *BlockBlobClient) GetBlockList(ctx context.Context, listType BlockListType, options *BlockBlobClientGetBlockListOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientGetBlockListResponse, error) {
req, err := client.getBlockListCreateRequest(ctx, listType, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.getBlockListCreateRequest(ctx, listType, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -330,21 +334,22 @@ func (client *BlockBlobClient) getBlockListHandleResponse(resp *http.Response) (
// partial updates to a block blobs contents using a source URL, use the Put // partial updates to a block blobs contents using a source URL, use the Put
// Block from URL API in conjunction with Put Block List. // Block from URL API in conjunction with Put Block List.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies // - copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies
// a page blob snapshot. The value should be URL-encoded as it would appear in a request // a page blob snapshot. The value should be URL-encoded as it would appear in a request
// URI. The source blob must either be public or must be authenticated via a shared access signature. // URI. The source blob must either be public or must be authenticated via a shared access signature.
// options - BlockBlobClientPutBlobFromURLOptions contains the optional parameters for the BlockBlobClient.PutBlobFromURL // - options - BlockBlobClientPutBlobFromURLOptions contains the optional parameters for the BlockBlobClient.PutBlobFromURL
// method. // method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
func (client *BlockBlobClient) PutBlobFromURL(ctx context.Context, contentLength int64, copySource string, options *BlockBlobClientPutBlobFromURLOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (BlockBlobClientPutBlobFromURLResponse, error) { func (client *BlockBlobClient) PutBlobFromURL(ctx context.Context, contentLength int64, copySource string, options *BlockBlobClientPutBlobFromURLOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (BlockBlobClientPutBlobFromURLResponse, error) {
req, err := client.putBlobFromURLCreateRequest(ctx, contentLength, copySource, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions, sourceModifiedAccessConditions) req, err := client.putBlobFromURLCreateRequest(ctx, contentLength, copySource, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions, sourceModifiedAccessConditions)
if err != nil { if err != nil {
return BlockBlobClientPutBlobFromURLResponse{}, err return BlockBlobClientPutBlobFromURLResponse{}, err
@ -360,7 +365,7 @@ func (client *BlockBlobClient) PutBlobFromURL(ctx context.Context, contentLength
} }
// putBlobFromURLCreateRequest creates the PutBlobFromURL request. // putBlobFromURLCreateRequest creates the PutBlobFromURL request.
func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context, contentLength int64, copySource string, options *BlockBlobClientPutBlobFromURLOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) { func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context, contentLength int64, copySource string, options *BlockBlobClientPutBlobFromURLOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -392,7 +397,9 @@ func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context,
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
@ -524,17 +531,18 @@ func (client *BlockBlobClient) putBlobFromURLHandleResponse(resp *http.Response)
// StageBlock - The Stage Block operation creates a new block to be committed as part of a blob // StageBlock - The Stage Block operation creates a new block to be committed as part of a blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// blockID - A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal // - blockID - A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal
// to 64 bytes in size. For a given blob, the length of the value specified for the blockid // to 64 bytes in size. For a given blob, the length of the value specified for the blockid
// parameter must be the same size for each block. // parameter must be the same size for each block.
// contentLength - The length of the request. // - contentLength - The length of the request.
// body - Initial data // - body - Initial data
// options - BlockBlobClientStageBlockOptions contains the optional parameters for the BlockBlobClient.StageBlock method. // - options - BlockBlobClientStageBlockOptions contains the optional parameters for the BlockBlobClient.StageBlock method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
func (client *BlockBlobClient) StageBlock(ctx context.Context, blockID string, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientStageBlockOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo) (BlockBlobClientStageBlockResponse, error) { func (client *BlockBlobClient) StageBlock(ctx context.Context, blockID string, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientStageBlockOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo) (BlockBlobClientStageBlockResponse, error) {
req, err := client.stageBlockCreateRequest(ctx, blockID, contentLength, body, options, leaseAccessConditions, cpkInfo, cpkScopeInfo) req, err := client.stageBlockCreateRequest(ctx, blockID, contentLength, body, options, leaseAccessConditions, cpkInfo, cpkScopeInfo)
if err != nil { if err != nil {
return BlockBlobClientStageBlockResponse{}, err return BlockBlobClientStageBlockResponse{}, err
@ -550,7 +558,7 @@ func (client *BlockBlobClient) StageBlock(ctx context.Context, blockID string, c
} }
// stageBlockCreateRequest creates the StageBlock request. // stageBlockCreateRequest creates the StageBlock request.
func (client *BlockBlobClient) stageBlockCreateRequest(ctx context.Context, blockID string, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientStageBlockOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo) (*policy.Request, error) { func (client *BlockBlobClient) stageBlockCreateRequest(ctx context.Context, blockID string, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientStageBlockOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -644,20 +652,21 @@ func (client *BlockBlobClient) stageBlockHandleResponse(resp *http.Response) (Bl
// StageBlockFromURL - The Stage Block operation creates a new block to be committed as part of a blob where the contents // StageBlockFromURL - The Stage Block operation creates a new block to be committed as part of a blob where the contents
// are read from a URL. // are read from a URL.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// blockID - A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal // - blockID - A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal
// to 64 bytes in size. For a given blob, the length of the value specified for the blockid // to 64 bytes in size. For a given blob, the length of the value specified for the blockid
// parameter must be the same size for each block. // parameter must be the same size for each block.
// contentLength - The length of the request. // - contentLength - The length of the request.
// sourceURL - Specify a URL to the copy source. // - sourceURL - Specify a URL to the copy source.
// options - BlockBlobClientStageBlockFromURLOptions contains the optional parameters for the BlockBlobClient.StageBlockFromURL // - options - BlockBlobClientStageBlockFromURLOptions contains the optional parameters for the BlockBlobClient.StageBlockFromURL
// method. // method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
func (client *BlockBlobClient) StageBlockFromURL(ctx context.Context, blockID string, contentLength int64, sourceURL string, options *BlockBlobClientStageBlockFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (BlockBlobClientStageBlockFromURLResponse, error) { func (client *BlockBlobClient) StageBlockFromURL(ctx context.Context, blockID string, contentLength int64, sourceURL string, options *BlockBlobClientStageBlockFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (BlockBlobClientStageBlockFromURLResponse, error) {
req, err := client.stageBlockFromURLCreateRequest(ctx, blockID, contentLength, sourceURL, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions) req, err := client.stageBlockFromURLCreateRequest(ctx, blockID, contentLength, sourceURL, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, sourceModifiedAccessConditions)
if err != nil { if err != nil {
return BlockBlobClientStageBlockFromURLResponse{}, err return BlockBlobClientStageBlockFromURLResponse{}, err
@ -673,7 +682,7 @@ func (client *BlockBlobClient) StageBlockFromURL(ctx context.Context, blockID st
} }
// stageBlockFromURLCreateRequest creates the StageBlockFromURL request. // stageBlockFromURLCreateRequest creates the StageBlockFromURL request.
func (client *BlockBlobClient) stageBlockFromURLCreateRequest(ctx context.Context, blockID string, contentLength int64, sourceURL string, options *BlockBlobClientStageBlockFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) { func (client *BlockBlobClient) stageBlockFromURLCreateRequest(ctx context.Context, blockID string, contentLength int64, sourceURL string, options *BlockBlobClientStageBlockFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -788,16 +797,17 @@ func (client *BlockBlobClient) stageBlockFromURLHandleResponse(resp *http.Respon
// Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of // Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of
// the content of a block blob, use the Put Block List operation. // the content of a block blob, use the Put Block List operation.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// body - Initial data // - body - Initial data
// options - BlockBlobClientUploadOptions contains the optional parameters for the BlockBlobClient.Upload method. // - options - BlockBlobClientUploadOptions contains the optional parameters for the BlockBlobClient.Upload method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *BlockBlobClient) Upload(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientUploadOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientUploadResponse, error) { func (client *BlockBlobClient) Upload(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientUploadOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (BlockBlobClientUploadResponse, error) {
req, err := client.uploadCreateRequest(ctx, contentLength, body, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.uploadCreateRequest(ctx, contentLength, body, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return BlockBlobClientUploadResponse{}, err return BlockBlobClientUploadResponse{}, err
@ -813,7 +823,7 @@ func (client *BlockBlobClient) Upload(ctx context.Context, contentLength int64,
} }
// uploadCreateRequest creates the Upload request. // uploadCreateRequest creates the Upload request.
func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientUploadOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *BlockBlobClientUploadOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -845,7 +855,9 @@ func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentL
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {

View file

@ -16,6 +16,7 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore"
"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/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"io" "io"
"net/http" "net/http"
"strconv" "strconv"
@ -31,8 +32,8 @@ type ContainerClient struct {
} }
// NewContainerClient creates a new instance of ContainerClient with the specified values. // NewContainerClient creates a new instance of ContainerClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewContainerClient(endpoint string, pl runtime.Pipeline) *ContainerClient { func NewContainerClient(endpoint string, pl runtime.Pipeline) *ContainerClient {
client := &ContainerClient{ client := &ContainerClient{
endpoint: endpoint, endpoint: endpoint,
@ -44,11 +45,15 @@ func NewContainerClient(endpoint string, pl runtime.Pipeline) *ContainerClient {
// AcquireLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 // AcquireLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15
// to 60 seconds, or can be infinite // to 60 seconds, or can be infinite
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientAcquireLeaseOptions contains the optional parameters for the ContainerClient.AcquireLease method. // - duration - Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // lease can be between 15 and 60 seconds. A lease duration cannot be changed using
func (client *ContainerClient) AcquireLease(ctx context.Context, options *ContainerClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientAcquireLeaseResponse, error) { // renew or change.
req, err := client.acquireLeaseCreateRequest(ctx, options, modifiedAccessConditions) // - options - ContainerClientAcquireLeaseOptions contains the optional parameters for the ContainerClient.AcquireLease method.
// - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) AcquireLease(ctx context.Context, duration int32, options *ContainerClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientAcquireLeaseResponse, error) {
req, err := client.acquireLeaseCreateRequest(ctx, duration, options, modifiedAccessConditions)
if err != nil { if err != nil {
return ContainerClientAcquireLeaseResponse{}, err return ContainerClientAcquireLeaseResponse{}, err
} }
@ -63,7 +68,7 @@ func (client *ContainerClient) AcquireLease(ctx context.Context, options *Contai
} }
// acquireLeaseCreateRequest creates the AcquireLease request. // acquireLeaseCreateRequest creates the AcquireLease request.
func (client *ContainerClient) acquireLeaseCreateRequest(ctx context.Context, options *ContainerClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *ContainerClient) acquireLeaseCreateRequest(ctx context.Context, duration int32, options *ContainerClientAcquireLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -76,9 +81,7 @@ func (client *ContainerClient) acquireLeaseCreateRequest(ctx context.Context, op
} }
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
req.Raw().Header["x-ms-lease-action"] = []string{"acquire"} req.Raw().Header["x-ms-lease-action"] = []string{"acquire"}
if options != nil && options.Duration != nil { req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(duration), 10)}
req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(*options.Duration), 10)}
}
if options != nil && options.ProposedLeaseID != nil { if options != nil && options.ProposedLeaseID != nil {
req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID} req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID}
} }
@ -134,9 +137,10 @@ func (client *ContainerClient) acquireLeaseHandleResponse(resp *http.Response) (
// BreakLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 // BreakLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15
// to 60 seconds, or can be infinite // to 60 seconds, or can be infinite
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientBreakLeaseOptions contains the optional parameters for the ContainerClient.BreakLease method. // - options - ContainerClientBreakLeaseOptions contains the optional parameters for the ContainerClient.BreakLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) BreakLease(ctx context.Context, options *ContainerClientBreakLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientBreakLeaseResponse, error) { func (client *ContainerClient) BreakLease(ctx context.Context, options *ContainerClientBreakLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientBreakLeaseResponse, error) {
req, err := client.breakLeaseCreateRequest(ctx, options, modifiedAccessConditions) req, err := client.breakLeaseCreateRequest(ctx, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -226,13 +230,14 @@ func (client *ContainerClient) breakLeaseHandleResponse(resp *http.Response) (Co
// ChangeLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 // ChangeLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15
// to 60 seconds, or can be infinite // to 60 seconds, or can be infinite
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// proposedLeaseID - Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed // - proposedLeaseID - Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed
// lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID // lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID
// string formats. // string formats.
// options - ContainerClientChangeLeaseOptions contains the optional parameters for the ContainerClient.ChangeLease method. // - options - ContainerClientChangeLeaseOptions contains the optional parameters for the ContainerClient.ChangeLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) ChangeLease(ctx context.Context, leaseID string, proposedLeaseID string, options *ContainerClientChangeLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientChangeLeaseResponse, error) { func (client *ContainerClient) ChangeLease(ctx context.Context, leaseID string, proposedLeaseID string, options *ContainerClientChangeLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientChangeLeaseResponse, error) {
req, err := client.changeLeaseCreateRequest(ctx, leaseID, proposedLeaseID, options, modifiedAccessConditions) req, err := client.changeLeaseCreateRequest(ctx, leaseID, proposedLeaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -316,11 +321,12 @@ func (client *ContainerClient) changeLeaseHandleResponse(resp *http.Response) (C
// Create - creates a new container under the specified account. If the container with the same name already exists, the operation // Create - creates a new container under the specified account. If the container with the same name already exists, the operation
// fails // fails
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientCreateOptions contains the optional parameters for the ContainerClient.Create method. // - options - ContainerClientCreateOptions contains the optional parameters for the ContainerClient.Create method.
// ContainerCpkScopeInfo - ContainerCpkScopeInfo contains a group of parameters for the ContainerClient.Create method. // - ContainerCPKScopeInfo - ContainerCPKScopeInfo contains a group of parameters for the ContainerClient.Create method.
func (client *ContainerClient) Create(ctx context.Context, options *ContainerClientCreateOptions, containerCpkScopeInfo *ContainerCpkScopeInfo) (ContainerClientCreateResponse, error) { func (client *ContainerClient) Create(ctx context.Context, options *ContainerClientCreateOptions, containerCPKScopeInfo *ContainerCPKScopeInfo) (ContainerClientCreateResponse, error) {
req, err := client.createCreateRequest(ctx, options, containerCpkScopeInfo) req, err := client.createCreateRequest(ctx, options, containerCPKScopeInfo)
if err != nil { if err != nil {
return ContainerClientCreateResponse{}, err return ContainerClientCreateResponse{}, err
} }
@ -335,7 +341,7 @@ func (client *ContainerClient) Create(ctx context.Context, options *ContainerCli
} }
// createCreateRequest creates the Create request. // createCreateRequest creates the Create request.
func (client *ContainerClient) createCreateRequest(ctx context.Context, options *ContainerClientCreateOptions, containerCpkScopeInfo *ContainerCpkScopeInfo) (*policy.Request, error) { func (client *ContainerClient) createCreateRequest(ctx context.Context, options *ContainerClientCreateOptions, containerCPKScopeInfo *ContainerCPKScopeInfo) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -348,7 +354,9 @@ func (client *ContainerClient) createCreateRequest(ctx context.Context, options
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = reqQP.Encode()
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if options != nil && options.Access != nil { if options != nil && options.Access != nil {
@ -358,11 +366,11 @@ func (client *ContainerClient) createCreateRequest(ctx context.Context, options
if options != nil && options.RequestID != nil { if options != nil && options.RequestID != nil {
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID} req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
} }
if containerCpkScopeInfo != nil && containerCpkScopeInfo.DefaultEncryptionScope != nil { if containerCPKScopeInfo != nil && containerCPKScopeInfo.DefaultEncryptionScope != nil {
req.Raw().Header["x-ms-default-encryption-scope"] = []string{*containerCpkScopeInfo.DefaultEncryptionScope} req.Raw().Header["x-ms-default-encryption-scope"] = []string{*containerCPKScopeInfo.DefaultEncryptionScope}
} }
if containerCpkScopeInfo != nil && containerCpkScopeInfo.PreventEncryptionScopeOverride != nil { if containerCPKScopeInfo != nil && containerCPKScopeInfo.PreventEncryptionScopeOverride != nil {
req.Raw().Header["x-ms-deny-encryption-scope-override"] = []string{strconv.FormatBool(*containerCpkScopeInfo.PreventEncryptionScopeOverride)} req.Raw().Header["x-ms-deny-encryption-scope-override"] = []string{strconv.FormatBool(*containerCPKScopeInfo.PreventEncryptionScopeOverride)}
} }
req.Raw().Header["Accept"] = []string{"application/xml"} req.Raw().Header["Accept"] = []string{"application/xml"}
return req, nil return req, nil
@ -403,10 +411,11 @@ func (client *ContainerClient) createHandleResponse(resp *http.Response) (Contai
// Delete - operation marks the specified container for deletion. The container and any blobs contained within it are later // Delete - operation marks the specified container for deletion. The container and any blobs contained within it are later
// deleted during garbage collection // deleted during garbage collection
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientDeleteOptions contains the optional parameters for the ContainerClient.Delete method. // - options - ContainerClientDeleteOptions contains the optional parameters for the ContainerClient.Delete method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) Delete(ctx context.Context, options *ContainerClientDeleteOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientDeleteResponse, error) { func (client *ContainerClient) Delete(ctx context.Context, options *ContainerClientDeleteOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientDeleteResponse, error) {
req, err := client.deleteCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.deleteCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -476,10 +485,11 @@ func (client *ContainerClient) deleteHandleResponse(resp *http.Response) (Contai
// GetAccessPolicy - gets the permissions for the specified container. The permissions indicate whether container data may // GetAccessPolicy - gets the permissions for the specified container. The permissions indicate whether container data may
// be accessed publicly. // be accessed publicly.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientGetAccessPolicyOptions contains the optional parameters for the ContainerClient.GetAccessPolicy // - options - ContainerClientGetAccessPolicyOptions contains the optional parameters for the ContainerClient.GetAccessPolicy
// method. // method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *ContainerClient) GetAccessPolicy(ctx context.Context, options *ContainerClientGetAccessPolicyOptions, leaseAccessConditions *LeaseAccessConditions) (ContainerClientGetAccessPolicyResponse, error) { func (client *ContainerClient) GetAccessPolicy(ctx context.Context, options *ContainerClientGetAccessPolicyOptions, leaseAccessConditions *LeaseAccessConditions) (ContainerClientGetAccessPolicyResponse, error) {
req, err := client.getAccessPolicyCreateRequest(ctx, options, leaseAccessConditions) req, err := client.getAccessPolicyCreateRequest(ctx, options, leaseAccessConditions)
if err != nil { if err != nil {
@ -559,9 +569,10 @@ func (client *ContainerClient) getAccessPolicyHandleResponse(resp *http.Response
// GetAccountInfo - Returns the sku name and account kind // GetAccountInfo - Returns the sku name and account kind
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientGetAccountInfoOptions contains the optional parameters for the ContainerClient.GetAccountInfo // - options - ContainerClientGetAccountInfoOptions contains the optional parameters for the ContainerClient.GetAccountInfo
// method. // method.
func (client *ContainerClient) GetAccountInfo(ctx context.Context, options *ContainerClientGetAccountInfoOptions) (ContainerClientGetAccountInfoResponse, error) { func (client *ContainerClient) GetAccountInfo(ctx context.Context, options *ContainerClientGetAccountInfoOptions) (ContainerClientGetAccountInfoResponse, error) {
req, err := client.getAccountInfoCreateRequest(ctx, options) req, err := client.getAccountInfoCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -623,9 +634,10 @@ func (client *ContainerClient) getAccountInfoHandleResponse(resp *http.Response)
// GetProperties - returns all user-defined metadata and system properties for the specified container. The data returned // GetProperties - returns all user-defined metadata and system properties for the specified container. The data returned
// does not include the container's list of blobs // does not include the container's list of blobs
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientGetPropertiesOptions contains the optional parameters for the ContainerClient.GetProperties method. // - options - ContainerClientGetPropertiesOptions contains the optional parameters for the ContainerClient.GetProperties method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
func (client *ContainerClient) GetProperties(ctx context.Context, options *ContainerClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions) (ContainerClientGetPropertiesResponse, error) { func (client *ContainerClient) GetProperties(ctx context.Context, options *ContainerClientGetPropertiesOptions, leaseAccessConditions *LeaseAccessConditions) (ContainerClientGetPropertiesResponse, error) {
req, err := client.getPropertiesCreateRequest(ctx, options, leaseAccessConditions) req, err := client.getPropertiesCreateRequest(ctx, options, leaseAccessConditions)
if err != nil { if err != nil {
@ -670,9 +682,9 @@ func (client *ContainerClient) getPropertiesHandleResponse(resp *http.Response)
for hh := range resp.Header { for hh := range resp.Header {
if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") { if len(hh) > len("x-ms-meta-") && strings.EqualFold(hh[:len("x-ms-meta-")], "x-ms-meta-") {
if result.Metadata == nil { if result.Metadata == nil {
result.Metadata = map[string]string{} result.Metadata = map[string]*string{}
} }
result.Metadata[hh[len("x-ms-meta-"):]] = resp.Header.Get(hh) result.Metadata[hh[len("x-ms-meta-"):]] = to.Ptr(resp.Header.Get(hh))
} }
} }
if val := resp.Header.Get("ETag"); val != "" { if val := resp.Header.Get("ETag"); val != "" {
@ -748,10 +760,11 @@ func (client *ContainerClient) getPropertiesHandleResponse(resp *http.Response)
} }
// NewListBlobFlatSegmentPager - [Update] The List Blobs operation returns a list of the blobs under the specified container // NewListBlobFlatSegmentPager - [Update] The List Blobs operation returns a list of the blobs under the specified container
// If the operation fails it returns an *azcore.ResponseError type. //
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientListBlobFlatSegmentOptions contains the optional parameters for the ContainerClient.ListBlobFlatSegment // - options - ContainerClientListBlobFlatSegmentOptions contains the optional parameters for the ContainerClient.NewListBlobFlatSegmentPager
// method. // method.
//
// listBlobFlatSegmentCreateRequest creates the ListBlobFlatSegment request. // listBlobFlatSegmentCreateRequest creates the ListBlobFlatSegment request.
func (client *ContainerClient) ListBlobFlatSegmentCreateRequest(ctx context.Context, options *ContainerClientListBlobFlatSegmentOptions) (*policy.Request, error) { func (client *ContainerClient) ListBlobFlatSegmentCreateRequest(ctx context.Context, options *ContainerClientListBlobFlatSegmentOptions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint)
@ -814,13 +827,13 @@ func (client *ContainerClient) ListBlobFlatSegmentHandleResponse(resp *http.Resp
} }
// NewListBlobHierarchySegmentPager - [Update] The List Blobs operation returns a list of the blobs under the specified container // NewListBlobHierarchySegmentPager - [Update] The List Blobs operation returns a list of the blobs under the specified container
// If the operation fails it returns an *azcore.ResponseError type. //
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// delimiter - When the request includes this parameter, the operation returns a BlobPrefix element in the response body that // - delimiter - When the request includes this parameter, the operation returns a BlobPrefix element in the response body that
// acts as a placeholder for all blobs whose names begin with the same substring up to the // acts as a placeholder for all blobs whose names begin with the same substring up to the
// appearance of the delimiter character. The delimiter may be a single character or a string. // appearance of the delimiter character. The delimiter may be a single character or a string.
// options - ContainerClientListBlobHierarchySegmentOptions contains the optional parameters for the ContainerClient.ListBlobHierarchySegment // - options - ContainerClientListBlobHierarchySegmentOptions contains the optional parameters for the ContainerClient.NewListBlobHierarchySegmentPager
// method. // method.
func (client *ContainerClient) NewListBlobHierarchySegmentPager(delimiter string, options *ContainerClientListBlobHierarchySegmentOptions) *runtime.Pager[ContainerClientListBlobHierarchySegmentResponse] { func (client *ContainerClient) NewListBlobHierarchySegmentPager(delimiter string, options *ContainerClientListBlobHierarchySegmentOptions) *runtime.Pager[ContainerClientListBlobHierarchySegmentResponse] {
return runtime.NewPager(runtime.PagingHandler[ContainerClientListBlobHierarchySegmentResponse]{ return runtime.NewPager(runtime.PagingHandler[ContainerClientListBlobHierarchySegmentResponse]{
More: func(page ContainerClientListBlobHierarchySegmentResponse) bool { More: func(page ContainerClientListBlobHierarchySegmentResponse) bool {
@ -914,10 +927,11 @@ func (client *ContainerClient) ListBlobHierarchySegmentHandleResponse(resp *http
// ReleaseLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 // ReleaseLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15
// to 60 seconds, or can be infinite // to 60 seconds, or can be infinite
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// options - ContainerClientReleaseLeaseOptions contains the optional parameters for the ContainerClient.ReleaseLease method. // - options - ContainerClientReleaseLeaseOptions contains the optional parameters for the ContainerClient.ReleaseLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) ReleaseLease(ctx context.Context, leaseID string, options *ContainerClientReleaseLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientReleaseLeaseResponse, error) { func (client *ContainerClient) ReleaseLease(ctx context.Context, leaseID string, options *ContainerClientReleaseLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientReleaseLeaseResponse, error) {
req, err := client.releaseLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions) req, err := client.releaseLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -996,9 +1010,10 @@ func (client *ContainerClient) releaseLeaseHandleResponse(resp *http.Response) (
// Rename - Renames an existing container. // Rename - Renames an existing container.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// sourceContainerName - Required. Specifies the name of the container to rename. // - sourceContainerName - Required. Specifies the name of the container to rename.
// options - ContainerClientRenameOptions contains the optional parameters for the ContainerClient.Rename method. // - options - ContainerClientRenameOptions contains the optional parameters for the ContainerClient.Rename method.
func (client *ContainerClient) Rename(ctx context.Context, sourceContainerName string, options *ContainerClientRenameOptions) (ContainerClientRenameResponse, error) { func (client *ContainerClient) Rename(ctx context.Context, sourceContainerName string, options *ContainerClientRenameOptions) (ContainerClientRenameResponse, error) {
req, err := client.renameCreateRequest(ctx, sourceContainerName, options) req, err := client.renameCreateRequest(ctx, sourceContainerName, options)
if err != nil { if err != nil {
@ -1064,10 +1079,11 @@ func (client *ContainerClient) renameHandleResponse(resp *http.Response) (Contai
// RenewLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 // RenewLease - [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15
// to 60 seconds, or can be infinite // to 60 seconds, or can be infinite
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// leaseID - Specifies the current lease ID on the resource. // - leaseID - Specifies the current lease ID on the resource.
// options - ContainerClientRenewLeaseOptions contains the optional parameters for the ContainerClient.RenewLease method. // - options - ContainerClientRenewLeaseOptions contains the optional parameters for the ContainerClient.RenewLease method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) RenewLease(ctx context.Context, leaseID string, options *ContainerClientRenewLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientRenewLeaseResponse, error) { func (client *ContainerClient) RenewLease(ctx context.Context, leaseID string, options *ContainerClientRenewLeaseOptions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientRenewLeaseResponse, error) {
req, err := client.renewLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions) req, err := client.renewLeaseCreateRequest(ctx, leaseID, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -1149,8 +1165,9 @@ func (client *ContainerClient) renewLeaseHandleResponse(resp *http.Response) (Co
// Restore - Restores a previously-deleted container. // Restore - Restores a previously-deleted container.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientRestoreOptions contains the optional parameters for the ContainerClient.Restore method. // - options - ContainerClientRestoreOptions contains the optional parameters for the ContainerClient.Restore method.
func (client *ContainerClient) Restore(ctx context.Context, options *ContainerClientRestoreOptions) (ContainerClientRestoreResponse, error) { func (client *ContainerClient) Restore(ctx context.Context, options *ContainerClientRestoreOptions) (ContainerClientRestoreResponse, error) {
req, err := client.restoreCreateRequest(ctx, options) req, err := client.restoreCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -1218,12 +1235,13 @@ func (client *ContainerClient) restoreHandleResponse(resp *http.Response) (Conta
// SetAccessPolicy - sets the permissions for the specified container. The permissions indicate whether blobs in a container // SetAccessPolicy - sets the permissions for the specified container. The permissions indicate whether blobs in a container
// may be accessed publicly. // may be accessed publicly.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// containerACL - the acls for the container // - containerACL - the acls for the container
// options - ContainerClientSetAccessPolicyOptions contains the optional parameters for the ContainerClient.SetAccessPolicy // - options - ContainerClientSetAccessPolicyOptions contains the optional parameters for the ContainerClient.SetAccessPolicy
// method. // method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) SetAccessPolicy(ctx context.Context, containerACL []*SignedIdentifier, options *ContainerClientSetAccessPolicyOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientSetAccessPolicyResponse, error) { func (client *ContainerClient) SetAccessPolicy(ctx context.Context, containerACL []*SignedIdentifier, options *ContainerClientSetAccessPolicyOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientSetAccessPolicyResponse, error) {
req, err := client.setAccessPolicyCreateRequest(ctx, containerACL, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.setAccessPolicyCreateRequest(ctx, containerACL, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -1310,10 +1328,11 @@ func (client *ContainerClient) setAccessPolicyHandleResponse(resp *http.Response
// SetMetadata - operation sets one or more user-defined name-value pairs for the specified container. // SetMetadata - operation sets one or more user-defined name-value pairs for the specified container.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ContainerClientSetMetadataOptions contains the optional parameters for the ContainerClient.SetMetadata method. // - options - ContainerClientSetMetadataOptions contains the optional parameters for the ContainerClient.SetMetadata method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *ContainerClient) SetMetadata(ctx context.Context, options *ContainerClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientSetMetadataResponse, error) { func (client *ContainerClient) SetMetadata(ctx context.Context, options *ContainerClientSetMetadataOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (ContainerClientSetMetadataResponse, error) {
req, err := client.setMetadataCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.setMetadataCreateRequest(ctx, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -1347,7 +1366,9 @@ func (client *ContainerClient) setMetadataCreateRequest(ctx context.Context, opt
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil { if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
@ -1395,12 +1416,13 @@ func (client *ContainerClient) setMetadataHandleResponse(resp *http.Response) (C
// SubmitBatch - The Batch operation allows multiple API calls to be embedded into a single HTTP request. // SubmitBatch - The Batch operation allows multiple API calls to be embedded into a single HTTP request.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// multipartContentType - Required. The value of this header must be multipart/mixed with a batch boundary. Example header // - multipartContentType - Required. The value of this header must be multipart/mixed with a batch boundary. Example header
// value: multipart/mixed; boundary=batch_ // value: multipart/mixed; boundary=batch_
// body - Initial data // - body - Initial data
// options - ContainerClientSubmitBatchOptions contains the optional parameters for the ContainerClient.SubmitBatch method. // - options - ContainerClientSubmitBatchOptions contains the optional parameters for the ContainerClient.SubmitBatch method.
func (client *ContainerClient) SubmitBatch(ctx context.Context, contentLength int64, multipartContentType string, body io.ReadSeekCloser, options *ContainerClientSubmitBatchOptions) (ContainerClientSubmitBatchResponse, error) { func (client *ContainerClient) SubmitBatch(ctx context.Context, contentLength int64, multipartContentType string, body io.ReadSeekCloser, options *ContainerClientSubmitBatchOptions) (ContainerClientSubmitBatchResponse, error) {
req, err := client.submitBatchCreateRequest(ctx, contentLength, multipartContentType, body, options) req, err := client.submitBatchCreateRequest(ctx, contentLength, multipartContentType, body, options)
if err != nil { if err != nil {

View file

@ -77,7 +77,7 @@ type AppendBlobClientCreateOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -136,10 +136,6 @@ type BlobClientAbortCopyFromURLOptions struct {
// BlobClientAcquireLeaseOptions contains the optional parameters for the BlobClient.AcquireLease method. // BlobClientAcquireLeaseOptions contains the optional parameters for the BlobClient.AcquireLease method.
type BlobClientAcquireLeaseOptions struct { type BlobClientAcquireLeaseOptions struct {
// Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease
// can be between 15 and 60 seconds. A lease duration cannot be changed using
// renew or change.
Duration *int32
// Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is // Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is
// not in the correct format. See Guid Constructor (String) for a list of valid GUID // not in the correct format. See Guid Constructor (String) for a list of valid GUID
// string formats. // string formats.
@ -197,7 +193,7 @@ type BlobClientCopyFromURLOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -218,7 +214,7 @@ type BlobClientCreateSnapshotOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -415,7 +411,7 @@ type BlobClientSetMetadataOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -476,7 +472,7 @@ type BlobClientStartCopyFromURLOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Optional: Indicates the priority with which to rehydrate an archived blob. // Optional: Indicates the priority with which to rehydrate an archived blob.
RehydratePriority *RehydratePriority RehydratePriority *RehydratePriority
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
@ -656,7 +652,7 @@ type BlockBlobClientCommitBlockListOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -699,7 +695,7 @@ type BlockBlobClientPutBlobFromURLOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -762,7 +758,7 @@ type BlockBlobClientUploadOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -796,10 +792,6 @@ type ClearRange struct {
// ContainerClientAcquireLeaseOptions contains the optional parameters for the ContainerClient.AcquireLease method. // ContainerClientAcquireLeaseOptions contains the optional parameters for the ContainerClient.AcquireLease method.
type ContainerClientAcquireLeaseOptions struct { type ContainerClientAcquireLeaseOptions struct {
// Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease
// can be between 15 and 60 seconds. A lease duration cannot be changed using
// renew or change.
Duration *int32
// Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is // Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is
// not in the correct format. See Guid Constructor (String) for a list of valid GUID // not in the correct format. See Guid Constructor (String) for a list of valid GUID
// string formats. // string formats.
@ -849,7 +841,7 @@ type ContainerClientCreateOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -893,7 +885,7 @@ type ContainerClientGetPropertiesOptions struct {
Timeout *int32 Timeout *int32
} }
// ContainerClientListBlobFlatSegmentOptions contains the optional parameters for the ContainerClient.ListBlobFlatSegment // ContainerClientListBlobFlatSegmentOptions contains the optional parameters for the ContainerClient.NewListBlobFlatSegmentPager
// method. // method.
type ContainerClientListBlobFlatSegmentOptions struct { type ContainerClientListBlobFlatSegmentOptions struct {
// Include this parameter to specify one or more datasets to include in the response. // Include this parameter to specify one or more datasets to include in the response.
@ -920,7 +912,7 @@ type ContainerClientListBlobFlatSegmentOptions struct {
Timeout *int32 Timeout *int32
} }
// ContainerClientListBlobHierarchySegmentOptions contains the optional parameters for the ContainerClient.ListBlobHierarchySegment // ContainerClientListBlobHierarchySegmentOptions contains the optional parameters for the ContainerClient.NewListBlobHierarchySegmentPager
// method. // method.
type ContainerClientListBlobHierarchySegmentOptions struct { type ContainerClientListBlobHierarchySegmentOptions struct {
// Include this parameter to specify one or more datasets to include in the response. // Include this parameter to specify one or more datasets to include in the response.
@ -1013,7 +1005,7 @@ type ContainerClientSetMetadataOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -1032,8 +1024,8 @@ type ContainerClientSubmitBatchOptions struct {
Timeout *int32 Timeout *int32
} }
// ContainerCpkScopeInfo contains a group of parameters for the ContainerClient.Create method. // ContainerCPKScopeInfo contains a group of parameters for the ContainerClient.Create method.
type ContainerCpkScopeInfo struct { type ContainerCPKScopeInfo struct {
// Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all // Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all
// future writes. // future writes.
DefaultEncryptionScope *string DefaultEncryptionScope *string
@ -1078,11 +1070,11 @@ type ContainerProperties struct {
RemainingRetentionDays *int32 `xml:"RemainingRetentionDays"` RemainingRetentionDays *int32 `xml:"RemainingRetentionDays"`
} }
// CorsRule - CORS is an HTTP feature that enables a web application running under one domain to access resources in another // CORSRule - CORS is an HTTP feature that enables a web application running under one domain to access resources in another
// domain. Web browsers implement a security restriction known as same-origin policy that // domain. Web browsers implement a security restriction known as same-origin policy that
// prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin // prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin
// domain) to call APIs in another domain // domain) to call APIs in another domain
type CorsRule struct { type CORSRule struct {
// REQUIRED; the request headers that the origin domain may specify on the CORS request. // REQUIRED; the request headers that the origin domain may specify on the CORS request.
AllowedHeaders *string `xml:"AllowedHeaders"` AllowedHeaders *string `xml:"AllowedHeaders"`
@ -1103,8 +1095,8 @@ type CorsRule struct {
MaxAgeInSeconds *int32 `xml:"MaxAgeInSeconds"` MaxAgeInSeconds *int32 `xml:"MaxAgeInSeconds"`
} }
// CpkInfo contains a group of parameters for the BlobClient.Download method. // CPKInfo contains a group of parameters for the BlobClient.Download method.
type CpkInfo struct { type CPKInfo struct {
// The algorithm used to produce the encryption key hash. Currently, the only accepted value is "AES256". Must be provided // The algorithm used to produce the encryption key hash. Currently, the only accepted value is "AES256". Must be provided
// if the x-ms-encryption-key header is provided. // if the x-ms-encryption-key header is provided.
EncryptionAlgorithm *EncryptionAlgorithmType EncryptionAlgorithm *EncryptionAlgorithmType
@ -1116,8 +1108,8 @@ type CpkInfo struct {
EncryptionKeySHA256 *string EncryptionKeySHA256 *string
} }
// CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
type CpkScopeInfo struct { type CPKScopeInfo struct {
// Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided // Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided
// in the request. If not specified, encryption is performed with the default // in the request. If not specified, encryption is performed with the default
// account encryption scope. For more information, see Encryption at Rest for Azure Storage Services. // account encryption scope. For more information, see Encryption at Rest for Azure Storage Services.
@ -1333,7 +1325,7 @@ type PageBlobClientCreateOptions struct {
// is not copied from the source blob or file. Note that beginning with // is not copied from the source blob or file. Note that beginning with
// version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, // version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers,
// Blobs, and Metadata for more information. // Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage // Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage
// analytics logging is enabled. // analytics logging is enabled.
RequestID *string RequestID *string
@ -1344,7 +1336,8 @@ type PageBlobClientCreateOptions struct {
Timeout *int32 Timeout *int32
} }
// PageBlobClientGetPageRangesDiffOptions contains the optional parameters for the PageBlobClient.GetPageRangesDiff method. // PageBlobClientGetPageRangesDiffOptions contains the optional parameters for the PageBlobClient.NewGetPageRangesDiffPager
// method.
type PageBlobClientGetPageRangesDiffOptions struct { type PageBlobClientGetPageRangesDiffOptions struct {
// A string value that identifies the portion of the list of containers to be returned with the next listing operation. The // A string value that identifies the portion of the list of containers to be returned with the next listing operation. The
// operation returns the NextMarker value within the response body if the listing // operation returns the NextMarker value within the response body if the listing
@ -1382,7 +1375,7 @@ type PageBlobClientGetPageRangesDiffOptions struct {
Timeout *int32 Timeout *int32
} }
// PageBlobClientGetPageRangesOptions contains the optional parameters for the PageBlobClient.GetPageRanges method. // PageBlobClientGetPageRangesOptions contains the optional parameters for the PageBlobClient.NewGetPageRangesPager method.
type PageBlobClientGetPageRangesOptions struct { type PageBlobClientGetPageRangesOptions struct {
// A string value that identifies the portion of the list of containers to be returned with the next listing operation. The // A string value that identifies the portion of the list of containers to be returned with the next listing operation. The
// operation returns the NextMarker value within the response body if the listing // operation returns the NextMarker value within the response body if the listing
@ -1495,7 +1488,7 @@ type QueryFormat struct {
JSONTextConfiguration *JSONTextConfiguration `xml:"JsonTextConfiguration"` JSONTextConfiguration *JSONTextConfiguration `xml:"JsonTextConfiguration"`
// parquet configuration // parquet configuration
ParquetTextConfiguration interface{} `xml:"ParquetTextConfiguration"` ParquetTextConfiguration any `xml:"ParquetTextConfiguration"`
} }
// QueryRequest - Groups the set of query request settings. // QueryRequest - Groups the set of query request settings.
@ -1558,8 +1551,6 @@ type ServiceClientFilterBlobsOptions struct {
// The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations. // The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.
// [https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations] // [https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations]
Timeout *int32 Timeout *int32
// Filters the results to return only to return only blobs whose tags match the specified expression.
Where *string
} }
// ServiceClientGetAccountInfoOptions contains the optional parameters for the ServiceClient.GetAccountInfo method. // ServiceClientGetAccountInfoOptions contains the optional parameters for the ServiceClient.GetAccountInfo method.
@ -1597,7 +1588,7 @@ type ServiceClientGetUserDelegationKeyOptions struct {
Timeout *int32 Timeout *int32
} }
// ServiceClientListContainersSegmentOptions contains the optional parameters for the ServiceClient.ListContainersSegment // ServiceClientListContainersSegmentOptions contains the optional parameters for the ServiceClient.NewListContainersSegmentPager
// method. // method.
type ServiceClientListContainersSegmentOptions struct { type ServiceClientListContainersSegmentOptions struct {
// Include this parameter to specify that the container's metadata be returned as part of the response body. // Include this parameter to specify that the container's metadata be returned as part of the response body.
@ -1689,7 +1680,7 @@ type StorageError struct {
// StorageServiceProperties - Storage Service Properties. // StorageServiceProperties - Storage Service Properties.
type StorageServiceProperties struct { type StorageServiceProperties struct {
// The set of CORS rules. // The set of CORS rules.
Cors []*CorsRule `xml:"Cors>CorsRule"` CORS []*CORSRule `xml:"Cors>CorsRule"`
// The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible // The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible
// values include version 2008-10-27 and all more recent versions // values include version 2008-10-27 and all more recent versions

View file

@ -20,7 +20,7 @@ import (
) )
// MarshalXML implements the xml.Marshaller interface for type AccessPolicy. // MarshalXML implements the xml.Marshaller interface for type AccessPolicy.
func (a AccessPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (a AccessPolicy) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias AccessPolicy type alias AccessPolicy
aux := &struct { aux := &struct {
*alias *alias
@ -31,11 +31,11 @@ func (a AccessPolicy) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
Expiry: (*timeRFC3339)(a.Expiry), Expiry: (*timeRFC3339)(a.Expiry),
Start: (*timeRFC3339)(a.Start), Start: (*timeRFC3339)(a.Start),
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type AccessPolicy. // UnmarshalXML implements the xml.Unmarshaller interface for type AccessPolicy.
func (a *AccessPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (a *AccessPolicy) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias AccessPolicy type alias AccessPolicy
aux := &struct { aux := &struct {
*alias *alias
@ -44,7 +44,7 @@ func (a *AccessPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
}{ }{
alias: (*alias)(a), alias: (*alias)(a),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
a.Expiry = (*time.Time)(aux.Expiry) a.Expiry = (*time.Time)(aux.Expiry)
@ -53,7 +53,7 @@ func (a *AccessPolicy) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
} }
// MarshalXML implements the xml.Marshaller interface for type ArrowConfiguration. // MarshalXML implements the xml.Marshaller interface for type ArrowConfiguration.
func (a ArrowConfiguration) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (a ArrowConfiguration) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias ArrowConfiguration type alias ArrowConfiguration
aux := &struct { aux := &struct {
*alias *alias
@ -64,11 +64,11 @@ func (a ArrowConfiguration) MarshalXML(e *xml.Encoder, start xml.StartElement) e
if a.Schema != nil { if a.Schema != nil {
aux.Schema = &a.Schema aux.Schema = &a.Schema
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type BlobFlatListSegment. // MarshalXML implements the xml.Marshaller interface for type BlobFlatListSegment.
func (b BlobFlatListSegment) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlobFlatListSegment) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias BlobFlatListSegment type alias BlobFlatListSegment
aux := &struct { aux := &struct {
*alias *alias
@ -79,11 +79,11 @@ func (b BlobFlatListSegment) MarshalXML(e *xml.Encoder, start xml.StartElement)
if b.BlobItems != nil { if b.BlobItems != nil {
aux.BlobItems = &b.BlobItems aux.BlobItems = &b.BlobItems
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type BlobHierarchyListSegment. // MarshalXML implements the xml.Marshaller interface for type BlobHierarchyListSegment.
func (b BlobHierarchyListSegment) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlobHierarchyListSegment) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias BlobHierarchyListSegment type alias BlobHierarchyListSegment
aux := &struct { aux := &struct {
*alias *alias
@ -98,11 +98,11 @@ func (b BlobHierarchyListSegment) MarshalXML(e *xml.Encoder, start xml.StartElem
if b.BlobPrefixes != nil { if b.BlobPrefixes != nil {
aux.BlobPrefixes = &b.BlobPrefixes aux.BlobPrefixes = &b.BlobPrefixes
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type BlobItem. // UnmarshalXML implements the xml.Unmarshaller interface for type BlobItem.
func (b *BlobItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (b *BlobItem) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias BlobItem type alias BlobItem
aux := &struct { aux := &struct {
*alias *alias
@ -111,7 +111,7 @@ func (b *BlobItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}{ }{
alias: (*alias)(b), alias: (*alias)(b),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
b.Metadata = (map[string]*string)(aux.Metadata) b.Metadata = (map[string]*string)(aux.Metadata)
@ -120,7 +120,7 @@ func (b *BlobItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
} }
// MarshalXML implements the xml.Marshaller interface for type BlobProperties. // MarshalXML implements the xml.Marshaller interface for type BlobProperties.
func (b BlobProperties) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlobProperties) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias BlobProperties type alias BlobProperties
aux := &struct { aux := &struct {
*alias *alias
@ -148,11 +148,11 @@ func (b BlobProperties) MarshalXML(e *xml.Encoder, start xml.StartElement) error
encodedContentMD5 := runtime.EncodeByteArray(b.ContentMD5, runtime.Base64StdFormat) encodedContentMD5 := runtime.EncodeByteArray(b.ContentMD5, runtime.Base64StdFormat)
aux.ContentMD5 = &encodedContentMD5 aux.ContentMD5 = &encodedContentMD5
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type BlobProperties. // UnmarshalXML implements the xml.Unmarshaller interface for type BlobProperties.
func (b *BlobProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (b *BlobProperties) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias BlobProperties type alias BlobProperties
aux := &struct { aux := &struct {
*alias *alias
@ -168,7 +168,7 @@ func (b *BlobProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
}{ }{
alias: (*alias)(b), alias: (*alias)(b),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
b.AccessTierChangeTime = (*time.Time)(aux.AccessTierChangeTime) b.AccessTierChangeTime = (*time.Time)(aux.AccessTierChangeTime)
@ -188,7 +188,7 @@ func (b *BlobProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
} }
// MarshalXML implements the xml.Marshaller interface for type BlobTags. // MarshalXML implements the xml.Marshaller interface for type BlobTags.
func (b BlobTags) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlobTags) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
start.Name.Local = "Tags" start.Name.Local = "Tags"
type alias BlobTags type alias BlobTags
aux := &struct { aux := &struct {
@ -200,11 +200,11 @@ func (b BlobTags) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if b.BlobTagSet != nil { if b.BlobTagSet != nil {
aux.BlobTagSet = &b.BlobTagSet aux.BlobTagSet = &b.BlobTagSet
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type BlockList. // MarshalXML implements the xml.Marshaller interface for type BlockList.
func (b BlockList) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlockList) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias BlockList type alias BlockList
aux := &struct { aux := &struct {
*alias *alias
@ -219,11 +219,11 @@ func (b BlockList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if b.UncommittedBlocks != nil { if b.UncommittedBlocks != nil {
aux.UncommittedBlocks = &b.UncommittedBlocks aux.UncommittedBlocks = &b.UncommittedBlocks
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type BlockLookupList. // MarshalXML implements the xml.Marshaller interface for type BlockLookupList.
func (b BlockLookupList) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (b BlockLookupList) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
start.Name.Local = "BlockList" start.Name.Local = "BlockList"
type alias BlockLookupList type alias BlockLookupList
aux := &struct { aux := &struct {
@ -243,11 +243,11 @@ func (b BlockLookupList) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
if b.Uncommitted != nil { if b.Uncommitted != nil {
aux.Uncommitted = &b.Uncommitted aux.Uncommitted = &b.Uncommitted
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type ContainerItem. // UnmarshalXML implements the xml.Unmarshaller interface for type ContainerItem.
func (c *ContainerItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (c *ContainerItem) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias ContainerItem type alias ContainerItem
aux := &struct { aux := &struct {
*alias *alias
@ -255,7 +255,7 @@ func (c *ContainerItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
}{ }{
alias: (*alias)(c), alias: (*alias)(c),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
c.Metadata = (map[string]*string)(aux.Metadata) c.Metadata = (map[string]*string)(aux.Metadata)
@ -263,7 +263,7 @@ func (c *ContainerItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
} }
// MarshalXML implements the xml.Marshaller interface for type ContainerProperties. // MarshalXML implements the xml.Marshaller interface for type ContainerProperties.
func (c ContainerProperties) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (c ContainerProperties) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias ContainerProperties type alias ContainerProperties
aux := &struct { aux := &struct {
*alias *alias
@ -274,11 +274,11 @@ func (c ContainerProperties) MarshalXML(e *xml.Encoder, start xml.StartElement)
DeletedTime: (*timeRFC1123)(c.DeletedTime), DeletedTime: (*timeRFC1123)(c.DeletedTime),
LastModified: (*timeRFC1123)(c.LastModified), LastModified: (*timeRFC1123)(c.LastModified),
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type ContainerProperties. // UnmarshalXML implements the xml.Unmarshaller interface for type ContainerProperties.
func (c *ContainerProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (c *ContainerProperties) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias ContainerProperties type alias ContainerProperties
aux := &struct { aux := &struct {
*alias *alias
@ -287,7 +287,7 @@ func (c *ContainerProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElemen
}{ }{
alias: (*alias)(c), alias: (*alias)(c),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
c.DeletedTime = (*time.Time)(aux.DeletedTime) c.DeletedTime = (*time.Time)(aux.DeletedTime)
@ -296,7 +296,7 @@ func (c *ContainerProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElemen
} }
// MarshalXML implements the xml.Marshaller interface for type FilterBlobSegment. // MarshalXML implements the xml.Marshaller interface for type FilterBlobSegment.
func (f FilterBlobSegment) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (f FilterBlobSegment) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias FilterBlobSegment type alias FilterBlobSegment
aux := &struct { aux := &struct {
*alias *alias
@ -307,11 +307,11 @@ func (f FilterBlobSegment) MarshalXML(e *xml.Encoder, start xml.StartElement) er
if f.Blobs != nil { if f.Blobs != nil {
aux.Blobs = &f.Blobs aux.Blobs = &f.Blobs
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type GeoReplication. // MarshalXML implements the xml.Marshaller interface for type GeoReplication.
func (g GeoReplication) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (g GeoReplication) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias GeoReplication type alias GeoReplication
aux := &struct { aux := &struct {
*alias *alias
@ -320,11 +320,11 @@ func (g GeoReplication) MarshalXML(e *xml.Encoder, start xml.StartElement) error
alias: (*alias)(&g), alias: (*alias)(&g),
LastSyncTime: (*timeRFC1123)(g.LastSyncTime), LastSyncTime: (*timeRFC1123)(g.LastSyncTime),
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type GeoReplication. // UnmarshalXML implements the xml.Unmarshaller interface for type GeoReplication.
func (g *GeoReplication) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (g *GeoReplication) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias GeoReplication type alias GeoReplication
aux := &struct { aux := &struct {
*alias *alias
@ -332,7 +332,7 @@ func (g *GeoReplication) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
}{ }{
alias: (*alias)(g), alias: (*alias)(g),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
g.LastSyncTime = (*time.Time)(aux.LastSyncTime) g.LastSyncTime = (*time.Time)(aux.LastSyncTime)
@ -340,7 +340,7 @@ func (g *GeoReplication) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
} }
// MarshalXML implements the xml.Marshaller interface for type ListContainersSegmentResponse. // MarshalXML implements the xml.Marshaller interface for type ListContainersSegmentResponse.
func (l ListContainersSegmentResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (l ListContainersSegmentResponse) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias ListContainersSegmentResponse type alias ListContainersSegmentResponse
aux := &struct { aux := &struct {
*alias *alias
@ -351,11 +351,11 @@ func (l ListContainersSegmentResponse) MarshalXML(e *xml.Encoder, start xml.Star
if l.ContainerItems != nil { if l.ContainerItems != nil {
aux.ContainerItems = &l.ContainerItems aux.ContainerItems = &l.ContainerItems
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type PageList. // MarshalXML implements the xml.Marshaller interface for type PageList.
func (p PageList) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (p PageList) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias PageList type alias PageList
aux := &struct { aux := &struct {
*alias *alias
@ -370,11 +370,11 @@ func (p PageList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if p.PageRange != nil { if p.PageRange != nil {
aux.PageRange = &p.PageRange aux.PageRange = &p.PageRange
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type QueryRequest. // MarshalXML implements the xml.Marshaller interface for type QueryRequest.
func (q QueryRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (q QueryRequest) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
start.Name.Local = "QueryRequest" start.Name.Local = "QueryRequest"
type alias QueryRequest type alias QueryRequest
aux := &struct { aux := &struct {
@ -382,12 +382,12 @@ func (q QueryRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
}{ }{
alias: (*alias)(&q), alias: (*alias)(&q),
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalJSON implements the json.Marshaller interface for type StorageError. // MarshalJSON implements the json.Marshaller interface for type StorageError.
func (s StorageError) MarshalJSON() ([]byte, error) { func (s StorageError) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{}) objectMap := make(map[string]any)
populate(objectMap, "Message", s.Message) populate(objectMap, "Message", s.Message)
return json.Marshal(objectMap) return json.Marshal(objectMap)
} }
@ -413,22 +413,22 @@ func (s *StorageError) UnmarshalJSON(data []byte) error {
} }
// MarshalXML implements the xml.Marshaller interface for type StorageServiceProperties. // MarshalXML implements the xml.Marshaller interface for type StorageServiceProperties.
func (s StorageServiceProperties) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (s StorageServiceProperties) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias StorageServiceProperties type alias StorageServiceProperties
aux := &struct { aux := &struct {
*alias *alias
Cors *[]*CorsRule `xml:"Cors>CorsRule"` CORS *[]*CORSRule `xml:"Cors>CorsRule"`
}{ }{
alias: (*alias)(&s), alias: (*alias)(&s),
} }
if s.Cors != nil { if s.CORS != nil {
aux.Cors = &s.Cors aux.CORS = &s.CORS
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// MarshalXML implements the xml.Marshaller interface for type UserDelegationKey. // MarshalXML implements the xml.Marshaller interface for type UserDelegationKey.
func (u UserDelegationKey) MarshalXML(e *xml.Encoder, start xml.StartElement) error { func (u UserDelegationKey) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
type alias UserDelegationKey type alias UserDelegationKey
aux := &struct { aux := &struct {
*alias *alias
@ -439,11 +439,11 @@ func (u UserDelegationKey) MarshalXML(e *xml.Encoder, start xml.StartElement) er
SignedExpiry: (*timeRFC3339)(u.SignedExpiry), SignedExpiry: (*timeRFC3339)(u.SignedExpiry),
SignedStart: (*timeRFC3339)(u.SignedStart), SignedStart: (*timeRFC3339)(u.SignedStart),
} }
return e.EncodeElement(aux, start) return enc.EncodeElement(aux, start)
} }
// UnmarshalXML implements the xml.Unmarshaller interface for type UserDelegationKey. // UnmarshalXML implements the xml.Unmarshaller interface for type UserDelegationKey.
func (u *UserDelegationKey) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { func (u *UserDelegationKey) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) error {
type alias UserDelegationKey type alias UserDelegationKey
aux := &struct { aux := &struct {
*alias *alias
@ -452,7 +452,7 @@ func (u *UserDelegationKey) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
}{ }{
alias: (*alias)(u), alias: (*alias)(u),
} }
if err := d.DecodeElement(aux, &start); err != nil { if err := dec.DecodeElement(aux, &start); err != nil {
return err return err
} }
u.SignedExpiry = (*time.Time)(aux.SignedExpiry) u.SignedExpiry = (*time.Time)(aux.SignedExpiry)
@ -460,7 +460,7 @@ func (u *UserDelegationKey) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
return nil return nil
} }
func populate(m map[string]interface{}, k string, v interface{}) { func populate(m map[string]any, k string, v any) {
if v == nil { if v == nil {
return return
} else if azcore.IsNullValue(v) { } else if azcore.IsNullValue(v) {
@ -470,7 +470,7 @@ func populate(m map[string]interface{}, k string, v interface{}) {
} }
} }
func unpopulate(data json.RawMessage, fn string, v interface{}) error { func unpopulate(data json.RawMessage, fn string, v any) error {
if data == nil { if data == nil {
return nil return nil
} }

View file

@ -29,8 +29,8 @@ type PageBlobClient struct {
} }
// NewPageBlobClient creates a new instance of PageBlobClient with the specified values. // NewPageBlobClient creates a new instance of PageBlobClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewPageBlobClient(endpoint string, pl runtime.Pipeline) *PageBlobClient { func NewPageBlobClient(endpoint string, pl runtime.Pipeline) *PageBlobClient {
client := &PageBlobClient{ client := &PageBlobClient{
endpoint: endpoint, endpoint: endpoint,
@ -41,16 +41,17 @@ func NewPageBlobClient(endpoint string, pl runtime.Pipeline) *PageBlobClient {
// ClearPages - The Clear Pages operation clears a set of pages from a page blob // ClearPages - The Clear Pages operation clears a set of pages from a page blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// options - PageBlobClientClearPagesOptions contains the optional parameters for the PageBlobClient.ClearPages method. // - options - PageBlobClientClearPagesOptions contains the optional parameters for the PageBlobClient.ClearPages method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages // - SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) ClearPages(ctx context.Context, contentLength int64, options *PageBlobClientClearPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientClearPagesResponse, error) { func (client *PageBlobClient) ClearPages(ctx context.Context, contentLength int64, options *PageBlobClientClearPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientClearPagesResponse, error) {
req, err := client.clearPagesCreateRequest(ctx, contentLength, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions) req, err := client.clearPagesCreateRequest(ctx, contentLength, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
return PageBlobClientClearPagesResponse{}, err return PageBlobClientClearPagesResponse{}, err
@ -66,7 +67,7 @@ func (client *PageBlobClient) ClearPages(ctx context.Context, contentLength int6
} }
// clearPagesCreateRequest creates the ClearPages request. // clearPagesCreateRequest creates the ClearPages request.
func (client *PageBlobClient) clearPagesCreateRequest(ctx context.Context, contentLength int64, options *PageBlobClientClearPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *PageBlobClient) clearPagesCreateRequest(ctx context.Context, contentLength int64, options *PageBlobClientClearPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -188,13 +189,14 @@ func (client *PageBlobClient) clearPagesHandleResponse(resp *http.Response) (Pag
// be read or copied from as usual. This API is supported since REST version // be read or copied from as usual. This API is supported since REST version
// 2016-05-31. // 2016-05-31.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies // - copySource - Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies
// a page blob snapshot. The value should be URL-encoded as it would appear in a request // a page blob snapshot. The value should be URL-encoded as it would appear in a request
// URI. The source blob must either be public or must be authenticated via a shared access signature. // URI. The source blob must either be public or must be authenticated via a shared access signature.
// options - PageBlobClientCopyIncrementalOptions contains the optional parameters for the PageBlobClient.CopyIncremental // - options - PageBlobClientCopyIncrementalOptions contains the optional parameters for the PageBlobClient.CopyIncremental
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) CopyIncremental(ctx context.Context, copySource string, options *PageBlobClientCopyIncrementalOptions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientCopyIncrementalResponse, error) { func (client *PageBlobClient) CopyIncremental(ctx context.Context, copySource string, options *PageBlobClientCopyIncrementalOptions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientCopyIncrementalResponse, error) {
req, err := client.copyIncrementalCreateRequest(ctx, copySource, options, modifiedAccessConditions) req, err := client.copyIncrementalCreateRequest(ctx, copySource, options, modifiedAccessConditions)
if err != nil { if err != nil {
@ -286,17 +288,18 @@ func (client *PageBlobClient) copyIncrementalHandleResponse(resp *http.Response)
// Create - The Create operation creates a new page blob. // Create - The Create operation creates a new page blob.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// blobContentLength - This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned // - blobContentLength - This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned
// to a 512-byte boundary. // to a 512-byte boundary.
// options - PageBlobClientCreateOptions contains the optional parameters for the PageBlobClient.Create method. // - options - PageBlobClientCreateOptions contains the optional parameters for the PageBlobClient.Create method.
// BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method. // - BlobHTTPHeaders - BlobHTTPHeaders contains a group of parameters for the BlobClient.SetHTTPHeaders method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) Create(ctx context.Context, contentLength int64, blobContentLength int64, options *PageBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientCreateResponse, error) { func (client *PageBlobClient) Create(ctx context.Context, contentLength int64, blobContentLength int64, options *PageBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientCreateResponse, error) {
req, err := client.createCreateRequest(ctx, contentLength, blobContentLength, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.createCreateRequest(ctx, contentLength, blobContentLength, options, blobHTTPHeaders, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return PageBlobClientCreateResponse{}, err return PageBlobClientCreateResponse{}, err
@ -312,7 +315,7 @@ func (client *PageBlobClient) Create(ctx context.Context, contentLength int64, b
} }
// createCreateRequest creates the Create request. // createCreateRequest creates the Create request.
func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLength int64, blobContentLength int64, options *PageBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLength int64, blobContentLength int64, options *PageBlobClientCreateOptions, blobHTTPHeaders *BlobHTTPHeaders, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -344,7 +347,9 @@ func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLe
} }
if options != nil && options.Metadata != nil { if options != nil && options.Metadata != nil {
for k, v := range options.Metadata { for k, v := range options.Metadata {
req.Raw().Header["x-ms-meta-"+k] = []string{v} if v != nil {
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
}
} }
} }
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
@ -461,11 +466,12 @@ func (client *PageBlobClient) createHandleResponse(resp *http.Response) (PageBlo
// NewGetPageRangesPager - The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot // NewGetPageRangesPager - The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot
// of a page blob // of a page blob
// If the operation fails it returns an *azcore.ResponseError type. //
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - PageBlobClientGetPageRangesOptions contains the optional parameters for the PageBlobClient.GetPageRanges method. // - options - PageBlobClientGetPageRangesOptions contains the optional parameters for the PageBlobClient.NewGetPageRangesPager
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) NewGetPageRangesPager(options *PageBlobClientGetPageRangesOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) *runtime.Pager[PageBlobClientGetPageRangesResponse] { func (client *PageBlobClient) NewGetPageRangesPager(options *PageBlobClientGetPageRangesOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) *runtime.Pager[PageBlobClientGetPageRangesResponse] {
return runtime.NewPager(runtime.PagingHandler[PageBlobClientGetPageRangesResponse]{ return runtime.NewPager(runtime.PagingHandler[PageBlobClientGetPageRangesResponse]{
More: func(page PageBlobClientGetPageRangesResponse) bool { More: func(page PageBlobClientGetPageRangesResponse) bool {
@ -588,12 +594,12 @@ func (client *PageBlobClient) GetPageRangesHandleResponse(resp *http.Response) (
// NewGetPageRangesDiffPager - The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that // NewGetPageRangesDiffPager - The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that
// were changed between target blob and previous snapshot. // were changed between target blob and previous snapshot.
// If the operation fails it returns an *azcore.ResponseError type. //
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - PageBlobClientGetPageRangesDiffOptions contains the optional parameters for the PageBlobClient.GetPageRangesDiff // - options - PageBlobClientGetPageRangesDiffOptions contains the optional parameters for the PageBlobClient.NewGetPageRangesDiffPager
// method. // method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) NewGetPageRangesDiffPager(options *PageBlobClientGetPageRangesDiffOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) *runtime.Pager[PageBlobClientGetPageRangesDiffResponse] { func (client *PageBlobClient) NewGetPageRangesDiffPager(options *PageBlobClientGetPageRangesDiffOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) *runtime.Pager[PageBlobClientGetPageRangesDiffResponse] {
return runtime.NewPager(runtime.PagingHandler[PageBlobClientGetPageRangesDiffResponse]{ return runtime.NewPager(runtime.PagingHandler[PageBlobClientGetPageRangesDiffResponse]{
More: func(page PageBlobClientGetPageRangesDiffResponse) bool { More: func(page PageBlobClientGetPageRangesDiffResponse) bool {
@ -722,15 +728,16 @@ func (client *PageBlobClient) GetPageRangesDiffHandleResponse(resp *http.Respons
// Resize - Resize the Blob // Resize - Resize the Blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// blobContentLength - This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned // - blobContentLength - This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned
// to a 512-byte boundary. // to a 512-byte boundary.
// options - PageBlobClientResizeOptions contains the optional parameters for the PageBlobClient.Resize method. // - options - PageBlobClientResizeOptions contains the optional parameters for the PageBlobClient.Resize method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) Resize(ctx context.Context, blobContentLength int64, options *PageBlobClientResizeOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientResizeResponse, error) { func (client *PageBlobClient) Resize(ctx context.Context, blobContentLength int64, options *PageBlobClientResizeOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientResizeResponse, error) {
req, err := client.resizeCreateRequest(ctx, blobContentLength, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions) req, err := client.resizeCreateRequest(ctx, blobContentLength, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, modifiedAccessConditions)
if err != nil { if err != nil {
return PageBlobClientResizeResponse{}, err return PageBlobClientResizeResponse{}, err
@ -746,7 +753,7 @@ func (client *PageBlobClient) Resize(ctx context.Context, blobContentLength int6
} }
// resizeCreateRequest creates the Resize request. // resizeCreateRequest creates the Resize request.
func (client *PageBlobClient) resizeCreateRequest(ctx context.Context, blobContentLength int64, options *PageBlobClientResizeOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *PageBlobClient) resizeCreateRequest(ctx context.Context, blobContentLength int64, options *PageBlobClientResizeOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -837,13 +844,14 @@ func (client *PageBlobClient) resizeHandleResponse(resp *http.Response) (PageBlo
// UpdateSequenceNumber - Update the sequence number of the blob // UpdateSequenceNumber - Update the sequence number of the blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// sequenceNumberAction - Required if the x-ms-blob-sequence-number header is set for the request. This property applies to // - sequenceNumberAction - Required if the x-ms-blob-sequence-number header is set for the request. This property applies to
// page blobs only. This property indicates how the service should modify the blob's sequence number // page blobs only. This property indicates how the service should modify the blob's sequence number
// options - PageBlobClientUpdateSequenceNumberOptions contains the optional parameters for the PageBlobClient.UpdateSequenceNumber // - options - PageBlobClientUpdateSequenceNumberOptions contains the optional parameters for the PageBlobClient.UpdateSequenceNumber
// method. // method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) UpdateSequenceNumber(ctx context.Context, sequenceNumberAction SequenceNumberActionType, options *PageBlobClientUpdateSequenceNumberOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientUpdateSequenceNumberResponse, error) { func (client *PageBlobClient) UpdateSequenceNumber(ctx context.Context, sequenceNumberAction SequenceNumberActionType, options *PageBlobClientUpdateSequenceNumberOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientUpdateSequenceNumberResponse, error) {
req, err := client.updateSequenceNumberCreateRequest(ctx, sequenceNumberAction, options, leaseAccessConditions, modifiedAccessConditions) req, err := client.updateSequenceNumberCreateRequest(ctx, sequenceNumberAction, options, leaseAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
@ -942,17 +950,18 @@ func (client *PageBlobClient) updateSequenceNumberHandleResponse(resp *http.Resp
// UploadPages - The Upload Pages operation writes a range of pages to a page blob // UploadPages - The Upload Pages operation writes a range of pages to a page blob
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// body - Initial data // - body - Initial data
// options - PageBlobClientUploadPagesOptions contains the optional parameters for the PageBlobClient.UploadPages method. // - options - PageBlobClientUploadPagesOptions contains the optional parameters for the PageBlobClient.UploadPages method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages // - SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
func (client *PageBlobClient) UploadPages(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *PageBlobClientUploadPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientUploadPagesResponse, error) { func (client *PageBlobClient) UploadPages(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *PageBlobClientUploadPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (PageBlobClientUploadPagesResponse, error) {
req, err := client.uploadPagesCreateRequest(ctx, contentLength, body, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions) req, err := client.uploadPagesCreateRequest(ctx, contentLength, body, options, leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions)
if err != nil { if err != nil {
return PageBlobClientUploadPagesResponse{}, err return PageBlobClientUploadPagesResponse{}, err
@ -968,7 +977,7 @@ func (client *PageBlobClient) UploadPages(ctx context.Context, contentLength int
} }
// uploadPagesCreateRequest creates the UploadPages request. // uploadPagesCreateRequest creates the UploadPages request.
func (client *PageBlobClient) uploadPagesCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *PageBlobClientUploadPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { func (client *PageBlobClient) uploadPagesCreateRequest(ctx context.Context, contentLength int64, body io.ReadSeekCloser, options *PageBlobClientUploadPagesOptions, leaseAccessConditions *LeaseAccessConditions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -1106,24 +1115,25 @@ func (client *PageBlobClient) uploadPagesHandleResponse(resp *http.Response) (Pa
// UploadPagesFromURL - The Upload Pages operation writes a range of pages to a page blob where the contents are read from // UploadPagesFromURL - The Upload Pages operation writes a range of pages to a page blob where the contents are read from
// a URL // a URL
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// sourceURL - Specify a URL to the copy source. // - sourceURL - Specify a URL to the copy source.
// sourceRange - Bytes of source data in the specified range. The length of this range should match the ContentLength header // - sourceRange - Bytes of source data in the specified range. The length of this range should match the ContentLength header
// and x-ms-range/Range destination range header. // and x-ms-range/Range destination range header.
// contentLength - The length of the request. // - contentLength - The length of the request.
// rangeParam - The range of bytes to which the source range would be written. The range should be 512 aligned and range-end // - rangeParam - The range of bytes to which the source range would be written. The range should be 512 aligned and range-end
// is required. // is required.
// options - PageBlobClientUploadPagesFromURLOptions contains the optional parameters for the PageBlobClient.UploadPagesFromURL // - options - PageBlobClientUploadPagesFromURLOptions contains the optional parameters for the PageBlobClient.UploadPagesFromURL
// method. // method.
// CpkInfo - CpkInfo contains a group of parameters for the BlobClient.Download method. // - CPKInfo - CPKInfo contains a group of parameters for the BlobClient.Download method.
// CpkScopeInfo - CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // - CPKScopeInfo - CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
// LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method. // - LeaseAccessConditions - LeaseAccessConditions contains a group of parameters for the ContainerClient.GetProperties method.
// SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages // - SequenceNumberAccessConditions - SequenceNumberAccessConditions contains a group of parameters for the PageBlobClient.UploadPages
// method. // method.
// ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method. // - ModifiedAccessConditions - ModifiedAccessConditions contains a group of parameters for the ContainerClient.Delete method.
// SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL // - SourceModifiedAccessConditions - SourceModifiedAccessConditions contains a group of parameters for the BlobClient.StartCopyFromURL
// method. // method.
func (client *PageBlobClient) UploadPagesFromURL(ctx context.Context, sourceURL string, sourceRange string, contentLength int64, rangeParam string, options *PageBlobClientUploadPagesFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (PageBlobClientUploadPagesFromURLResponse, error) { func (client *PageBlobClient) UploadPagesFromURL(ctx context.Context, sourceURL string, sourceRange string, contentLength int64, rangeParam string, options *PageBlobClientUploadPagesFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (PageBlobClientUploadPagesFromURLResponse, error) {
req, err := client.uploadPagesFromURLCreateRequest(ctx, sourceURL, sourceRange, contentLength, rangeParam, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, sequenceNumberAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions) req, err := client.uploadPagesFromURLCreateRequest(ctx, sourceURL, sourceRange, contentLength, rangeParam, options, cpkInfo, cpkScopeInfo, leaseAccessConditions, sequenceNumberAccessConditions, modifiedAccessConditions, sourceModifiedAccessConditions)
if err != nil { if err != nil {
return PageBlobClientUploadPagesFromURLResponse{}, err return PageBlobClientUploadPagesFromURLResponse{}, err
@ -1139,7 +1149,7 @@ func (client *PageBlobClient) UploadPagesFromURL(ctx context.Context, sourceURL
} }
// uploadPagesFromURLCreateRequest creates the UploadPagesFromURL request. // uploadPagesFromURLCreateRequest creates the UploadPagesFromURL request.
func (client *PageBlobClient) uploadPagesFromURLCreateRequest(ctx context.Context, sourceURL string, sourceRange string, contentLength int64, rangeParam string, options *PageBlobClientUploadPagesFromURLOptions, cpkInfo *CpkInfo, cpkScopeInfo *CpkScopeInfo, leaseAccessConditions *LeaseAccessConditions, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) { func (client *PageBlobClient) uploadPagesFromURLCreateRequest(ctx context.Context, sourceURL string, sourceRange string, contentLength int64, rangeParam string, options *PageBlobClientUploadPagesFromURLOptions, cpkInfo *CPKInfo, cpkScopeInfo *CPKScopeInfo, leaseAccessConditions *LeaseAccessConditions, sequenceNumberAccessConditions *SequenceNumberAccessConditions, modifiedAccessConditions *ModifiedAccessConditions, sourceModifiedAccessConditions *SourceModifiedAccessConditions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodPut, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err

View file

@ -456,13 +456,13 @@ type BlobClientDownloadResponse struct {
LegalHold *bool LegalHold *bool
// Metadata contains the information returned from the x-ms-meta header response. // Metadata contains the information returned from the x-ms-meta header response.
Metadata map[string]string Metadata map[string]*string
// ObjectReplicationPolicyID contains the information returned from the x-ms-or-policy-id header response. // ObjectReplicationPolicyID contains the information returned from the x-ms-or-policy-id header response.
ObjectReplicationPolicyID *string ObjectReplicationPolicyID *string
// ObjectReplicationRules contains the information returned from the x-ms-or header response. // ObjectReplicationRules contains the information returned from the x-ms-or header response.
ObjectReplicationRules map[string]string ObjectReplicationRules map[string]*string
// RequestID contains the information returned from the x-ms-request-id header response. // RequestID contains the information returned from the x-ms-request-id header response.
RequestID *string RequestID *string
@ -624,13 +624,13 @@ type BlobClientGetPropertiesResponse struct {
LegalHold *bool LegalHold *bool
// Metadata contains the information returned from the x-ms-meta header response. // Metadata contains the information returned from the x-ms-meta header response.
Metadata map[string]string Metadata map[string]*string
// ObjectReplicationPolicyID contains the information returned from the x-ms-or-policy-id header response. // ObjectReplicationPolicyID contains the information returned from the x-ms-or-policy-id header response.
ObjectReplicationPolicyID *string ObjectReplicationPolicyID *string
// ObjectReplicationRules contains the information returned from the x-ms-or header response. // ObjectReplicationRules contains the information returned from the x-ms-or header response.
ObjectReplicationRules map[string]string ObjectReplicationRules map[string]*string
// RehydratePriority contains the information returned from the x-ms-rehydrate-priority header response. // RehydratePriority contains the information returned from the x-ms-rehydrate-priority header response.
RehydratePriority *string RehydratePriority *string
@ -760,7 +760,7 @@ type BlobClientQueryResponse struct {
LeaseStatus *LeaseStatusType LeaseStatus *LeaseStatusType
// Metadata contains the information returned from the x-ms-meta header response. // Metadata contains the information returned from the x-ms-meta header response.
Metadata map[string]string Metadata map[string]*string
// RequestID contains the information returned from the x-ms-request-id header response. // RequestID contains the information returned from the x-ms-request-id header response.
RequestID *string RequestID *string
@ -1401,7 +1401,7 @@ type ContainerClientGetPropertiesResponse struct {
LeaseStatus *LeaseStatusType LeaseStatus *LeaseStatusType
// Metadata contains the information returned from the x-ms-meta header response. // Metadata contains the information returned from the x-ms-meta header response.
Metadata map[string]string Metadata map[string]*string
// RequestID contains the information returned from the x-ms-request-id header response. // RequestID contains the information returned from the x-ms-request-id header response.
RequestID *string RequestID *string
@ -1410,7 +1410,7 @@ type ContainerClientGetPropertiesResponse struct {
Version *string Version *string
} }
// ContainerClientListBlobFlatSegmentResponse contains the response from method ContainerClient.ListBlobFlatSegment. // ContainerClientListBlobFlatSegmentResponse contains the response from method ContainerClient.NewListBlobFlatSegmentPager.
type ContainerClientListBlobFlatSegmentResponse struct { type ContainerClientListBlobFlatSegmentResponse struct {
ListBlobsFlatSegmentResponse ListBlobsFlatSegmentResponse
// ClientRequestID contains the information returned from the x-ms-client-request-id header response. // ClientRequestID contains the information returned from the x-ms-client-request-id header response.
@ -1429,7 +1429,7 @@ type ContainerClientListBlobFlatSegmentResponse struct {
Version *string `xml:"Version"` Version *string `xml:"Version"`
} }
// ContainerClientListBlobHierarchySegmentResponse contains the response from method ContainerClient.ListBlobHierarchySegment. // ContainerClientListBlobHierarchySegmentResponse contains the response from method ContainerClient.NewListBlobHierarchySegmentPager.
type ContainerClientListBlobHierarchySegmentResponse struct { type ContainerClientListBlobHierarchySegmentResponse struct {
ListBlobsHierarchySegmentResponse ListBlobsHierarchySegmentResponse
// ClientRequestID contains the information returned from the x-ms-client-request-id header response. // ClientRequestID contains the information returned from the x-ms-client-request-id header response.
@ -1673,7 +1673,7 @@ type PageBlobClientCreateResponse struct {
VersionID *string VersionID *string
} }
// PageBlobClientGetPageRangesDiffResponse contains the response from method PageBlobClient.GetPageRangesDiff. // PageBlobClientGetPageRangesDiffResponse contains the response from method PageBlobClient.NewGetPageRangesDiffPager.
type PageBlobClientGetPageRangesDiffResponse struct { type PageBlobClientGetPageRangesDiffResponse struct {
PageList PageList
// BlobContentLength contains the information returned from the x-ms-blob-content-length header response. // BlobContentLength contains the information returned from the x-ms-blob-content-length header response.
@ -1698,7 +1698,7 @@ type PageBlobClientGetPageRangesDiffResponse struct {
Version *string `xml:"Version"` Version *string `xml:"Version"`
} }
// PageBlobClientGetPageRangesResponse contains the response from method PageBlobClient.GetPageRanges. // PageBlobClientGetPageRangesResponse contains the response from method PageBlobClient.NewGetPageRangesPager.
type PageBlobClientGetPageRangesResponse struct { type PageBlobClientGetPageRangesResponse struct {
PageList PageList
// BlobContentLength contains the information returned from the x-ms-blob-content-length header response. // BlobContentLength contains the information returned from the x-ms-blob-content-length header response.
@ -1931,7 +1931,7 @@ type ServiceClientGetUserDelegationKeyResponse struct {
Version *string `xml:"Version"` Version *string `xml:"Version"`
} }
// ServiceClientListContainersSegmentResponse contains the response from method ServiceClient.ListContainersSegment. // ServiceClientListContainersSegmentResponse contains the response from method ServiceClient.NewListContainersSegmentPager.
type ServiceClientListContainersSegmentResponse struct { type ServiceClientListContainersSegmentResponse struct {
ListContainersSegmentResponse ListContainersSegmentResponse
// ClientRequestID contains the information returned from the x-ms-client-request-id header response. // ClientRequestID contains the information returned from the x-ms-client-request-id header response.

View file

@ -29,8 +29,8 @@ type ServiceClient struct {
} }
// NewServiceClient creates a new instance of ServiceClient with the specified values. // NewServiceClient creates a new instance of ServiceClient with the specified values.
// endpoint - The URL of the service account, container, or blob that is the target of the desired operation. // - endpoint - The URL of the service account, container, or blob that is the target of the desired operation.
// pl - the pipeline used for sending requests and handling responses. // - pl - the pipeline used for sending requests and handling responses.
func NewServiceClient(endpoint string, pl runtime.Pipeline) *ServiceClient { func NewServiceClient(endpoint string, pl runtime.Pipeline) *ServiceClient {
client := &ServiceClient{ client := &ServiceClient{
endpoint: endpoint, endpoint: endpoint,
@ -43,10 +43,12 @@ func NewServiceClient(endpoint string, pl runtime.Pipeline) *ServiceClient {
// expression. Filter blobs searches across all containers within a storage account but can // expression. Filter blobs searches across all containers within a storage account but can
// be scoped within the expression to a single container. // be scoped within the expression to a single container.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ServiceClientFilterBlobsOptions contains the optional parameters for the ServiceClient.FilterBlobs method. // - where - Filters the results to return only to return only blobs whose tags match the specified expression.
func (client *ServiceClient) FilterBlobs(ctx context.Context, options *ServiceClientFilterBlobsOptions) (ServiceClientFilterBlobsResponse, error) { // - options - ServiceClientFilterBlobsOptions contains the optional parameters for the ServiceClient.FilterBlobs method.
req, err := client.filterBlobsCreateRequest(ctx, options) func (client *ServiceClient) FilterBlobs(ctx context.Context, where string, options *ServiceClientFilterBlobsOptions) (ServiceClientFilterBlobsResponse, error) {
req, err := client.filterBlobsCreateRequest(ctx, where, options)
if err != nil { if err != nil {
return ServiceClientFilterBlobsResponse{}, err return ServiceClientFilterBlobsResponse{}, err
} }
@ -61,7 +63,7 @@ func (client *ServiceClient) FilterBlobs(ctx context.Context, options *ServiceCl
} }
// filterBlobsCreateRequest creates the FilterBlobs request. // filterBlobsCreateRequest creates the FilterBlobs request.
func (client *ServiceClient) filterBlobsCreateRequest(ctx context.Context, options *ServiceClientFilterBlobsOptions) (*policy.Request, error) { func (client *ServiceClient) filterBlobsCreateRequest(ctx context.Context, where string, options *ServiceClientFilterBlobsOptions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
@ -71,16 +73,14 @@ func (client *ServiceClient) filterBlobsCreateRequest(ctx context.Context, optio
if options != nil && options.Timeout != nil { if options != nil && options.Timeout != nil {
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10)) reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
} }
if options != nil && options.Where != nil { reqQP.Set("where", where)
reqQP.Set("where", *options.Where)
}
if options != nil && options.Marker != nil { if options != nil && options.Marker != nil {
reqQP.Set("marker", *options.Marker) reqQP.Set("marker", *options.Marker)
} }
if options != nil && options.Maxresults != nil { if options != nil && options.Maxresults != nil {
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
} }
req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().URL.RawQuery = strings.Replace(reqQP.Encode(), "+", "%20", -1)
req.Raw().Header["x-ms-version"] = []string{"2020-10-02"} req.Raw().Header["x-ms-version"] = []string{"2020-10-02"}
if options != nil && options.RequestID != nil { if options != nil && options.RequestID != nil {
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID} req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
@ -116,8 +116,9 @@ func (client *ServiceClient) filterBlobsHandleResponse(resp *http.Response) (Ser
// GetAccountInfo - Returns the sku name and account kind // GetAccountInfo - Returns the sku name and account kind
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ServiceClientGetAccountInfoOptions contains the optional parameters for the ServiceClient.GetAccountInfo method. // - options - ServiceClientGetAccountInfoOptions contains the optional parameters for the ServiceClient.GetAccountInfo method.
func (client *ServiceClient) GetAccountInfo(ctx context.Context, options *ServiceClientGetAccountInfoOptions) (ServiceClientGetAccountInfoResponse, error) { func (client *ServiceClient) GetAccountInfo(ctx context.Context, options *ServiceClientGetAccountInfoOptions) (ServiceClientGetAccountInfoResponse, error) {
req, err := client.getAccountInfoCreateRequest(ctx, options) req, err := client.getAccountInfoCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -186,8 +187,9 @@ func (client *ServiceClient) getAccountInfoHandleResponse(resp *http.Response) (
// GetProperties - gets the properties of a storage account's Blob service, including properties for Storage Analytics and // GetProperties - gets the properties of a storage account's Blob service, including properties for Storage Analytics and
// CORS (Cross-Origin Resource Sharing) rules. // CORS (Cross-Origin Resource Sharing) rules.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ServiceClientGetPropertiesOptions contains the optional parameters for the ServiceClient.GetProperties method. // - options - ServiceClientGetPropertiesOptions contains the optional parameters for the ServiceClient.GetProperties method.
func (client *ServiceClient) GetProperties(ctx context.Context, options *ServiceClientGetPropertiesOptions) (ServiceClientGetPropertiesResponse, error) { func (client *ServiceClient) GetProperties(ctx context.Context, options *ServiceClientGetPropertiesOptions) (ServiceClientGetPropertiesResponse, error) {
req, err := client.getPropertiesCreateRequest(ctx, options) req, err := client.getPropertiesCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -245,8 +247,9 @@ func (client *ServiceClient) getPropertiesHandleResponse(resp *http.Response) (S
// GetStatistics - Retrieves statistics related to replication for the Blob service. It is only available on the secondary // GetStatistics - Retrieves statistics related to replication for the Blob service. It is only available on the secondary
// location endpoint when read-access geo-redundant replication is enabled for the storage account. // location endpoint when read-access geo-redundant replication is enabled for the storage account.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ServiceClientGetStatisticsOptions contains the optional parameters for the ServiceClient.GetStatistics method. // - options - ServiceClientGetStatisticsOptions contains the optional parameters for the ServiceClient.GetStatistics method.
func (client *ServiceClient) GetStatistics(ctx context.Context, options *ServiceClientGetStatisticsOptions) (ServiceClientGetStatisticsResponse, error) { func (client *ServiceClient) GetStatistics(ctx context.Context, options *ServiceClientGetStatisticsOptions) (ServiceClientGetStatisticsResponse, error) {
req, err := client.getStatisticsCreateRequest(ctx, options) req, err := client.getStatisticsCreateRequest(ctx, options)
if err != nil { if err != nil {
@ -311,10 +314,11 @@ func (client *ServiceClient) getStatisticsHandleResponse(resp *http.Response) (S
// GetUserDelegationKey - Retrieves a user delegation key for the Blob service. This is only a valid operation when using // GetUserDelegationKey - Retrieves a user delegation key for the Blob service. This is only a valid operation when using
// bearer token authentication. // bearer token authentication.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// keyInfo - Key information // - keyInfo - Key information
// options - ServiceClientGetUserDelegationKeyOptions contains the optional parameters for the ServiceClient.GetUserDelegationKey // - options - ServiceClientGetUserDelegationKeyOptions contains the optional parameters for the ServiceClient.GetUserDelegationKey
// method. // method.
func (client *ServiceClient) GetUserDelegationKey(ctx context.Context, keyInfo KeyInfo, options *ServiceClientGetUserDelegationKeyOptions) (ServiceClientGetUserDelegationKeyResponse, error) { func (client *ServiceClient) GetUserDelegationKey(ctx context.Context, keyInfo KeyInfo, options *ServiceClientGetUserDelegationKeyOptions) (ServiceClientGetUserDelegationKeyResponse, error) {
req, err := client.getUserDelegationKeyCreateRequest(ctx, keyInfo, options) req, err := client.getUserDelegationKeyCreateRequest(ctx, keyInfo, options)
if err != nil { if err != nil {
@ -378,10 +382,11 @@ func (client *ServiceClient) getUserDelegationKeyHandleResponse(resp *http.Respo
// NewListContainersSegmentPager - The List Containers Segment operation returns a list of the containers under the specified // NewListContainersSegmentPager - The List Containers Segment operation returns a list of the containers under the specified
// account // account
// If the operation fails it returns an *azcore.ResponseError type. //
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// options - ServiceClientListContainersSegmentOptions contains the optional parameters for the ServiceClient.ListContainersSegment // - options - ServiceClientListContainersSegmentOptions contains the optional parameters for the ServiceClient.NewListContainersSegmentPager
// method. // method.
//
// listContainersSegmentCreateRequest creates the ListContainersSegment request. // listContainersSegmentCreateRequest creates the ListContainersSegment request.
func (client *ServiceClient) ListContainersSegmentCreateRequest(ctx context.Context, options *ServiceClientListContainersSegmentOptions) (*policy.Request, error) { func (client *ServiceClient) ListContainersSegmentCreateRequest(ctx context.Context, options *ServiceClientListContainersSegmentOptions) (*policy.Request, error) {
req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint) req, err := runtime.NewRequest(ctx, http.MethodGet, client.endpoint)
@ -435,9 +440,10 @@ func (client *ServiceClient) ListContainersSegmentHandleResponse(resp *http.Resp
// SetProperties - Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics // SetProperties - Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics
// and CORS (Cross-Origin Resource Sharing) rules // and CORS (Cross-Origin Resource Sharing) rules
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// storageServiceProperties - The StorageService properties. // - storageServiceProperties - The StorageService properties.
// options - ServiceClientSetPropertiesOptions contains the optional parameters for the ServiceClient.SetProperties method. // - options - ServiceClientSetPropertiesOptions contains the optional parameters for the ServiceClient.SetProperties method.
func (client *ServiceClient) SetProperties(ctx context.Context, storageServiceProperties StorageServiceProperties, options *ServiceClientSetPropertiesOptions) (ServiceClientSetPropertiesResponse, error) { func (client *ServiceClient) SetProperties(ctx context.Context, storageServiceProperties StorageServiceProperties, options *ServiceClientSetPropertiesOptions) (ServiceClientSetPropertiesResponse, error) {
req, err := client.setPropertiesCreateRequest(ctx, storageServiceProperties, options) req, err := client.setPropertiesCreateRequest(ctx, storageServiceProperties, options)
if err != nil { if err != nil {
@ -491,12 +497,13 @@ func (client *ServiceClient) setPropertiesHandleResponse(resp *http.Response) (S
// SubmitBatch - The Batch operation allows multiple API calls to be embedded into a single HTTP request. // SubmitBatch - The Batch operation allows multiple API calls to be embedded into a single HTTP request.
// If the operation fails it returns an *azcore.ResponseError type. // If the operation fails it returns an *azcore.ResponseError type.
//
// Generated from API version 2020-10-02 // Generated from API version 2020-10-02
// contentLength - The length of the request. // - contentLength - The length of the request.
// multipartContentType - Required. The value of this header must be multipart/mixed with a batch boundary. Example header // - multipartContentType - Required. The value of this header must be multipart/mixed with a batch boundary. Example header
// value: multipart/mixed; boundary=batch_ // value: multipart/mixed; boundary=batch_
// body - Initial data // - body - Initial data
// options - ServiceClientSubmitBatchOptions contains the optional parameters for the ServiceClient.SubmitBatch method. // - options - ServiceClientSubmitBatchOptions contains the optional parameters for the ServiceClient.SubmitBatch method.
func (client *ServiceClient) SubmitBatch(ctx context.Context, contentLength int64, multipartContentType string, body io.ReadSeekCloser, options *ServiceClientSubmitBatchOptions) (ServiceClientSubmitBatchResponse, error) { func (client *ServiceClient) SubmitBatch(ctx context.Context, contentLength int64, multipartContentType string, body io.ReadSeekCloser, options *ServiceClientSubmitBatchOptions) (ServiceClientSubmitBatchResponse, error) {
req, err := client.submitBatchCreateRequest(ctx, contentLength, multipartContentType, body, options) req, err := client.submitBatchCreateRequest(ctx, contentLength, multipartContentType, body, options)
if err != nil { if err != nil {

View file

@ -0,0 +1,11 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package azblob
import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported"
const (
// EventUpload is used for logging events related to upload operation.
EventUpload = exported.EventUpload
)

View file

@ -50,11 +50,11 @@ type DownloadBufferOptions = blob.DownloadBufferOptions
// DownloadFileOptions identifies options used by the DownloadBuffer and DownloadFile functions. // DownloadFileOptions identifies options used by the DownloadBuffer and DownloadFile functions.
type DownloadFileOptions = blob.DownloadFileOptions type DownloadFileOptions = blob.DownloadFileOptions
// CpkInfo contains a group of parameters for client provided encryption key. // CPKInfo contains a group of parameters for client provided encryption key.
type CpkInfo = blob.CpkInfo type CPKInfo = blob.CPKInfo
// CpkScopeInfo contains a group of parameters for the ContainerClient.Create method. // CPKScopeInfo contains a group of parameters for the ContainerClient.Create method.
type CpkScopeInfo = container.CpkScopeInfo type CPKScopeInfo = container.CPKScopeInfo
// AccessConditions identifies blob-specific access conditions which you optionally set. // AccessConditions identifies blob-specific access conditions which you optionally set.
type AccessConditions = exported.BlobAccessConditions type AccessConditions = exported.BlobAccessConditions

View file

@ -150,14 +150,18 @@ func (pb *Client) Create(ctx context.Context, size int64, o *CreateOptions) (Cre
// This method panics if the stream is not at position 0. // This method panics if the stream is not at position 0.
// Note that the http client closes the body stream after the request is sent to the service. // Note that the http client closes the body stream after the request is sent to the service.
// For more information, see https://docs.microsoft.com/rest/api/storageservices/put-page. // For more information, see https://docs.microsoft.com/rest/api/storageservices/put-page.
func (pb *Client) UploadPages(ctx context.Context, body io.ReadSeekCloser, options *UploadPagesOptions) (UploadPagesResponse, error) { func (pb *Client) UploadPages(ctx context.Context, body io.ReadSeekCloser, contentRange blob.HTTPRange, options *UploadPagesOptions) (UploadPagesResponse, error) {
count, err := shared.ValidateSeekableStreamAt0AndGetCount(body) count, err := shared.ValidateSeekableStreamAt0AndGetCount(body)
if err != nil { if err != nil {
return UploadPagesResponse{}, err return UploadPagesResponse{}, err
} }
uploadPagesOptions, leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions := options.format() uploadPagesOptions := &generated.PageBlobClientUploadPagesOptions{
Range: exported.FormatHTTPRange(contentRange),
}
leaseAccessConditions, cpkInfo, cpkScopeInfo, sequenceNumberAccessConditions, modifiedAccessConditions := options.format()
if options != nil && options.TransactionalValidation != nil { if options != nil && options.TransactionalValidation != nil {
body, err = options.TransactionalValidation.Apply(body, uploadPagesOptions) body, err = options.TransactionalValidation.Apply(body, uploadPagesOptions)
@ -345,7 +349,7 @@ func (pb *Client) SetLegalHold(ctx context.Context, legalHold bool, options *blo
// SetTier operation sets the tier on a blob. The operation is allowed on a page // SetTier operation sets the tier on a blob. The operation is allowed on a page
// blob in a premium storage account and on a block blob in a blob storage account (locally // blob in a premium storage account and on a block blob in a blob storage account (locally
// redundant storage only). A premium page blob's tier determines the allowed size, IOPS, and // redundant storage only). A premium page blob's tier determines the allowed size, IOPs, and
// bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation // bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation
// does not update the blob's ETag. // does not update the blob's ETag.
// For detailed information about block blob level tier-ing see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers. // For detailed information about block blob level tier-ing see https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers.
@ -367,7 +371,7 @@ func (pb *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeade
// SetMetadata changes a blob's metadata. // SetMetadata changes a blob's metadata.
// https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata. // https://docs.microsoft.com/rest/api/storageservices/set-blob-metadata.
func (pb *Client) SetMetadata(ctx context.Context, metadata map[string]string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) { func (pb *Client) SetMetadata(ctx context.Context, metadata map[string]*string, o *blob.SetMetadataOptions) (blob.SetMetadataResponse, error) {
return pb.BlobClient().SetMetadata(ctx, metadata, o) return pb.BlobClient().SetMetadata(ctx, metadata, o)
} }

View file

@ -28,7 +28,7 @@ func PossibleCopyStatusTypeValues() []CopyStatusType {
return generated.PossibleCopyStatusTypeValues() return generated.PossibleCopyStatusTypeValues()
} }
// PremiumPageBlobAccessTier defines values for Premium PageBlob's AccessTier // PremiumPageBlobAccessTier defines values for Premium PageBlob's AccessTier.
type PremiumPageBlobAccessTier = generated.PremiumPageBlobAccessTier type PremiumPageBlobAccessTier = generated.PremiumPageBlobAccessTier
const ( const (
@ -50,7 +50,7 @@ func PossiblePremiumPageBlobAccessTierValues() []PremiumPageBlobAccessTier {
return generated.PossiblePremiumPageBlobAccessTierValues() return generated.PossiblePremiumPageBlobAccessTierValues()
} }
// SequenceNumberActionType defines values for SequenceNumberActionType // SequenceNumberActionType defines values for SequenceNumberActionType.
type SequenceNumberActionType = generated.SequenceNumberActionType type SequenceNumberActionType = generated.SequenceNumberActionType
const ( const (

View file

@ -18,7 +18,7 @@ import (
// Type Declarations --------------------------------------------------------------------- // Type Declarations ---------------------------------------------------------------------
// PageList - the list of pages // PageList - the list of pages.
type PageList = generated.PageList type PageList = generated.PageList
// ClearRange defines a range of pages. // ClearRange defines a range of pages.
@ -46,16 +46,16 @@ type CreateOptions struct {
// are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source // are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source
// blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. // blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers.
// See Naming and Referencing Containers, Blobs, and Metadata for more information. // See Naming and Referencing Containers, Blobs, and Metadata for more information.
Metadata map[string]string Metadata map[string]*string
// Optional. Indicates the tier to be set on the page blob. // Optional. Indicates the tier to be set on the page blob.
Tier *PremiumPageBlobAccessTier Tier *PremiumPageBlobAccessTier
HTTPHeaders *blob.HTTPHeaders HTTPHeaders *blob.HTTPHeaders
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
// Specifies the date time when the blobs immutability policy is set to expire. // Specifies the date time when the blobs immutability policy is set to expire.
@ -67,7 +67,7 @@ type CreateOptions struct {
} }
func (o *CreateOptions) format() (*generated.PageBlobClientCreateOptions, *generated.BlobHTTPHeaders, func (o *CreateOptions) format() (*generated.PageBlobClientCreateOptions, *generated.BlobHTTPHeaders,
*generated.LeaseAccessConditions, *generated.CpkInfo, *generated.CpkScopeInfo, *generated.ModifiedAccessConditions) { *generated.LeaseAccessConditions, *generated.CPKInfo, *generated.CPKScopeInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil
} }
@ -79,38 +79,31 @@ func (o *CreateOptions) format() (*generated.PageBlobClientCreateOptions, *gener
Tier: o.Tier, Tier: o.Tier,
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return options, o.HTTPHeaders, leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions return options, o.HTTPHeaders, leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// UploadPagesOptions contains the optional parameters for the Client.UploadPages method. // UploadPagesOptions contains the optional parameters for the Client.UploadPages method.
type UploadPagesOptions struct { type UploadPagesOptions struct {
// Range specifies a range of bytes. The default value is all bytes.
Range blob.HTTPRange
// TransactionalValidation specifies the transfer validation type to use. // TransactionalValidation specifies the transfer validation type to use.
// The default is nil (no transfer validation). // The default is nil (no transfer validation).
TransactionalValidation blob.TransferValidationType TransactionalValidation blob.TransferValidationType
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
SequenceNumberAccessConditions *SequenceNumberAccessConditions SequenceNumberAccessConditions *SequenceNumberAccessConditions
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
} }
func (o *UploadPagesOptions) format() (*generated.PageBlobClientUploadPagesOptions, *generated.LeaseAccessConditions, func (o *UploadPagesOptions) format() (*generated.LeaseAccessConditions,
*generated.CpkInfo, *generated.CpkScopeInfo, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions) { *generated.CPKInfo, *generated.CPKScopeInfo, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil
}
options := &generated.PageBlobClientUploadPagesOptions{
Range: exported.FormatHTTPRange(o.Range),
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return options, leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, o.SequenceNumberAccessConditions, modifiedAccessConditions return leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, o.SequenceNumberAccessConditions, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -123,9 +116,9 @@ type UploadPagesFromURLOptions struct {
// SourceContentValidation contains the validation mechanism used on the range of bytes read from the source. // SourceContentValidation contains the validation mechanism used on the range of bytes read from the source.
SourceContentValidation blob.SourceContentValidationType SourceContentValidation blob.SourceContentValidationType
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
SequenceNumberAccessConditions *SequenceNumberAccessConditions SequenceNumberAccessConditions *SequenceNumberAccessConditions
@ -134,7 +127,7 @@ type UploadPagesFromURLOptions struct {
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
} }
func (o *UploadPagesFromURLOptions) format() (*generated.PageBlobClientUploadPagesFromURLOptions, *generated.CpkInfo, *generated.CpkScopeInfo, func (o *UploadPagesFromURLOptions) format() (*generated.PageBlobClientUploadPagesFromURLOptions, *generated.CPKInfo, *generated.CPKScopeInfo,
*generated.LeaseAccessConditions, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions, *generated.SourceModifiedAccessConditions) { *generated.LeaseAccessConditions, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions, *generated.SourceModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil, nil, nil return nil, nil, nil, nil, nil, nil, nil
@ -149,27 +142,27 @@ func (o *UploadPagesFromURLOptions) format() (*generated.PageBlobClientUploadPag
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return options, o.CpkInfo, o.CpkScopeInfo, leaseAccessConditions, o.SequenceNumberAccessConditions, modifiedAccessConditions, o.SourceModifiedAccessConditions return options, o.CPKInfo, o.CPKScopeInfo, leaseAccessConditions, o.SequenceNumberAccessConditions, modifiedAccessConditions, o.SourceModifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// ClearPagesOptions contains the optional parameters for the Client.ClearPages operation // ClearPagesOptions contains the optional parameters for the Client.ClearPages operation
type ClearPagesOptions struct { type ClearPagesOptions struct {
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
SequenceNumberAccessConditions *SequenceNumberAccessConditions SequenceNumberAccessConditions *SequenceNumberAccessConditions
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
} }
func (o *ClearPagesOptions) format() (*generated.LeaseAccessConditions, *generated.CpkInfo, func (o *ClearPagesOptions) format() (*generated.LeaseAccessConditions, *generated.CPKInfo,
*generated.CpkScopeInfo, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions) { *generated.CPKScopeInfo, *generated.SequenceNumberAccessConditions, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil return nil, nil, nil, nil, nil
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, o.SequenceNumberAccessConditions, modifiedAccessConditions return leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, o.SequenceNumberAccessConditions, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -177,20 +170,20 @@ func (o *ClearPagesOptions) format() (*generated.LeaseAccessConditions, *generat
// GetPageRangesOptions contains the optional parameters for the Client.NewGetPageRangesPager method. // GetPageRangesOptions contains the optional parameters for the Client.NewGetPageRangesPager method.
type GetPageRangesOptions struct { type GetPageRangesOptions struct {
Marker *string Marker *string
// Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value // Specifies the maximum number of containers to return. If the request does not specify MaxResults, or specifies a value
// greater than 5000, the server will return up to 5000 items. Note that if the // greater than 5000, the server will return up to 5000 items. Note that if the
// listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder // listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder
// of the results. For this reason, it is possible that the service will // of the results. For this reason, it is possible that the service will
// return fewer results than specified by maxresults, or than the default of 5000. // return fewer results than specified by MaxResults, or than the default of 5000.
MaxResults *int32 MaxResults *int32
// Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot // Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot
// of the target blob. The response will only contain pages that were changed // of the target blob. The response will only contain pages that were changed
// between the target blob and its previous snapshot. // between the target blob and its previous snapshot.
PrevSnapshotURL *string PrevSnapshotURL *string
// Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response // Optional in version 2015-07-08 and newer. The PrevSnapshot parameter is a DateTime value that specifies that the response
// will contain only pages that were changed between target blob and previous // will contain only pages that were changed between target blob and previous
// snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot // snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot
// specified by prevsnapshot is the older of the two. Note that incremental // specified by PrevSnapshot is the older of the two. Note that incremental
// snapshots are currently supported only for blobs created on or after January 1, 2016. // snapshots are currently supported only for blobs created on or after January 1, 2016.
PrevSnapshot *string PrevSnapshot *string
// Range specifies a range of bytes. The default value is all bytes. // Range specifies a range of bytes. The default value is all bytes.
@ -227,20 +220,20 @@ type GetPageRangesDiffOptions struct {
// as the value for the marker parameter in a subsequent call to request the next // as the value for the marker parameter in a subsequent call to request the next
// page of list items. The marker value is opaque to the client. // page of list items. The marker value is opaque to the client.
Marker *string Marker *string
// Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value // Specifies the maximum number of containers to return. If the request does not specify MaxResults, or specifies a value
// greater than 5000, the server will return up to 5000 items. Note that if the // greater than 5000, the server will return up to 5000 items. Note that if the
// listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder // listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder
// of the results. For this reason, it is possible that the service will // of the results. For this reason, it is possible that the service will
// return fewer results than specified by maxresults, or than the default of 5000. // return fewer results than specified by MaxResults, or than the default of 5000.
MaxResults *int32 MaxResults *int32
// Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot // Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot
// of the target blob. The response will only contain pages that were changed // of the target blob. The response will only contain pages that were changed
// between the target blob and its previous snapshot. // between the target blob and its previous snapshot.
PrevSnapshotURL *string PrevSnapshotURL *string
// Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response // Optional in version 2015-07-08 and newer. The PrevSnapshot parameter is a DateTime value that specifies that the response
// will contain only pages that were changed between target blob and previous // will contain only pages that were changed between target blob and previous
// snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot // snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot
// specified by prevsnapshot is the older of the two. Note that incremental // specified by PrevSnapshot is the older of the two. Note that incremental
// snapshots are currently supported only for blobs created on or after January 1, 2016. // snapshots are currently supported only for blobs created on or after January 1, 2016.
PrevSnapshot *string PrevSnapshot *string
// Range specifies a range of bytes. The default value is all bytes. // Range specifies a range of bytes. The default value is all bytes.
@ -275,19 +268,19 @@ func (o *GetPageRangesDiffOptions) format() (*generated.PageBlobClientGetPageRan
// ResizeOptions contains the optional parameters for the Client.Resize method. // ResizeOptions contains the optional parameters for the Client.Resize method.
type ResizeOptions struct { type ResizeOptions struct {
CpkInfo *blob.CpkInfo CPKInfo *blob.CPKInfo
CpkScopeInfo *blob.CpkScopeInfo CPKScopeInfo *blob.CPKScopeInfo
AccessConditions *blob.AccessConditions AccessConditions *blob.AccessConditions
} }
func (o *ResizeOptions) format() (*generated.PageBlobClientResizeOptions, *generated.LeaseAccessConditions, func (o *ResizeOptions) format() (*generated.PageBlobClientResizeOptions, *generated.LeaseAccessConditions,
*generated.CpkInfo, *generated.CpkScopeInfo, *generated.ModifiedAccessConditions) { *generated.CPKInfo, *generated.CPKScopeInfo, *generated.ModifiedAccessConditions) {
if o == nil { if o == nil {
return nil, nil, nil, nil, nil return nil, nil, nil, nil, nil
} }
leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions) leaseAccessConditions, modifiedAccessConditions := exported.FormatBlobAccessConditions(o.AccessConditions)
return nil, leaseAccessConditions, o.CpkInfo, o.CpkScopeInfo, modifiedAccessConditions return nil, leaseAccessConditions, o.CPKInfo, o.CPKScopeInfo, modifiedAccessConditions
} }
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------

View file

@ -31,7 +31,6 @@ type AccountSignatureValues struct {
ExpiryTime time.Time `param:"se"` // Not specified if IsZero ExpiryTime time.Time `param:"se"` // Not specified if IsZero
Permissions string `param:"sp"` // Create by initializing a AccountSASPermissions and then call String() Permissions string `param:"sp"` // Create by initializing a AccountSASPermissions and then call String()
IPRange IPRange `param:"sip"` IPRange IPRange `param:"sip"`
Services string `param:"ss"` // Create by initializing AccountSASServices and then call String()
ResourceTypes string `param:"srt"` // Create by initializing AccountSASResourceTypes and then call String() ResourceTypes string `param:"srt"` // Create by initializing AccountSASResourceTypes and then call String()
} }
@ -39,7 +38,7 @@ type AccountSignatureValues struct {
// the proper SAS query parameters. // the proper SAS query parameters.
func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKeyCredential) (QueryParameters, error) { func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKeyCredential) (QueryParameters, error) {
// https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-an-Account-SAS // https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-an-Account-SAS
if v.ExpiryTime.IsZero() || v.Permissions == "" || v.ResourceTypes == "" || v.Services == "" { if v.ExpiryTime.IsZero() || v.Permissions == "" || v.ResourceTypes == "" {
return QueryParameters{}, errors.New("account SAS is missing at least one of these: ExpiryTime, Permissions, Service, or ResourceType") return QueryParameters{}, errors.New("account SAS is missing at least one of these: ExpiryTime, Permissions, Service, or ResourceType")
} }
if v.Version == "" { if v.Version == "" {
@ -56,7 +55,7 @@ func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKey
stringToSign := strings.Join([]string{ stringToSign := strings.Join([]string{
sharedKeyCredential.AccountName(), sharedKeyCredential.AccountName(),
v.Permissions, v.Permissions,
v.Services, "b", // blob service
v.ResourceTypes, v.ResourceTypes,
startTime, startTime,
expiryTime, expiryTime,
@ -80,7 +79,7 @@ func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKey
ipRange: v.IPRange, ipRange: v.IPRange,
// Account-specific SAS parameters // Account-specific SAS parameters
services: v.Services, services: "b", // will always be "b"
resourceTypes: v.ResourceTypes, resourceTypes: v.ResourceTypes,
// Calculated SAS signature // Calculated SAS signature
@ -91,13 +90,13 @@ func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKey
} }
// AccountPermissions type simplifies creating the permissions string for an Azure Storage Account SAS. // AccountPermissions type simplifies creating the permissions string for an Azure Storage Account SAS.
// Initialize an instance of this type and then call its String method to set AccountSASSignatureValues's Permissions field. // Initialize an instance of this type and then call Client.GetSASURL with it or use the String method to set AccountSASSignatureValues Permissions field.
type AccountPermissions struct { type AccountPermissions struct {
Read, Write, Delete, DeletePreviousVersion, List, Add, Create, Update, Process, Tag, FilterByTags, PermanentDelete bool Read, Write, Delete, DeletePreviousVersion, PermanentDelete, List, Add, Create, Update, Process, FilterByTags, Tag, SetImmutabilityPolicy bool
} }
// String produces the SAS permissions string for an Azure Storage account. // String produces the SAS permissions string for an Azure Storage account.
// Call this method to set AccountSASSignatureValues's Permissions field. // Call this method to set AccountSASSignatureValues' Permissions field.
func (p *AccountPermissions) String() string { func (p *AccountPermissions) String() string {
var buffer bytes.Buffer var buffer bytes.Buffer
if p.Read { if p.Read {
@ -130,11 +129,14 @@ func (p *AccountPermissions) String() string {
if p.Process { if p.Process {
buffer.WriteRune('p') buffer.WriteRune('p')
} }
if p.FilterByTags {
buffer.WriteRune('f')
}
if p.Tag { if p.Tag {
buffer.WriteRune('t') buffer.WriteRune('t')
} }
if p.FilterByTags { if p.SetImmutabilityPolicy {
buffer.WriteRune('f') buffer.WriteRune('i')
} }
return buffer.String() return buffer.String()
} }
@ -150,6 +152,8 @@ func parseAccountPermissions(s string) (AccountPermissions, error) {
p.Write = true p.Write = true
case 'd': case 'd':
p.Delete = true p.Delete = true
case 'x':
p.DeletePreviousVersion = true
case 'y': case 'y':
p.PermanentDelete = true p.PermanentDelete = true
case 'l': case 'l':
@ -162,12 +166,12 @@ func parseAccountPermissions(s string) (AccountPermissions, error) {
p.Update = true p.Update = true
case 'p': case 'p':
p.Process = true p.Process = true
case 'x':
p.Process = true
case 't': case 't':
p.Tag = true p.Tag = true
case 'f': case 'f':
p.FilterByTags = true p.FilterByTags = true
case 'i':
p.SetImmutabilityPolicy = true
default: default:
return AccountPermissions{}, fmt.Errorf("invalid permission character: '%v'", r) return AccountPermissions{}, fmt.Errorf("invalid permission character: '%v'", r)
} }
@ -175,54 +179,14 @@ func parseAccountPermissions(s string) (AccountPermissions, error) {
return p, nil return p, nil
} }
// AccountServices type simplifies creating the services string for an Azure Storage Account SAS.
// Initialize an instance of this type and then call its String method to set AccountSASSignatureValues's Services field.
type AccountServices struct {
Blob, Queue, File bool
}
// String produces the SAS services string for an Azure Storage account.
// Call this method to set AccountSASSignatureValues's Services field.
func (s *AccountServices) String() string {
var buffer bytes.Buffer
if s.Blob {
buffer.WriteRune('b')
}
if s.Queue {
buffer.WriteRune('q')
}
if s.File {
buffer.WriteRune('f')
}
return buffer.String()
}
// Parse initializes the AccountSASServices' fields from a string.
/*func parseAccountServices(str string) (AccountServices, error) {
s := AccountServices{} // Clear out the flags
for _, r := range str {
switch r {
case 'b':
s.Blob = true
case 'q':
s.Queue = true
case 'f':
s.File = true
default:
return AccountServices{}, fmt.Errorf("invalid service character: '%v'", r)
}
}
return s, nil
}*/
// AccountResourceTypes type simplifies creating the resource types string for an Azure Storage Account SAS. // AccountResourceTypes type simplifies creating the resource types string for an Azure Storage Account SAS.
// Initialize an instance of this type and then call its String method to set AccountSASSignatureValues's ResourceTypes field. // Initialize an instance of this type and then call its String method to set AccountSASSignatureValues' ResourceTypes field.
type AccountResourceTypes struct { type AccountResourceTypes struct {
Service, Container, Object bool Service, Container, Object bool
} }
// String produces the SAS resource types string for an Azure Storage account. // String produces the SAS resource types string for an Azure Storage account.
// Call this method to set AccountSASSignatureValues's ResourceTypes field. // Call this method to set AccountSASSignatureValues' ResourceTypes field.
func (rt *AccountResourceTypes) String() string { func (rt *AccountResourceTypes) String() string {
var buffer bytes.Buffer var buffer bytes.Buffer
if rt.Service { if rt.Service {
@ -236,21 +200,3 @@ func (rt *AccountResourceTypes) String() string {
} }
return buffer.String() return buffer.String()
} }
// Parse initializes the AccountResourceTypes's fields from a string.
/*func parseAccountResourceTypes(s string) (AccountResourceTypes, error) {
rt := AccountResourceTypes{} // Clear out the flags
for _, r := range s {
switch r {
case 's':
rt.Service = true
case 'c':
rt.Container = true
case 'o':
rt.Object = true
default:
return AccountResourceTypes{}, fmt.Errorf("invalid resource type: '%v'", r)
}
}
return rt, nil
}*/

View file

@ -34,10 +34,10 @@ var timeFormats = []string{"2006-01-02T15:04:05.0000000Z", TimeFormat, "2006-01-
type Protocol string type Protocol string
const ( const (
// ProtocolHTTPS can be specified for a SAS protocol // ProtocolHTTPS can be specified for a SAS protocol.
ProtocolHTTPS Protocol = "https" ProtocolHTTPS Protocol = "https"
// ProtocolHTTPSandHTTP can be specified for a SAS protocol // ProtocolHTTPSandHTTP can be specified for a SAS protocol.
ProtocolHTTPSandHTTP Protocol = "https,http" ProtocolHTTPSandHTTP Protocol = "https,http"
) )
@ -148,137 +148,137 @@ type QueryParameters struct {
seTimeFormat string seTimeFormat string
} }
// AuthorizedObjectID returns authorizedObjectID // AuthorizedObjectID returns authorizedObjectID.
func (p *QueryParameters) AuthorizedObjectID() string { func (p *QueryParameters) AuthorizedObjectID() string {
return p.authorizedObjectID return p.authorizedObjectID
} }
// UnauthorizedObjectID returns unauthorizedObjectID // UnauthorizedObjectID returns unauthorizedObjectID.
func (p *QueryParameters) UnauthorizedObjectID() string { func (p *QueryParameters) UnauthorizedObjectID() string {
return p.unauthorizedObjectID return p.unauthorizedObjectID
} }
// SignedCorrelationID returns signedCorrelationID // SignedCorrelationID returns signedCorrelationID.
func (p *QueryParameters) SignedCorrelationID() string { func (p *QueryParameters) SignedCorrelationID() string {
return p.correlationID return p.correlationID
} }
// SignedOID returns signedOID // SignedOID returns signedOID.
func (p *QueryParameters) SignedOID() string { func (p *QueryParameters) SignedOID() string {
return p.signedOID return p.signedOID
} }
// SignedTID returns signedTID // SignedTID returns signedTID.
func (p *QueryParameters) SignedTID() string { func (p *QueryParameters) SignedTID() string {
return p.signedTID return p.signedTID
} }
// SignedStart returns signedStart // SignedStart returns signedStart.
func (p *QueryParameters) SignedStart() time.Time { func (p *QueryParameters) SignedStart() time.Time {
return p.signedStart return p.signedStart
} }
// SignedExpiry returns signedExpiry // SignedExpiry returns signedExpiry.
func (p *QueryParameters) SignedExpiry() time.Time { func (p *QueryParameters) SignedExpiry() time.Time {
return p.signedExpiry return p.signedExpiry
} }
// SignedService returns signedService // SignedService returns signedService.
func (p *QueryParameters) SignedService() string { func (p *QueryParameters) SignedService() string {
return p.signedService return p.signedService
} }
// SignedVersion returns signedVersion // SignedVersion returns signedVersion.
func (p *QueryParameters) SignedVersion() string { func (p *QueryParameters) SignedVersion() string {
return p.signedVersion return p.signedVersion
} }
// SnapshotTime returns snapshotTime // SnapshotTime returns snapshotTime.
func (p *QueryParameters) SnapshotTime() time.Time { func (p *QueryParameters) SnapshotTime() time.Time {
return p.snapshotTime return p.snapshotTime
} }
// Version returns version // Version returns version.
func (p *QueryParameters) Version() string { func (p *QueryParameters) Version() string {
return p.version return p.version
} }
// Services returns services // Services returns services.
func (p *QueryParameters) Services() string { func (p *QueryParameters) Services() string {
return p.services return p.services
} }
// ResourceTypes returns resourceTypes // ResourceTypes returns resourceTypes.
func (p *QueryParameters) ResourceTypes() string { func (p *QueryParameters) ResourceTypes() string {
return p.resourceTypes return p.resourceTypes
} }
// Protocol returns protocol // Protocol returns protocol.
func (p *QueryParameters) Protocol() Protocol { func (p *QueryParameters) Protocol() Protocol {
return p.protocol return p.protocol
} }
// StartTime returns startTime // StartTime returns startTime.
func (p *QueryParameters) StartTime() time.Time { func (p *QueryParameters) StartTime() time.Time {
return p.startTime return p.startTime
} }
// ExpiryTime returns expiryTime // ExpiryTime returns expiryTime.
func (p *QueryParameters) ExpiryTime() time.Time { func (p *QueryParameters) ExpiryTime() time.Time {
return p.expiryTime return p.expiryTime
} }
// IPRange returns ipRange // IPRange returns ipRange.
func (p *QueryParameters) IPRange() IPRange { func (p *QueryParameters) IPRange() IPRange {
return p.ipRange return p.ipRange
} }
// Identifier returns identifier // Identifier returns identifier.
func (p *QueryParameters) Identifier() string { func (p *QueryParameters) Identifier() string {
return p.identifier return p.identifier
} }
// Resource returns resource // Resource returns resource.
func (p *QueryParameters) Resource() string { func (p *QueryParameters) Resource() string {
return p.resource return p.resource
} }
// Permissions returns permissions // Permissions returns permissions.
func (p *QueryParameters) Permissions() string { func (p *QueryParameters) Permissions() string {
return p.permissions return p.permissions
} }
// Signature returns signature // Signature returns signature.
func (p *QueryParameters) Signature() string { func (p *QueryParameters) Signature() string {
return p.signature return p.signature
} }
// CacheControl returns cacheControl // CacheControl returns cacheControl.
func (p *QueryParameters) CacheControl() string { func (p *QueryParameters) CacheControl() string {
return p.cacheControl return p.cacheControl
} }
// ContentDisposition returns contentDisposition // ContentDisposition returns contentDisposition.
func (p *QueryParameters) ContentDisposition() string { func (p *QueryParameters) ContentDisposition() string {
return p.contentDisposition return p.contentDisposition
} }
// ContentEncoding returns contentEncoding // ContentEncoding returns contentEncoding.
func (p *QueryParameters) ContentEncoding() string { func (p *QueryParameters) ContentEncoding() string {
return p.contentEncoding return p.contentEncoding
} }
// ContentLanguage returns contentLanguage // ContentLanguage returns contentLanguage.
func (p *QueryParameters) ContentLanguage() string { func (p *QueryParameters) ContentLanguage() string {
return p.contentLanguage return p.contentLanguage
} }
// ContentType returns sontentType // ContentType returns contentType.
func (p *QueryParameters) ContentType() string { func (p *QueryParameters) ContentType() string {
return p.contentType return p.contentType
} }
// SignedDirectoryDepth returns signedDirectoryDepth // SignedDirectoryDepth returns signedDirectoryDepth.
func (p *QueryParameters) SignedDirectoryDepth() string { func (p *QueryParameters) SignedDirectoryDepth() string {
return p.signedDirectoryDepth return p.signedDirectoryDepth
} }

View file

@ -141,13 +141,7 @@ func (v BlobSignatureValues) SignWithUserDelegation(userDelegationCredential *Us
return QueryParameters{}, fmt.Errorf("cannot sign SAS query without User Delegation Key") return QueryParameters{}, fmt.Errorf("cannot sign SAS query without User Delegation Key")
} }
//Make sure the permission characters are in the correct order // Parse the resource
perms, err := parseBlobPermissions(v.Permissions)
if err != nil {
return QueryParameters{}, err
}
v.Permissions = perms.String()
resource := "c" resource := "c"
if !v.SnapshotTime.IsZero() { if !v.SnapshotTime.IsZero() {
resource = "bs" resource = "bs"
@ -161,6 +155,20 @@ func (v BlobSignatureValues) SignWithUserDelegation(userDelegationCredential *Us
} else { } else {
resource = "b" resource = "b"
} }
// make sure the permission characters are in the correct order
if resource == "c" {
perms, err := parseContainerPermissions(v.Permissions)
if err != nil {
return QueryParameters{}, err
}
v.Permissions = perms.String()
} else {
perms, err := parseBlobPermissions(v.Permissions)
if err != nil {
return QueryParameters{}, err
}
v.Permissions = perms.String()
}
if v.Version == "" { if v.Version == "" {
v.Version = Version v.Version = Version
@ -253,15 +261,15 @@ func getCanonicalName(account string, containerName string, blobName string, dir
} }
// ContainerPermissions type simplifies creating the permissions string for an Azure Storage container SAS. // ContainerPermissions type simplifies creating the permissions string for an Azure Storage container SAS.
// Initialize an instance of this type and then call its String method to set BlobSASSignatureValues's Permissions field. // Initialize an instance of this type and then call Client.GetSASURL with it or use the String method to set BlobSASSignatureValues Permissions field.
// All permissions descriptions can be found here: https://docs.microsoft.com/en-us/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob // All permissions descriptions can be found here: https://docs.microsoft.com/en-us/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob
type ContainerPermissions struct { type ContainerPermissions struct {
Read, Add, Create, Write, Delete, DeletePreviousVersion, List, FilterByTags bool Read, Add, Create, Write, Delete, DeletePreviousVersion, List, FilterByTags, Move, SetImmutabilityPolicy bool
Execute, ModifyOwnership, ModifyPermissions, SetImmutabilityPolicy bool // Hierarchical Namespace only Execute, ModifyOwnership, ModifyPermissions bool // Meant for hierarchical namespace accounts
} }
// String produces the SAS permissions string for an Azure Storage container. // String produces the SAS permissions string for an Azure Storage container.
// Call this method to set BlobSASSignatureValues's Permissions field. // Call this method to set BlobSASSignatureValues' Permissions field.
func (p *ContainerPermissions) String() string { func (p *ContainerPermissions) String() string {
var b bytes.Buffer var b bytes.Buffer
if p.Read { if p.Read {
@ -288,6 +296,9 @@ func (p *ContainerPermissions) String() string {
if p.FilterByTags { if p.FilterByTags {
b.WriteRune('f') b.WriteRune('f')
} }
if p.Move {
b.WriteRune('m')
}
if p.Execute { if p.Execute {
b.WriteRune('e') b.WriteRune('e')
} }
@ -303,8 +314,8 @@ func (p *ContainerPermissions) String() string {
return b.String() return b.String()
} }
// Parse initializes the ContainerSASPermissions' fields from a string. // Parse initializes ContainerPermissions' fields from a string.
/*func parseContainerPermissions(s string) (ContainerPermissions, error) { func parseContainerPermissions(s string) (ContainerPermissions, error) {
p := ContainerPermissions{} // Clear the flags p := ContainerPermissions{} // Clear the flags
for _, r := range s { for _, r := range s {
switch r { switch r {
@ -322,29 +333,33 @@ func (p *ContainerPermissions) String() string {
p.DeletePreviousVersion = true p.DeletePreviousVersion = true
case 'l': case 'l':
p.List = true p.List = true
case 't': case 'f':
p.FilterByTags = true p.FilterByTags = true
case 'm':
p.Move = true
case 'e': case 'e':
p.Execute = true p.Execute = true
case 'o': case 'o':
p.ModifyOwnership = true p.ModifyOwnership = true
case 'p': case 'p':
p.ModifyPermissions = true p.ModifyPermissions = true
case 'i':
p.SetImmutabilityPolicy = true
default: default:
return ContainerPermissions{}, fmt.Errorf("invalid permission: '%v'", r) return ContainerPermissions{}, fmt.Errorf("invalid permission: '%v'", r)
} }
} }
return p, nil return p, nil
}*/ }
// BlobPermissions type simplifies creating the permissions string for an Azure Storage blob SAS. // BlobPermissions type simplifies creating the permissions string for an Azure Storage blob SAS.
// Initialize an instance of this type and then call its String method to set BlobSASSignatureValues's Permissions field. // Initialize an instance of this type and then call Client.GetSASURL with it or use the String method to set BlobSASSignatureValues Permissions field.
type BlobPermissions struct { type BlobPermissions struct {
Read, Add, Create, Write, Delete, DeletePreviousVersion, Tag, List, Move, Execute, Ownership, Permissions, PermanentDelete bool Read, Add, Create, Write, Delete, DeletePreviousVersion, PermanentDelete, List, Tag, Move, Execute, Ownership, Permissions, SetImmutabilityPolicy bool
} }
// String produces the SAS permissions string for an Azure Storage blob. // String produces the SAS permissions string for an Azure Storage blob.
// Call this method to set BlobSignatureValues's Permissions field. // Call this method to set BlobSignatureValue's Permissions field.
func (p *BlobPermissions) String() string { func (p *BlobPermissions) String() string {
var b bytes.Buffer var b bytes.Buffer
if p.Read { if p.Read {
@ -386,10 +401,13 @@ func (p *BlobPermissions) String() string {
if p.Permissions { if p.Permissions {
b.WriteRune('p') b.WriteRune('p')
} }
if p.SetImmutabilityPolicy {
b.WriteRune('i')
}
return b.String() return b.String()
} }
// Parse initializes the BlobSASPermissions's fields from a string. // Parse initializes BlobPermissions' fields from a string.
func parseBlobPermissions(s string) (BlobPermissions, error) { func parseBlobPermissions(s string) (BlobPermissions, error) {
p := BlobPermissions{} // Clear the flags p := BlobPermissions{} // Clear the flags
for _, r := range s { for _, r := range s {
@ -406,12 +424,12 @@ func parseBlobPermissions(s string) (BlobPermissions, error) {
p.Delete = true p.Delete = true
case 'x': case 'x':
p.DeletePreviousVersion = true p.DeletePreviousVersion = true
case 't':
p.Tag = true
case 'y': case 'y':
p.PermanentDelete = true p.PermanentDelete = true
case 'l': case 'l':
p.List = true p.List = true
case 't':
p.Tag = true
case 'm': case 'm':
p.Move = true p.Move = true
case 'e': case 'e':
@ -420,6 +438,8 @@ func parseBlobPermissions(s string) (BlobPermissions, error) {
p.Ownership = true p.Ownership = true
case 'p': case 'p':
p.Permissions = true p.Permissions = true
case 'i':
p.SetImmutabilityPolicy = true
default: default:
return BlobPermissions{}, fmt.Errorf("invalid permission: '%v'", r) return BlobPermissions{}, fmt.Errorf("invalid permission: '%v'", r)
} }

View file

@ -8,7 +8,7 @@ package service
import ( import (
"context" "context"
"errors" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
"net/http" "net/http"
"strings" "strings"
"time" "time"
@ -186,7 +186,7 @@ func (s *Client) NewListContainersPager(o *ListContainersOptions) *runtime.Pager
if page == nil { if page == nil {
req, err = s.generated().ListContainersSegmentCreateRequest(ctx, &listOptions) req, err = s.generated().ListContainersSegmentCreateRequest(ctx, &listOptions)
} else { } else {
listOptions.Marker = page.Marker listOptions.Marker = page.NextMarker
req, err = s.generated().ListContainersSegmentCreateRequest(ctx, &listOptions) req, err = s.generated().ListContainersSegmentCreateRequest(ctx, &listOptions)
} }
if err != nil { if err != nil {
@ -243,19 +243,17 @@ func (s *Client) GetStatistics(ctx context.Context, o *GetStatisticsOptions) (Ge
// GetSASURL is a convenience method for generating a SAS token for the currently pointed at account. // GetSASURL is a convenience method for generating a SAS token for the currently pointed at account.
// It can only be used if the credential supplied during creation was a SharedKeyCredential. // It can only be used if the credential supplied during creation was a SharedKeyCredential.
// This validity can be checked with CanGetAccountSASToken(). func (s *Client) GetSASURL(resources sas.AccountResourceTypes, permissions sas.AccountPermissions, expiry time.Time, o *GetSASURLOptions) (string, error) {
func (s *Client) GetSASURL(resources sas.AccountResourceTypes, permissions sas.AccountPermissions, services sas.AccountServices, start time.Time, expiry time.Time) (string, error) {
if s.sharedKey() == nil { if s.sharedKey() == nil {
return "", errors.New("SAS can only be signed with a SharedKeyCredential") return "", bloberror.MissingSharedKeyCredential
} }
st := o.format()
qps, err := sas.AccountSignatureValues{ qps, err := sas.AccountSignatureValues{
Version: sas.Version, Version: sas.Version,
Protocol: sas.ProtocolHTTPS, Protocol: sas.ProtocolHTTPS,
Permissions: permissions.String(), Permissions: permissions.String(),
Services: services.String(),
ResourceTypes: resources.String(), ResourceTypes: resources.String(),
StartTime: start.UTC(), StartTime: st,
ExpiryTime: expiry.UTC(), ExpiryTime: expiry.UTC(),
}.SignWithSharedKey(s.sharedKey()) }.SignWithSharedKey(s.sharedKey())
if err != nil { if err != nil {
@ -277,8 +275,8 @@ func (s *Client) GetSASURL(resources sas.AccountResourceTypes, permissions sas.A
// https://docs.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags // https://docs.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags
// eg. "dog='germanshepherd' and penguin='emperorpenguin'" // eg. "dog='germanshepherd' and penguin='emperorpenguin'"
// To specify a container, eg. "@container=containerName and Name = C" // To specify a container, eg. "@container=containerName and Name = C"
func (s *Client) FilterBlobs(ctx context.Context, o *FilterBlobsOptions) (FilterBlobsResponse, error) { func (s *Client) FilterBlobs(ctx context.Context, where string, o *FilterBlobsOptions) (FilterBlobsResponse, error) {
serviceFilterBlobsOptions := o.format() serviceFilterBlobsOptions := o.format()
resp, err := s.generated().FilterBlobs(ctx, serviceFilterBlobsOptions) resp, err := s.generated().FilterBlobs(ctx, where, serviceFilterBlobsOptions)
return resp, err return resp, err
} }

View file

@ -7,9 +7,11 @@
package service package service
import ( import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
"time"
) )
// SharedKeyCredential contains an account's name and its primary or secondary key. // SharedKeyCredential contains an account's name and its primary or secondary key.
@ -30,7 +32,7 @@ type UserDelegationKey = generated.UserDelegationKey
// KeyInfo contains KeyInfo struct. // KeyInfo contains KeyInfo struct.
type KeyInfo = generated.KeyInfo type KeyInfo = generated.KeyInfo
// GetUserDelegationCredentialOptions contains optional parameters for Service.GetUserDelegationKey method // GetUserDelegationCredentialOptions contains optional parameters for Service.GetUserDelegationKey method.
type GetUserDelegationCredentialOptions struct { type GetUserDelegationCredentialOptions struct {
// placeholder for future options // placeholder for future options
} }
@ -51,11 +53,11 @@ type ContainerItem = generated.ContainerItem
// ContainerProperties - Properties of a container // ContainerProperties - Properties of a container
type ContainerProperties = generated.ContainerProperties type ContainerProperties = generated.ContainerProperties
// CpkInfo contains a group of parameters for the BlobClient.Download method. // CPKInfo contains a group of parameters for the BlobClient.Download method.
type CpkInfo = generated.CpkInfo type CPKInfo = generated.CPKInfo
// CpkScopeInfo contains a group of parameters for the BlobClient.SetMetadata method. // CPKScopeInfo contains a group of parameters for the BlobClient.SetMetadata method.
type CpkScopeInfo = generated.CpkScopeInfo type CPKScopeInfo = generated.CPKScopeInfo
// CreateContainerOptions contains the optional parameters for the container.Client.Create method. // CreateContainerOptions contains the optional parameters for the container.Client.Create method.
type CreateContainerOptions = container.CreateOptions type CreateContainerOptions = container.CreateOptions
@ -66,28 +68,34 @@ type DeleteContainerOptions = container.DeleteOptions
// RestoreContainerOptions contains the optional parameters for the container.Client.Restore method. // RestoreContainerOptions contains the optional parameters for the container.Client.Restore method.
type RestoreContainerOptions = container.RestoreOptions type RestoreContainerOptions = container.RestoreOptions
// CorsRule - CORS is an HTTP feature that enables a web application running under one domain to access resources in another // CORSRule - CORS is an HTTP feature that enables a web application running under one domain to access resources in another
// domain. Web browsers implement a security restriction known as same-origin policy that // domain. Web browsers implement a security restriction known as same-origin policy that
// prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin // prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin
// domain) to call APIs in another domain // domain) to call APIs in another domain.
type CorsRule = generated.CorsRule type CORSRule = generated.CORSRule
// FilterBlobItem - Blob info returned from method Client.FilterBlobs // FilterBlobSegment - The result of a Filter Blobs API call.
type FilterBlobSegment = generated.FilterBlobSegment
// BlobTags - Blob tags
type BlobTags = generated.BlobTags
// FilterBlobItem - Blob info returned from method Client.FilterBlobs.
type FilterBlobItem = generated.FilterBlobItem type FilterBlobItem = generated.FilterBlobItem
// GeoReplication - Geo-Replication information for the Secondary Storage Service // GeoReplication - Geo-Replication information for the Secondary Storage Service.
type GeoReplication = generated.GeoReplication type GeoReplication = generated.GeoReplication
// RetentionPolicy - the retention policy which determines how long the associated data should persist // RetentionPolicy - the retention policy which determines how long the associated data should persist.
type RetentionPolicy = generated.RetentionPolicy type RetentionPolicy = generated.RetentionPolicy
// Metrics - a summary of request statistics grouped by API in hour or minute aggregates for blobs // Metrics - a summary of request statistics grouped by API in hour or minute aggregates for blobs.
type Metrics = generated.Metrics type Metrics = generated.Metrics
// Logging - Azure Analytics Logging settings. // Logging - Azure Analytics Logging settings.
type Logging = generated.Logging type Logging = generated.Logging
// StaticWebsite - The properties that enable an account to host a static website // StaticWebsite - The properties that enable an account to host a static website.
type StaticWebsite = generated.StaticWebsite type StaticWebsite = generated.StaticWebsite
// StorageServiceProperties - Storage Service Properties. // StorageServiceProperties - Storage Service Properties.
@ -120,7 +128,7 @@ func (o *GetPropertiesOptions) format() *generated.ServiceClientGetPropertiesOpt
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// ListContainersOptions provides set of configurations for ListContainers operation // ListContainersOptions provides set of configurations for ListContainers operation.
type ListContainersOptions struct { type ListContainersOptions struct {
Include ListContainersInclude Include ListContainersInclude
@ -154,25 +162,28 @@ type ListContainersInclude struct {
// SetPropertiesOptions provides set of options for Client.SetProperties // SetPropertiesOptions provides set of options for Client.SetProperties
type SetPropertiesOptions struct { type SetPropertiesOptions struct {
// The set of CORS rules. // The set of CORS rules.
Cors []*CorsRule CORS []*CORSRule
// The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible // The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible
// values include version 2008-10-27 and all more recent versions // values include version 2008-10-27 and all more recent versions.
DefaultServiceVersion *string DefaultServiceVersion *string
// the retention policy which determines how long the associated data should persist // the retention policy which determines how long the associated data should persist.
DeleteRetentionPolicy *RetentionPolicy DeleteRetentionPolicy *RetentionPolicy
// a summary of request statistics grouped by API in hour or minute aggregates for blobs // a summary of request statistics grouped by API in hour or minute aggregates for blobs
// If version is not set - we default to "1.0"
HourMetrics *Metrics HourMetrics *Metrics
// Azure Analytics Logging settings. // Azure Analytics Logging settings.
// If version is not set - we default to "1.0"
Logging *Logging Logging *Logging
// a summary of request statistics grouped by API in hour or minute aggregates for blobs // a summary of request statistics grouped by API in hour or minute aggregates for blobs
// If version is not set - we default to "1.0"
MinuteMetrics *Metrics MinuteMetrics *Metrics
// The properties that enable an account to host a static website // The properties that enable an account to host a static website.
StaticWebsite *StaticWebsite StaticWebsite *StaticWebsite
} }
@ -181,8 +192,45 @@ func (o *SetPropertiesOptions) format() (generated.StorageServiceProperties, *ge
return generated.StorageServiceProperties{}, nil return generated.StorageServiceProperties{}, nil
} }
defaultVersion := to.Ptr[string]("1.0")
defaultAge := to.Ptr[int32](0)
emptyStr := to.Ptr[string]("")
if o.CORS != nil {
for i := 0; i < len(o.CORS); i++ {
if o.CORS[i].AllowedHeaders == nil {
o.CORS[i].AllowedHeaders = emptyStr
}
if o.CORS[i].ExposedHeaders == nil {
o.CORS[i].ExposedHeaders = emptyStr
}
if o.CORS[i].MaxAgeInSeconds == nil {
o.CORS[i].MaxAgeInSeconds = defaultAge
}
}
}
if o.HourMetrics != nil {
if o.HourMetrics.Version == nil {
o.HourMetrics.Version = defaultVersion
}
}
if o.Logging != nil {
if o.Logging.Version == nil {
o.Logging.Version = defaultVersion
}
}
if o.MinuteMetrics != nil {
if o.MinuteMetrics.Version == nil {
o.MinuteMetrics.Version = defaultVersion
}
}
return generated.StorageServiceProperties{ return generated.StorageServiceProperties{
Cors: o.Cors, CORS: o.CORS,
DefaultServiceVersion: o.DefaultServiceVersion, DefaultServiceVersion: o.DefaultServiceVersion,
DeleteRetentionPolicy: o.DeleteRetentionPolicy, DeleteRetentionPolicy: o.DeleteRetentionPolicy,
HourMetrics: o.HourMetrics, HourMetrics: o.HourMetrics,
@ -194,6 +242,27 @@ func (o *SetPropertiesOptions) format() (generated.StorageServiceProperties, *ge
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// GetSASURLOptions contains the optional parameters for the Client.GetSASURL method.
type GetSASURLOptions struct {
StartTime *time.Time
}
func (o *GetSASURLOptions) format() time.Time {
if o == nil {
return time.Time{}
}
var st time.Time
if o.StartTime != nil {
st = o.StartTime.UTC()
} else {
st = time.Time{}
}
return st
}
// ---------------------------------------------------------------------------------------------------------------------
// GetStatisticsOptions provides set of options for Client.GetStatistics // GetStatisticsOptions provides set of options for Client.GetStatistics
type GetStatisticsOptions struct { type GetStatisticsOptions struct {
// placeholder for future options // placeholder for future options
@ -205,7 +274,7 @@ func (o *GetStatisticsOptions) format() *generated.ServiceClientGetStatisticsOpt
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
// FilterBlobsOptions provides set of options for Client.FindBlobsByTags // FilterBlobsOptions provides set of options for Client.FindBlobsByTags.
type FilterBlobsOptions struct { type FilterBlobsOptions struct {
// A string value that identifies the portion of the list of containers to be returned with the next listing operation. The // A string value that identifies the portion of the list of containers to be returned with the next listing operation. The
// operation returns the NextMarker value within the response body if the listing // operation returns the NextMarker value within the response body if the listing
@ -219,8 +288,6 @@ type FilterBlobsOptions struct {
// of the results. For this reason, it is possible that the service will // of the results. For this reason, it is possible that the service will
// return fewer results than specified by maxresults, or than the default of 5000. // return fewer results than specified by maxresults, or than the default of 5000.
MaxResults *int32 MaxResults *int32
// Filters the results to return only to return only blobs whose tags match the specified expression.
Where *string
} }
func (o *FilterBlobsOptions) format() *generated.ServiceClientFilterBlobsOptions { func (o *FilterBlobsOptions) format() *generated.ServiceClientFilterBlobsOptions {
@ -230,6 +297,5 @@ func (o *FilterBlobsOptions) format() *generated.ServiceClientFilterBlobsOptions
return &generated.ServiceClientFilterBlobsOptions{ return &generated.ServiceClientFilterBlobsOptions{
Marker: o.Marker, Marker: o.Marker,
Maxresults: o.MaxResults, Maxresults: o.MaxResults,
Where: o.Where,
} }
} }

View file

@ -25,6 +25,9 @@ type GetAccountInfoResponse = generated.ServiceClientGetAccountInfoResponse
// ListContainersResponse contains the response from method Client.ListContainersSegment. // ListContainersResponse contains the response from method Client.ListContainersSegment.
type ListContainersResponse = generated.ServiceClientListContainersSegmentResponse type ListContainersResponse = generated.ServiceClientListContainersSegmentResponse
// ListContainersSegmentResponse - An enumeration of containers
type ListContainersSegmentResponse = generated.ListContainersSegmentResponse
// GetPropertiesResponse contains the response from method Client.GetProperties. // GetPropertiesResponse contains the response from method Client.GetProperties.
type GetPropertiesResponse = generated.ServiceClientGetPropertiesResponse type GetPropertiesResponse = generated.ServiceClientGetPropertiesResponse

File diff suppressed because it is too large Load diff

View file

@ -87,7 +87,7 @@ func main() {
###### Compile and Execute ###### Compile and Execute
```sh ```sh
$ go run . $ go run .
Table: Tables:
tableOne tableOne
tableTwo tableTwo
``` ```
@ -97,9 +97,9 @@ tableTwo
Please use these community resources for getting help. We use the GitHub issues Please use these community resources for getting help. We use the GitHub issues
for tracking bugs and feature requests. for tracking bugs and feature requests.
* Ask a question on [StackOverflow](http://stackoverflow.com/) and tag it with the [`aws-sdk-go`](http://stackoverflow.com/questions/tagged/aws-sdk-go) tag. * Ask us a [question](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=q-a) or open a [discussion](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=general).
* Open a support ticket with [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).
* If you think you may have found a bug, please open an [issue](https://github.com/aws/aws-sdk-go-v2/issues/new/choose). * If you think you may have found a bug, please open an [issue](https://github.com/aws/aws-sdk-go-v2/issues/new/choose).
* Open a support ticket with [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).
This SDK implements AWS service APIs. For general issues regarding the AWS services and their limitations, you may also take a look at the [Amazon Web Services Discussion Forums](https://forums.aws.amazon.com/). This SDK implements AWS service APIs. For general issues regarding the AWS services and their limitations, you may also take a look at the [Amazon Web Services Discussion Forums](https://forums.aws.amazon.com/).

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.3" const goModuleVersion = "1.17.4"

View file

@ -36,20 +36,31 @@ type Array struct {
memberName string memberName string
// Elements are stored in values, so we keep track of the list size here. // Elements are stored in values, so we keep track of the list size here.
size int32 size int32
// Empty lists are encoded as "<prefix>=", if we add a value later we will
// remove this encoding
emptyValue Value
} }
func newArray(values url.Values, prefix string, flat bool, memberName string) *Array { func newArray(values url.Values, prefix string, flat bool, memberName string) *Array {
emptyValue := newValue(values, prefix, flat)
emptyValue.String("")
return &Array{ return &Array{
values: values, values: values,
prefix: prefix, prefix: prefix,
flat: flat, flat: flat,
memberName: memberName, memberName: memberName,
emptyValue: emptyValue,
} }
} }
// Value adds a new element to the Query Array. Returns a Value type used to // Value adds a new element to the Query Array. Returns a Value type used to
// encode the array element. // encode the array element.
func (a *Array) Value() Value { func (a *Array) Value() Value {
if a.size == 0 {
delete(a.values, a.emptyValue.key)
}
// Query lists start a 1, so adjust the size first // Query lists start a 1, so adjust the size first
a.size++ a.size++
prefix := a.prefix prefix := a.prefix

View file

@ -1,3 +1,7 @@
# v1.18.12 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.18.11 (2023-02-01) # v1.18.11 (2023-02-01)
* **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.11" const goModuleVersion = "1.18.12"

View file

@ -1,3 +1,7 @@
# v1.13.12 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.11 (2023-02-01) # v1.13.11 (2023-02-01)
* No change notes available for this release. * No change notes available for this release.

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.11" const goModuleVersion = "1.13.12"

View file

@ -149,12 +149,24 @@ func NewProviderCommand(builder NewCommandBuilder, options ...func(*Options)) *P
return p return p
} }
type credentialProcessResponse struct { // A CredentialProcessResponse is the AWS credentials format that must be
Version int // returned when executing an external credential_process.
AccessKeyID string `json:"AccessKeyId"` type CredentialProcessResponse struct {
// As of this writing, the Version key must be set to 1. This might
// increment over time as the structure evolves.
Version int
// The access key ID that identifies the temporary security credentials.
AccessKeyID string `json:"AccessKeyId"`
// The secret access key that can be used to sign requests.
SecretAccessKey string SecretAccessKey string
SessionToken string
Expiration *time.Time // The token that users must pass to the service API to use the temporary credentials.
SessionToken string
// The date on which the current credentials expire.
Expiration *time.Time
} }
// Retrieve executes the credential process command and returns the // Retrieve executes the credential process command and returns the
@ -166,7 +178,7 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
} }
// Serialize and validate response // Serialize and validate response
resp := &credentialProcessResponse{} resp := &CredentialProcessResponse{}
if err = json.Unmarshal(out, resp); err != nil { if err = json.Unmarshal(out, resp); err != nil {
return aws.Credentials{Source: ProviderName}, &ProviderError{ return aws.Credentials{Source: ProviderName}, &ProviderError{
Err: fmt.Errorf("parse failed of process output: %s, error: %w", out, err), Err: fmt.Errorf("parse failed of process output: %s, error: %w", out, err),

View file

@ -1,3 +1,7 @@
# v1.12.22 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.12.21 (2022-12-15) # v1.12.21 (2022-12-15)
* **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.12.21" const goModuleVersion = "1.12.22"

View file

@ -1,3 +1,7 @@
# v1.11.51 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.11.50 (2023-02-01) # v1.11.50 (2023-02-01)
* **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.50" const goModuleVersion = "1.11.51"

View file

@ -1,3 +1,7 @@
# v1.1.28 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.27 (2022-12-15) # v1.1.27 (2022-12-15)
* **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.27" const goModuleVersion = "1.1.28"

View file

@ -1,3 +1,7 @@
# v2.4.22 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v2.4.21 (2022-12-15) # v2.4.21 (2022-12-15)
* **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.21" const goModuleVersion = "2.4.22"

View file

@ -1,3 +1,7 @@
# v1.3.29 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.3.28 (2022-12-15) # v1.3.28 (2022-12-15)
* **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.28" const goModuleVersion = "1.3.29"

View file

@ -1,3 +1,7 @@
# v1.0.19 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.0.18 (2022-12-15) # v1.0.18 (2022-12-15)
* **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.18" const goModuleVersion = "1.0.19"

View file

@ -1,3 +1,7 @@
# v1.1.23 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.1.22 (2022-12-15) # v1.1.22 (2022-12-15)
* **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.22" const goModuleVersion = "1.1.23"

View file

@ -1,3 +1,7 @@
# v1.9.22 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.9.21 (2022-12-15) # v1.9.21 (2022-12-15)
* **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.21" const goModuleVersion = "1.9.22"

View file

@ -1,3 +1,7 @@
# v1.13.22 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.13.21 (2022-12-15) # v1.13.21 (2022-12-15)
* **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 s3shared package s3shared
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.13.21" const goModuleVersion = "1.13.22"

View file

@ -1,3 +1,7 @@
# v1.30.2 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.30.1 (2023-01-23) # v1.30.1 (2023-01-23)
* No change notes available for this release. * No change notes available for this release.

View file

@ -3,4 +3,4 @@
package s3 package s3
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.30.1" const goModuleVersion = "1.30.2"

View file

@ -1,3 +1,7 @@
# v1.12.1 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.12.0 (2023-01-05) # v1.12.0 (2023-01-05)
* **Feature**: Add `ErrorCodeOverride` field to all error structs (aws/smithy-go#401). * **Feature**: Add `ErrorCodeOverride` field to all error structs (aws/smithy-go#401).

View file

@ -3,4 +3,4 @@
package sso package sso
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.12.0" const goModuleVersion = "1.12.1"

View file

@ -1,3 +1,7 @@
# v1.14.1 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
# v1.14.0 (2023-01-05) # v1.14.0 (2023-01-05)
* **Feature**: Add `ErrorCodeOverride` field to all error structs (aws/smithy-go#401). * **Feature**: Add `ErrorCodeOverride` field to all error structs (aws/smithy-go#401).

View file

@ -3,4 +3,4 @@
package ssooidc package ssooidc
// 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.1"

View file

@ -1,3 +1,8 @@
# v1.18.3 (2023-02-03)
* **Dependency Update**: Updated to the latest SDK module versions
* **Dependency Update**: Upgrade smithy to 1.27.2 and correct empty query list serialization.
# v1.18.2 (2023-01-25) # v1.18.2 (2023-01-25)
* **Documentation**: Doc only change to update wording in a key topic * **Documentation**: Doc only change to update wording in a key topic

View file

@ -3,4 +3,4 @@
package sts package sts
// goModuleVersion is the tagged release for this module // goModuleVersion is the tagged release for this module
const goModuleVersion = "1.18.2" const goModuleVersion = "1.18.3"

View file

@ -523,9 +523,6 @@ func (m *awsAwsquery_serializeOpGetSessionToken) HandleSerialize(ctx context.Con
return next.HandleSerialize(ctx, in) return next.HandleSerialize(ctx, in)
} }
func awsAwsquery_serializeDocumentPolicyDescriptorListType(v []types.PolicyDescriptorType, value query.Value) error { func awsAwsquery_serializeDocumentPolicyDescriptorListType(v []types.PolicyDescriptorType, value query.Value) error {
if len(v) == 0 {
return nil
}
array := value.Array("member") array := value.Array("member")
for i := range v { for i := range v {
@ -567,9 +564,6 @@ func awsAwsquery_serializeDocumentTag(v *types.Tag, value query.Value) error {
} }
func awsAwsquery_serializeDocumentTagKeyListType(v []string, value query.Value) error { func awsAwsquery_serializeDocumentTagKeyListType(v []string, value query.Value) error {
if len(v) == 0 {
return nil
}
array := value.Array("member") array := value.Array("member")
for i := range v { for i := range v {
@ -580,9 +574,6 @@ func awsAwsquery_serializeDocumentTagKeyListType(v []string, value query.Value)
} }
func awsAwsquery_serializeDocumentTagListType(v []types.Tag, value query.Value) error { func awsAwsquery_serializeDocumentTagListType(v []types.Tag, value query.Value) error {
if len(v) == 0 {
return nil
}
array := value.Array("member") array := value.Array("member")
for i := range v { for i := range v {

View file

@ -8179,6 +8179,9 @@ var awsPartition = partition{
endpointKey{ endpointKey{
Region: "ap-south-1", Region: "ap-south-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "ap-south-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "ap-southeast-1", Region: "ap-southeast-1",
}: endpoint{}, }: endpoint{},
@ -8200,12 +8203,18 @@ var awsPartition = partition{
endpointKey{ endpointKey{
Region: "eu-central-1", Region: "eu-central-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "eu-central-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "eu-north-1", Region: "eu-north-1",
}: endpoint{}, }: endpoint{},
endpointKey{ endpointKey{
Region: "eu-south-1", Region: "eu-south-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "eu-south-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "eu-west-1", Region: "eu-west-1",
}: endpoint{}, }: endpoint{},
@ -11011,6 +11020,9 @@ var awsPartition = partition{
endpointKey{ endpointKey{
Region: "ap-south-1", Region: "ap-south-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "ap-south-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "ap-southeast-1", Region: "ap-southeast-1",
}: endpoint{}, }: endpoint{},
@ -11026,12 +11038,18 @@ var awsPartition = partition{
endpointKey{ endpointKey{
Region: "eu-central-1", Region: "eu-central-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "eu-central-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "eu-north-1", Region: "eu-north-1",
}: endpoint{}, }: endpoint{},
endpointKey{ endpointKey{
Region: "eu-south-1", Region: "eu-south-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "eu-south-2",
}: endpoint{},
endpointKey{ endpointKey{
Region: "eu-west-1", Region: "eu-west-1",
}: endpoint{}, }: endpoint{},
@ -31787,6 +31805,26 @@ var awsusgovPartition = partition{
}, },
}, },
}, },
"compute-optimizer": service{
Endpoints: serviceEndpoints{
endpointKey{
Region: "us-gov-east-1",
}: endpoint{
Hostname: "compute-optimizer-fips.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-east-1",
},
},
endpointKey{
Region: "us-gov-west-1",
}: endpoint{
Hostname: "compute-optimizer-fips.us-gov-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-west-1",
},
},
},
},
"config": service{ "config": service{
Defaults: endpointDefaults{ Defaults: endpointDefaults{
defaultKey{}: endpoint{}, defaultKey{}: endpoint{},
@ -32936,36 +32974,38 @@ var awsusgovPartition = partition{
endpointKey{ endpointKey{
Region: "fips-us-gov-east-1", Region: "fips-us-gov-east-1",
}: endpoint{ }: endpoint{
Hostname: "greengrass-fips.us-gov-east-1.amazonaws.com", Hostname: "greengrass.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
Region: "us-gov-east-1", Region: "us-gov-east-1",
}, },
Deprecated: boxedTrue, Deprecated: boxedTrue,
}, },
endpointKey{ endpointKey{
Region: "us-gov-east-1", Region: "fips-us-gov-west-1",
}: endpoint{
Hostname: "greengrass.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-east-1",
},
},
endpointKey{
Region: "us-gov-east-1",
Variant: fipsVariant,
}: endpoint{
Hostname: "greengrass-fips.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-east-1",
},
},
endpointKey{
Region: "us-gov-west-1",
}: endpoint{ }: endpoint{
Hostname: "greengrass.us-gov-west-1.amazonaws.com", Hostname: "greengrass.us-gov-west-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
Region: "us-gov-west-1", Region: "us-gov-west-1",
}, },
Deprecated: boxedTrue,
},
endpointKey{
Region: "us-gov-east-1",
}: endpoint{},
endpointKey{
Region: "us-gov-east-1",
Variant: fipsVariant,
}: endpoint{
Hostname: "greengrass.us-gov-east-1.amazonaws.com",
},
endpointKey{
Region: "us-gov-west-1",
}: endpoint{},
endpointKey{
Region: "us-gov-west-1",
Variant: fipsVariant,
}: endpoint{
Hostname: "greengrass.us-gov-west-1.amazonaws.com",
}, },
}, },
}, },
@ -33164,6 +33204,21 @@ var awsusgovPartition = partition{
endpointKey{ endpointKey{
Region: "us-gov-west-1", Region: "us-gov-west-1",
}: endpoint{}, }: endpoint{},
endpointKey{
Region: "us-gov-west-1",
Variant: fipsVariant,
}: endpoint{
Hostname: "ingest.timestream.us-gov-west-1.amazonaws.com",
},
endpointKey{
Region: "us-gov-west-1-fips",
}: endpoint{
Hostname: "ingest.timestream.us-gov-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-west-1",
},
Deprecated: boxedTrue,
},
}, },
}, },
"inspector": service{ "inspector": service{
@ -33206,6 +33261,16 @@ var awsusgovPartition = partition{
}, },
}, },
}, },
"inspector2": service{
Endpoints: serviceEndpoints{
endpointKey{
Region: "us-gov-east-1",
}: endpoint{},
endpointKey{
Region: "us-gov-west-1",
}: endpoint{},
},
},
"iot": service{ "iot": service{
Defaults: endpointDefaults{ Defaults: endpointDefaults{
defaultKey{}: endpoint{ defaultKey{}: endpoint{

View file

@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go" const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK // SDKVersion is the version of this SDK
const SDKVersion = "1.44.192" const SDKVersion = "1.44.196"

View file

@ -101,6 +101,8 @@ flag_types:
type: bool type: bool
- name: Action - name: Action
type: "func(*Context, []string) error" type: "func(*Context, []string) error"
- name: KeepSpace
type: bool
time.Duration: time.Duration:
struct_fields: struct_fields:
- name: Action - name: Action

View file

@ -13,6 +13,7 @@ type StringSlice struct {
slice []string slice []string
separator separatorSpec separator separatorSpec
hasBeenSet bool hasBeenSet bool
keepSpace bool
} }
// NewStringSlice creates a *StringSlice with default values // NewStringSlice creates a *StringSlice with default values
@ -45,6 +46,9 @@ func (s *StringSlice) Set(value string) error {
} }
for _, t := range s.separator.flagSplitMultiValues(value) { for _, t := range s.separator.flagSplitMultiValues(value) {
if !s.keepSpace {
t = strings.TrimSpace(t)
}
s.slice = append(s.slice, t) s.slice = append(s.slice, t)
} }
@ -149,9 +153,14 @@ func (f *StringSliceFlag) Apply(set *flag.FlagSet) error {
setValue.WithSeparatorSpec(f.separator) setValue.WithSeparatorSpec(f.separator)
} }
setValue.keepSpace = f.KeepSpace
if val, source, found := flagFromEnvOrFile(f.EnvVars, f.FilePath); found { if val, source, found := flagFromEnvOrFile(f.EnvVars, f.FilePath); found {
for _, s := range f.separator.flagSplitMultiValues(val) { for _, s := range f.separator.flagSplitMultiValues(val) {
if err := setValue.Set(strings.TrimSpace(s)); err != nil { if !f.KeepSpace {
s = strings.TrimSpace(s)
}
if err := setValue.Set(s); err != nil {
return fmt.Errorf("could not parse %q as string value from %s for flag %s: %s", val, source, f.Name, err) return fmt.Errorf("could not parse %q as string value from %s for flag %s: %s", val, source, f.Name, err)
} }
} }

View file

@ -1827,6 +1827,8 @@ type StringSliceFlag struct {
TakesFile bool TakesFile bool
Action func(*Context, []string) error Action func(*Context, []string) error
KeepSpace bool
// Has unexported fields. // Has unexported fields.
} }
StringSliceFlag is a flag with type *StringSlice StringSliceFlag is a flag with type *StringSlice

View file

@ -270,6 +270,8 @@ type StringSliceFlag struct {
TakesFile bool TakesFile bool
Action func(*Context, []string) error Action func(*Context, []string) error
KeepSpace bool
} }
// IsSet returns whether or not the flag has been set through env or file // IsSet returns whether or not the flag has been set through env or file

View file

@ -188,7 +188,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
record: writeRecordFunc, record: writeRecordFunc,
ctx: ctx, ctx: ctx,
props: h.propagators, props: h.propagators,
statusCode: 200, // default status code in case the Handler doesn't write anything statusCode: http.StatusOK, // default status code in case the Handler doesn't write anything
} }
// Wrap w to use our ResponseWriter methods while also exposing // Wrap w to use our ResponseWriter methods while also exposing

View file

@ -16,7 +16,7 @@ package otelhttp // import "go.opentelemetry.io/contrib/instrumentation/net/http
// Version is the current release version of the otelhttp instrumentation. // Version is the current release version of the otelhttp instrumentation.
func Version() string { func Version() string {
return "0.38.0" return "0.39.0"
// This string is updated by the pre_release.sh script during release // This string is updated by the pre_release.sh script during release
} }

View file

@ -8,6 +8,29 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [Unreleased] ## [Unreleased]
## [1.13.0/0.36.0] 2023-02-07
### Added
- Attribute `KeyValue` creations functions to `go.opentelemetry.io/otel/semconv/v1.17.0` for all non-enum semantic conventions.
These functions ensure semantic convention type correctness. (#3675)
### Fixed
- Removed the `http.target` attribute from being added by `ServerRequest` in the following packages. (#3687)
- `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.14.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.15.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.16.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.17.0/httpconv`
### Removed
- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is removed. (#3631)
- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is removed. (#3631)
- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is removed. (#3631)
- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncint64` package is removed. (#3631)
## [1.12.0/0.35.0] 2023-01-28 ## [1.12.0/0.35.0] 2023-01-28
### Added ### Added
@ -2220,7 +2243,8 @@ It contains api and sdk for trace and meter.
- CircleCI build CI manifest files. - CircleCI build CI manifest files.
- CODEOWNERS file to track owners of this project. - CODEOWNERS file to track owners of this project.
[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.12.0...HEAD [Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.13.0...HEAD
[1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0
[1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0 [1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0
[1.11.2/0.34.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2 [1.11.2/0.34.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2
[1.11.1/0.33.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1 [1.11.1/0.33.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1

View file

@ -157,7 +157,14 @@ func (c *HTTPConv) ClientRequest(req *http.Request) []attribute.KeyValue {
// "net.sock.peer.addr", "net.sock.peer.port", "http.user_agent", "enduser.id", // "net.sock.peer.addr", "net.sock.peer.port", "http.user_agent", "enduser.id",
// "http.client_ip". // "http.client_ip".
func (c *HTTPConv) ServerRequest(server string, req *http.Request) []attribute.KeyValue { func (c *HTTPConv) ServerRequest(server string, req *http.Request) []attribute.KeyValue {
n := 5 // Method, scheme, target, proto, and host name. // TODO: This currently does not add the specification required
// `http.target` attribute. It has too high of a cardinality to safely be
// added. An alternate should be added, or this comment removed, when it is
// addressed by the specification. If it is ultimately decided to continue
// not including the attribute, the HTTPTargetKey field of the HTTPConv
// should be removed as well.
n := 4 // Method, scheme, proto, and host name.
var host string var host string
var p int var p int
if server == "" { if server == "" {
@ -199,14 +206,6 @@ func (c *HTTPConv) ServerRequest(server string, req *http.Request) []attribute.K
attrs = append(attrs, c.proto(req.Proto)) attrs = append(attrs, c.proto(req.Proto))
attrs = append(attrs, c.NetConv.HostName(host)) attrs = append(attrs, c.NetConv.HostName(host))
if req.URL != nil {
attrs = append(attrs, c.HTTPTargetKey.String(req.URL.RequestURI()))
} else {
// This should never occur if the request was generated by the net/http
// package. Fail gracefully, if it does though.
attrs = append(attrs, c.HTTPTargetKey.String(req.RequestURI))
}
if hostPort > 0 { if hostPort > 0 {
attrs = append(attrs, c.NetConv.HostPort(hostPort)) attrs = append(attrs, c.NetConv.HostPort(hostPort))
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -16,5 +16,5 @@ package otel // import "go.opentelemetry.io/otel"
// Version is the current release version of OpenTelemetry in use. // Version is the current release version of OpenTelemetry in use.
func Version() string { func Version() string {
return "1.12.0" return "1.13.0"
} }

View file

@ -14,7 +14,7 @@
module-sets: module-sets:
stable-v1: stable-v1:
version: v1.12.0 version: v1.13.0
modules: modules:
- go.opentelemetry.io/otel - go.opentelemetry.io/otel
- go.opentelemetry.io/otel/bridge/opentracing - go.opentelemetry.io/otel/bridge/opentracing
@ -34,7 +34,7 @@ module-sets:
- go.opentelemetry.io/otel/trace - go.opentelemetry.io/otel/trace
- go.opentelemetry.io/otel/sdk - go.opentelemetry.io/otel/sdk
experimental-metrics: experimental-metrics:
version: v0.35.0 version: v0.36.0
modules: modules:
- go.opentelemetry.io/otel/example/opencensus - go.opentelemetry.io/otel/example/opencensus
- go.opentelemetry.io/otel/example/prometheus - go.opentelemetry.io/otel/example/prometheus

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